QGIS API Documentation
2.8.2-Wien
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
src
analysis
interpolation
Bezier3D.h
Go to the documentation of this file.
1
/***************************************************************************
2
Bezier3D.h - description
3
-------------------
4
copyright : (C) 2004 by Marco Hugentobler
5
email : mhugent@geo.unizh.ch
6
***************************************************************************/
7
8
/***************************************************************************
9
* *
10
* This program is free software; you can redistribute it and/or modify *
11
* it under the terms of the GNU General Public License as published by *
12
* the Free Software Foundation; either version 2 of the License, or *
13
* (at your option) any later version. *
14
* *
15
***************************************************************************/
16
17
#ifndef BEZIER3D_H
18
#define BEZIER3D_H
19
20
#include "
ParametricLine.h
"
21
#include "
Vector3D.h
"
22
#include "
MathUtils.h
"
23
#include "
qgslogger.h
"
24
26
class
ANALYSIS_EXPORT
Bezier3D
:
public
ParametricLine
27
{
28
protected
:
29
30
public
:
32
Bezier3D
();
34
35
Bezier3D
(
ParametricLine
* par, QVector<Point3D*>* controlpoly );
37
virtual
~
Bezier3D
();
39
virtual
void
add
(
ParametricLine
*pl )
override
;
41
virtual
void
calcFirstDer
(
float
t,
Vector3D
* v )
override
;
43
virtual
void
calcSecDer
(
float
t,
Vector3D
* v )
override
;
44
//virtual Point3D calcPoint(float t);
46
virtual
void
calcPoint
(
float
t,
Point3D
* p )
override
;
48
virtual
void
changeDirection
()
override
;
49
//virtual void draw(QPainter* p);
50
//virtual bool intersects(ParametricLine* pal);
52
virtual
void
remove
(
int
i )
override
;
54
virtual
const
Point3D
*
getControlPoint
(
int
number )
const override
;
56
57
virtual
const
QVector<Point3D*>*
getControlPoly
()
const override
;
59
virtual
int
getDegree
()
const override
;
61
virtual
ParametricLine
*
getParent
()
const override
;
63
virtual
void
setParent
(
ParametricLine
* par )
override
;
65
66
virtual
void
setControlPoly
( QVector<Point3D*>* cp )
override
;
67
68
};
69
70
//-----------------------------------------------constructors, destructor and assignment operator------------------------------
71
72
inline
Bezier3D::Bezier3D
() :
ParametricLine
()
//default constructor
73
{
74
75
}
76
77
inline
Bezier3D::Bezier3D
(
ParametricLine
* parent, QVector<Point3D*>* controlpoly ) :
ParametricLine
( parent, controlpoly )
78
{
79
mDegree
=
mControlPoly
->count() - 1;
80
}
81
82
inline
Bezier3D::~Bezier3D
()
83
{
84
85
}
86
87
//----------------------------------------------invalid methods add and remove (because of inheritance from ParametricLine)
88
89
inline
void
Bezier3D::add
(
ParametricLine
*pl )
90
{
91
Q_UNUSED( pl );
92
QgsDebugMsg
(
"Error!!!!! A Bezier-curve can not be parent of a ParametricLine."
);
93
}
94
95
inline
void
Bezier3D::remove
(
int
i )
96
{
97
Q_UNUSED( i );
98
QgsDebugMsg
(
"Error!!!!! A Bezier-curve has no children to remove."
);
99
}
100
101
//-----------------------------------------------setters and getters---------------------------------------------------------------
102
103
inline
const
Point3D
*
Bezier3D::getControlPoint
(
int
number )
const
104
{
105
return
( *
mControlPoly
)[number-1];
106
}
107
108
inline
const
QVector<Point3D*>*
Bezier3D::getControlPoly
()
const
109
{
110
return
mControlPoly
;
111
}
112
113
inline
int
Bezier3D::getDegree
()
const
114
{
115
return
mDegree
;
116
}
117
118
inline
ParametricLine
*
Bezier3D::getParent
()
const
119
{
120
return
mParent
;
121
}
122
123
inline
void
Bezier3D::setParent
(
ParametricLine
* par )
124
{
125
mParent
= par;
126
}
127
128
inline
void
Bezier3D::setControlPoly
( QVector<Point3D*>* cp )
129
{
130
mControlPoly
= cp;
131
mDegree
=
mControlPoly
->count() - 1;
132
}
133
134
#endif
135
Generated on Sun May 10 2015 16:33:23 for QGIS API Documentation by
1.8.1.2