QGIS API Documentation
3.16.0-Hannover (43b64b13f3)
|
This is an implementation of a Clough-Tocher interpolator based on a triangular tessellation. More...
#include <CloughTocherInterpolator.h>
Public Member Functions | |
CloughTocherInterpolator ()=default | |
Standard constructor. More... | |
CloughTocherInterpolator (NormVecDecorator *tin) | |
Constructor with a pointer to the triangulation as argument. More... | |
bool | calcNormVec (double x, double y, QgsPoint &result) override |
Calculates the normal vector and assigns it to vec (not implemented at the moment) More... | |
bool | calcPoint (double x, double y, QgsPoint &result) override |
Performs a linear interpolation in a triangle and assigns the x-,y- and z-coordinates to point. More... | |
virtual void | setTriangulation (NormVecDecorator *tin) |
Public Member Functions inherited from TriangleInterpolator | |
virtual | ~TriangleInterpolator ()=default |
Protected Member Functions | |
double | calcBernsteinPoly (int n, int i, int j, int k, double u, double v, double w) |
Calculates the Bernsteinpolynomials to calculate the Beziertriangle. 'n' is three in the cubical case, 'i', 'j', 'k' are the indices of the controllpoint and 'u', 'v', 'w' are the barycentric coordinates of the point. More... | |
void | init (double x, double y) |
Finds out, in which triangle the point with the coordinates x and y is. More... | |
Protected Attributes | |
QgsPoint | cp1 = QgsPoint( 0, 0, 0 ) |
Control point 1. More... | |
QgsPoint | cp10 = QgsPoint( 0, 0, 0 ) |
Control point 10. More... | |
QgsPoint | cp11 = QgsPoint( 0, 0, 0 ) |
Control point 11. More... | |
QgsPoint | cp12 = QgsPoint( 0, 0, 0 ) |
Control point 12. More... | |
QgsPoint | cp13 = QgsPoint( 0, 0, 0 ) |
Control point 13. More... | |
QgsPoint | cp14 = QgsPoint( 0, 0, 0 ) |
Control point 14. More... | |
QgsPoint | cp15 = QgsPoint( 0, 0, 0 ) |
Control point 15. More... | |
QgsPoint | cp16 = QgsPoint( 0, 0, 0 ) |
Control point 16. More... | |
QgsPoint | cp2 = QgsPoint( 0, 0, 0 ) |
Control point 2. More... | |
QgsPoint | cp3 = QgsPoint( 0, 0, 0 ) |
Control point 3. More... | |
QgsPoint | cp4 = QgsPoint( 0, 0, 0 ) |
Control point 4. More... | |
QgsPoint | cp5 = QgsPoint( 0, 0, 0 ) |
Control point 5. More... | |
QgsPoint | cp6 = QgsPoint( 0, 0, 0 ) |
Control point 6. More... | |
QgsPoint | cp7 = QgsPoint( 0, 0, 0 ) |
Control point 7. More... | |
QgsPoint | cp8 = QgsPoint( 0, 0, 0 ) |
Control point 8. More... | |
QgsPoint | cp9 = QgsPoint( 0, 0, 0 ) |
Control point 9. More... | |
double | der1X = 0.0 |
Derivative in x-direction at point1. More... | |
double | der1Y = 0.0 |
Derivative in y-direction at point1. More... | |
double | der2X = 0.0 |
Derivative in x-direction at point2. More... | |
double | der2Y = 0.0 |
Derivative in y-direction at point2. More... | |
double | der3X = 0.0 |
Derivative in x-direction at point3. More... | |
double | der3Y = 0.0 |
Derivative in y-direction at point3. More... | |
QgsPoint | lpoint1 = QgsPoint( 0, 0, 0 ) |
Stores point1 of the last run. More... | |
QgsPoint | lpoint2 = QgsPoint( 0, 0, 0 ) |
Stores point2 of the last run. More... | |
QgsPoint | lpoint3 = QgsPoint( 0, 0, 0 ) |
Stores point3 of the last run. More... | |
double | mEdgeTolerance = 0.00001 |
Tolerance of the barycentric coordinates at the borders of the triangles (to prevent errors because of very small negative baricentric coordinates) More... | |
NormVecDecorator * | mTIN = nullptr |
Association with a triangulation object. More... | |
QgsPoint | point1 = QgsPoint( 0, 0, 0 ) |
First point of the triangle in x-,y-,z-coordinates. More... | |
QgsPoint | point2 = QgsPoint( 0, 0, 0 ) |
Second point of the triangle in x-,y-,z-coordinates. More... | |
QgsPoint | point3 = QgsPoint( 0, 0, 0 ) |
Third point of the triangle in x-,y-,z-coordinates. More... | |
This is an implementation of a Clough-Tocher interpolator based on a triangular tessellation.
The derivatives orthogonal to the boundary curves are interpolated linearly along a triangle edge.
Definition at line 33 of file CloughTocherInterpolator.h.
|
default |
Standard constructor.
CloughTocherInterpolator::CloughTocherInterpolator | ( | NormVecDecorator * | tin | ) |
Constructor with a pointer to the triangulation as argument.
Definition at line 22 of file CloughTocherInterpolator.cpp.
|
protected |
Calculates the Bernsteinpolynomials to calculate the Beziertriangle. 'n' is three in the cubical case, 'i', 'j', 'k' are the indices of the controllpoint and 'u', 'v', 'w' are the barycentric coordinates of the point.
Definition at line 33 of file CloughTocherInterpolator.cpp.
|
overridevirtual |
Calculates the normal vector and assigns it to vec (not implemented at the moment)
Implements TriangleInterpolator.
Definition at line 56 of file CloughTocherInterpolator.cpp.
|
overridevirtual |
Performs a linear interpolation in a triangle and assigns the x-,y- and z-coordinates to point.
Implements TriangleInterpolator.
Definition at line 162 of file CloughTocherInterpolator.cpp.
|
protected |
Finds out, in which triangle the point with the coordinates x and y is.
Definition at line 230 of file CloughTocherInterpolator.cpp.
|
virtual |
Definition at line 28 of file CloughTocherInterpolator.cpp.
Control point 1.
Definition at line 47 of file CloughTocherInterpolator.h.
Control point 10.
Definition at line 65 of file CloughTocherInterpolator.h.
Control point 11.
Definition at line 67 of file CloughTocherInterpolator.h.
Control point 12.
Definition at line 69 of file CloughTocherInterpolator.h.
Control point 13.
Definition at line 71 of file CloughTocherInterpolator.h.
Control point 14.
Definition at line 73 of file CloughTocherInterpolator.h.
Control point 15.
Definition at line 75 of file CloughTocherInterpolator.h.
Control point 16.
Definition at line 77 of file CloughTocherInterpolator.h.
Control point 2.
Definition at line 49 of file CloughTocherInterpolator.h.
Control point 3.
Definition at line 51 of file CloughTocherInterpolator.h.
Control point 4.
Definition at line 53 of file CloughTocherInterpolator.h.
Control point 5.
Definition at line 55 of file CloughTocherInterpolator.h.
Control point 6.
Definition at line 57 of file CloughTocherInterpolator.h.
Control point 7.
Definition at line 59 of file CloughTocherInterpolator.h.
Control point 8.
Definition at line 61 of file CloughTocherInterpolator.h.
Control point 9.
Definition at line 63 of file CloughTocherInterpolator.h.
|
protected |
Derivative in x-direction at point1.
Definition at line 79 of file CloughTocherInterpolator.h.
|
protected |
Derivative in y-direction at point1.
Definition at line 81 of file CloughTocherInterpolator.h.
|
protected |
Derivative in x-direction at point2.
Definition at line 83 of file CloughTocherInterpolator.h.
|
protected |
Derivative in y-direction at point2.
Definition at line 85 of file CloughTocherInterpolator.h.
|
protected |
Derivative in x-direction at point3.
Definition at line 87 of file CloughTocherInterpolator.h.
|
protected |
Derivative in y-direction at point3.
Definition at line 89 of file CloughTocherInterpolator.h.
Stores point1 of the last run.
Definition at line 91 of file CloughTocherInterpolator.h.
Stores point2 of the last run.
Definition at line 93 of file CloughTocherInterpolator.h.
Stores point3 of the last run.
Definition at line 95 of file CloughTocherInterpolator.h.
|
protected |
Tolerance of the barycentric coordinates at the borders of the triangles (to prevent errors because of very small negative baricentric coordinates)
Definition at line 39 of file CloughTocherInterpolator.h.
|
protected |
Association with a triangulation object.
Definition at line 37 of file CloughTocherInterpolator.h.
First point of the triangle in x-,y-,z-coordinates.
Definition at line 41 of file CloughTocherInterpolator.h.
Second point of the triangle in x-,y-,z-coordinates.
Definition at line 43 of file CloughTocherInterpolator.h.
Third point of the triangle in x-,y-,z-coordinates.
Definition at line 45 of file CloughTocherInterpolator.h.