QGIS API Documentation 3.39.0-Master (bca3cdb6021)
|
DualEdgeTriangulation is an implementation of a triangulation class based on the dual edge data structure. More...
#include <qgsdualedgetriangulation.h>
Public Member Functions | |
QgsDualEdgeTriangulation () | |
QgsDualEdgeTriangulation (const QgsDualEdgeTriangulation &)=delete | |
QgsDualEdgeTriangulation (int nop) | |
Constructor with a number of points to reserve. | |
~QgsDualEdgeTriangulation () override | |
void | addLine (const QVector< QgsPoint > &points, QgsInterpolator::SourceType lineType) override |
Adds a line (e.g. | |
int | addPoint (const QgsPoint &p) override |
Adds a point to the triangulation. | |
bool | calcNormal (double x, double y, QgsPoint &result) override |
Calculates the normal at a point on the surface. | |
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'. | |
void | eliminateHorizontalTriangles () override |
Eliminates the horizontal triangles by swapping or by insertion of new points. | |
QgsDualEdgeTriangulation & | operator= (const QgsDualEdgeTriangulation &other)=delete |
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). | |
void | performConsistencyTest () override |
Performs a consistency check, remove this later. | |
QgsPoint * | point (int i) const override |
Draws the points, edges and the forced lines. | |
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. | |
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. | |
int | pointsCount () const override |
Returns the number of points. | |
void | ruppertRefinement () override |
Adds points to make the triangles better shaped (algorithm of ruppert) | |
bool | saveTriangulation (QgsFeatureSink *sink, QgsFeedback *feedback=nullptr) const override |
Saves the triangulation features to a feature sink. | |
void | setForcedCrossBehavior (QgsTriangulation::ForcedCrossBehavior b) override |
Sets the behavior of the triangulation in case of crossing forced lines. | |
void | setTriangleInterpolator (TriangleInterpolator *interpolator) override |
Sets an interpolator object. | |
QList< int > | surroundingTriangles (int pointno) override |
Returns a value list with the information of the triangles surrounding (counterclockwise) a point. | |
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) | |
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'. | |
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. | |
virtual QgsMesh | triangulationToMesh (QgsFeedback *feedback=nullptr) const override |
Returns a QgsMesh corresponding to the triangulation. | |
double | xMax () const override |
Returns the largest x-coordinate value of the bounding box. | |
double | xMin () const override |
Returns the smallest x-coordinate value of the bounding box. | |
double | yMax () const override |
Returns the largest y-coordinate value of the bounding box. | |
double | yMin () const override |
Returns the smallest x-coordinate value of the bounding box. | |
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(). | |
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 187 of file qgsdualedgetriangulation.h.
|
delete |
|
inline |
Constructor with a number of points to reserve.
Definition at line 193 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 76 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 108 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Calculates the normal at a point on the surface.
Implements QgsTriangulation.
Definition at line 741 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 754 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Eliminates the horizontal triangles by swapping or by insertion of new points.
Implements QgsTriangulation.
Definition at line 1755 of file qgsdualedgetriangulation.cpp.
|
delete |
|
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 1031 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Performs a consistency check, remove this later.
Implements QgsTriangulation.
Definition at line 56 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 204 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 2708 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 3127 of file qgsdualedgetriangulation.cpp.
|
inlineoverridevirtual |
Returns the number of points.
Implements QgsTriangulation.
Definition at line 199 of file qgsdualedgetriangulation.h.
|
overridevirtual |
Adds points to make the triangles better shaped (algorithm of ruppert)
Implements QgsTriangulation.
Definition at line 1844 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 3185 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Sets the behavior of the triangulation in case of crossing forced lines.
Implements QgsTriangulation.
Definition at line 1745 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Sets an interpolator object.
Implements QgsTriangulation.
Definition at line 1750 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 1065 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 3066 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 1101 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 1209 of file qgsdualedgetriangulation.cpp.
|
overridevirtual |
Returns a QgsMesh corresponding to the triangulation.
Implements QgsTriangulation.
Definition at line 3248 of file qgsdualedgetriangulation.cpp.
|
inlineoverridevirtual |
Returns the largest x-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.
|
inlineoverridevirtual |
Returns the largest y-coordinate value of the bounding box.
Implements QgsTriangulation.
Definition at line 80 of file qgsdualedgetriangulation.h.
|
inlineoverridevirtual |
Returns the smallest x-coordinate value of the bounding box.
Implements QgsTriangulation.
Definition at line 82 of file qgsdualedgetriangulation.h.
|
friend |
Definition at line 182 of file qgsdualedgetriangulation.h.