QGIS API Documentation
3.22.4-Białowieża (ce8e65e95e)
|
DualEdgeTriangulation is an implementation of a triangulation class based on the dual edge data structure. More...
#include <qgsdualedgetriangulation.h>
Public Member Functions | |
QgsDualEdgeTriangulation () | |
QgsDualEdgeTriangulation (int nop) | |
Constructor with a number of points to reserve. More... | |
~QgsDualEdgeTriangulation () override | |
void | addLine (const QVector< QgsPoint > &points, QgsInterpolator::SourceType lineType) override |
Adds a line (e.g. More... | |
int | addPoint (const QgsPoint &p) override |
Adds a point to the triangulation. More... | |
bool | calcNormal (double x, double y, QgsPoint &result) override |
Calculates the normal at a point on the surface. More... | |
bool | calcPoint (double x, double y, QgsPoint &result) override |
Calculates x-, y and z-value of the point on the surface and assigns it to 'result'. More... | |
void | eliminateHorizontalTriangles () override |
Eliminates the horizontal triangles by swapping or by insertion of new points. More... | |
int | oppositePoint (int p1, int p2) override |
Returns the number of the point opposite to the triangle points p1, p2 (which have to be on a halfedge). More... | |
void | performConsistencyTest () override |
Performs a consistency check, remove this later. More... | |
QgsPoint * | point (int i) const override |
Draws the points, edges and the forced lines. More... | |
bool | pointInside (double x, double y) override |
Returns true , if the point with coordinates x and y is inside the convex hull and false otherwise. More... | |
QList< int > | pointsAroundEdge (double x, double y) override |
Returns a value list with the numbers of the four points, which would be affected by an edge swap. This function is e.g. needed by NormVecDecorator to know the points, for which the normals have to be recalculated. The returned ValueList has to be deleted by the code which calls the method. More... | |
int | pointsCount () const override |
Returns the number of points. More... | |
void | ruppertRefinement () override |
Adds points to make the triangles better shaped (algorithm of ruppert) More... | |
bool | saveTriangulation (QgsFeatureSink *sink, QgsFeedback *feedback=nullptr) const override |
Saves the triangulation features to a feature sink. More... | |
void | setForcedCrossBehavior (QgsTriangulation::ForcedCrossBehavior b) override |
Sets the behavior of the triangulation in case of crossing forced lines. More... | |
void | setTriangleInterpolator (TriangleInterpolator *interpolator) override |
Sets an interpolator object. More... | |
QList< int > | surroundingTriangles (int pointno) override |
Returns a value list with the information of the triangles surrounding (counterclockwise) a point. More... | |
bool | swapEdge (double x, double y) override |
Swaps the edge which is closest to the point with x and y coordinates (if this is possible) More... | |
bool | triangleVertices (double x, double y, QgsPoint &p1, int &n1, QgsPoint &p2, int &n2, QgsPoint &p3, int &n3) override |
Finds out in which triangle the point with coordinates x and y is and assigns the numbers of the vertices to 'n1', 'n2' and 'n3' and the vertices to 'p1', 'p2' and 'p3'. More... | |
bool | triangleVertices (double x, double y, QgsPoint &p1, QgsPoint &p2, QgsPoint &p3) override |
Finds out, in which triangle the point with coordinates x and y is and assigns the points at the vertices to 'p1', 'p2' and 'p3. More... | |
virtual QgsMesh | triangulationToMesh (QgsFeedback *feedback=nullptr) const override |
Returns a QgsMesh corresponding to the triangulation. More... | |
double | xMax () const override |
Returns the largest x-coordinate value of the bounding box. More... | |
double | xMin () const override |
Returns the smallest x-coordinate value of the bounding box. More... | |
double | yMax () const override |
Returns the largest y-coordinate value of the bounding box. More... | |
double | yMin () const override |
Returns the smallest x-coordinate value of the bounding box. More... | |
Public Member Functions inherited from QgsTriangulation | |
virtual | ~QgsTriangulation ()=default |
Friends | |
class | TestQgsInterpolator |
Additional Inherited Members | |
Public Types inherited from QgsTriangulation | |
enum | ForcedCrossBehavior { SnappingTypeVertex , DeleteFirst , InsertVertex } |
Enumeration describing the behavior, if two forced lines cross. More... | |
Static Public Member Functions inherited from QgsTriangulation | |
static QgsFields | triangulationFields () |
Returns the fields output by features when calling saveTriangulation(). More... | |
DualEdgeTriangulation is an implementation of a triangulation class based on the dual edge data structure.
Definition at line 49 of file qgsdualedgetriangulation.h.
|
inline |
Definition at line 183 of file qgsdualedgetriangulation.h.
|
inline |
Constructor with a number of points to reserve.
Definition at line 189 of file qgsdualedgetriangulation.h.
|
override |
Definition at line 50 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Adds a line (e.g.
a break-, structure- or an isoline) to the triangulation, by specifying a list of source points.
Implements QgsTriangulation.
Definition at line 91 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Adds a point to the triangulation.
The point should have a z-value matching the value to interpolate.
Implements QgsTriangulation.
Definition at line 123 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Calculates the normal at a point on the surface.
Implements QgsTriangulation.
Definition at line 756 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Calculates x-, y and z-value of the point on the surface and assigns it to 'result'.
Returns true
in case of success and false
in case of failure
Implements QgsTriangulation.
Definition at line 769 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Eliminates the horizontal triangles by swapping or by insertion of new points.
Implements QgsTriangulation.
Definition at line 1770 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Returns the number of the point opposite to the triangle points p1, p2 (which have to be on a halfedge).
Returns -1 if point is a virtual point. Returns -10 if point crosses over edges.
Implements QgsTriangulation.
Definition at line 1046 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Performs a consistency check, remove this later.
Implements QgsTriangulation.
Definition at line 71 of file qgsdualedgetriangulation.cpp.
|
inlineoverridevirtual |
Draws the points, edges and the forced lines.
Returns a pointer to the point with number i
Implements QgsTriangulation.
Definition at line 200 of file qgsdualedgetriangulation.h.
|
overridevirtual |
Returns true
, if the point with coordinates x and y is inside the convex hull and false
otherwise.
Implements QgsTriangulation.
Definition at line 2723 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Returns a value list with the numbers of the four points, which would be affected by an edge swap. This function is e.g. needed by NormVecDecorator to know the points, for which the normals have to be recalculated. The returned ValueList has to be deleted by the code which calls the method.
Implements QgsTriangulation.
Definition at line 3142 of file qgsdualedgetriangulation.cpp.
|
inlineoverridevirtual |
Returns the number of points.
Implements QgsTriangulation.
Definition at line 195 of file qgsdualedgetriangulation.h.
|
overridevirtual |
Adds points to make the triangles better shaped (algorithm of ruppert)
Implements QgsTriangulation.
Definition at line 1859 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Saves the triangulation features to a feature sink.
The sink must be setup to accept LineString features, with fields matching those returned by triangulationFields().
true
in case of successImplements QgsTriangulation.
Definition at line 3200 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Sets the behavior of the triangulation in case of crossing forced lines.
Implements QgsTriangulation.
Definition at line 1760 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Sets an interpolator object.
Implements QgsTriangulation.
Definition at line 1765 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Returns a value list with the information of the triangles surrounding (counterclockwise) a point.
Four integer values describe a triangle, the first three are the number of the half edges of the triangle and the fourth is -10, if the third (and most counterclockwise) edge is a breakline, and -20 otherwise. Any virtual point needs to have the number -1
Implements QgsTriangulation.
Definition at line 1080 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Swaps the edge which is closest to the point with x and y coordinates (if this is possible)
Implements QgsTriangulation.
Definition at line 3081 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Finds out in which triangle the point with coordinates x and y is and assigns the numbers of the vertices to 'n1', 'n2' and 'n3' and the vertices to 'p1', 'p2' and 'p3'.
Implements QgsTriangulation.
Definition at line 1116 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Finds out, in which triangle the point with coordinates x and y is and assigns the points at the vertices to 'p1', 'p2' and 'p3.
Implements QgsTriangulation.
Definition at line 1224 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Returns a QgsMesh corresponding to the triangulation.
Implements QgsTriangulation.
Definition at line 3263 of file qgsdualedgetriangulation.cpp.
|
inlineoverridevirtual |
Returns the largest x-coordinate value of the bounding box.
Implements QgsTriangulation.
Definition at line 72 of file qgsdualedgetriangulation.h.
|
inlineoverridevirtual |
Returns the smallest x-coordinate value of the bounding box.
Implements QgsTriangulation.
Definition at line 74 of file qgsdualedgetriangulation.h.
|
inlineoverridevirtual |
Returns the largest y-coordinate value of the bounding box.
Implements QgsTriangulation.
Definition at line 76 of file qgsdualedgetriangulation.h.
|
inlineoverridevirtual |
Returns the smallest x-coordinate value of the bounding box.
Implements QgsTriangulation.
Definition at line 78 of file qgsdualedgetriangulation.h.
|
friend |
Definition at line 178 of file qgsdualedgetriangulation.h.