You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/analysis/interpolation/DualEdgeTriangulation.h
+11-3
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,8 @@ class ANALYSIS_EXPORT DualEdgeTriangulation: public Triangulation
43
43
DualEdgeTriangulation();
44
44
DualEdgeTriangulation( int nop, Triangulation* decorator );
45
45
virtual~DualEdgeTriangulation();
46
-
/**Adds a line (e.g. a break-, structure- or an isoline) to the triangulation*/
46
+
voidsetDecorator( Triangulation* d ) {mDecorator = d;}
47
+
/**Adds a line (e.g. a break-, structure- or an isoline) to the triangulation. The class takes ownership of the line object and its points*/
47
48
voidaddLine( Line3D* line, bool breakline );
48
49
/**Adds a point to the triangulation and returns the number of this point in case of success or -100 in case of failure*/
49
50
intaddPoint( Point3D* p );
@@ -104,6 +105,9 @@ class ANALYSIS_EXPORT DualEdgeTriangulation: public Triangulation
104
105
virtualboolswapEdge( double x, double y );
105
106
/**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*/
106
107
virtual QList<int>* getPointsAroundEdge( double x, double y );
/**X-coordinate of the upper right corner of the bounding box*/
@@ -137,7 +141,7 @@ class ANALYSIS_EXPORT DualEdgeTriangulation: public Triangulation
137
141
/**inserts an edge and makes sure, everything is ok with the storage of the edge. The number of the HalfEdge is returned*/
138
142
unsignedintinsertEdge( int dual, int next, int point, bool mbreak, bool forced );
139
143
/**inserts a forced segment between the points with the numbers p1 and p2 into the triangulation and returns the number of a HalfEdge belonging to this forced edge or -100 in case of failure*/
140
-
//int insertForcedSegment(int p1, int p2, bool breakline);
144
+
intinsertForcedSegment(int p1, int p2, bool breakline);
141
145
/**Treshold for the leftOfTest to handle numerical instabilities*/
142
146
//const static double leftOfTresh=0.00001;
143
147
/**Security to prevent endless loops in 'baseEdgeOfTriangle'. It there are more iteration then this number, the point will not be inserted*/
@@ -165,7 +169,7 @@ class ANALYSIS_EXPORT DualEdgeTriangulation: public Triangulation
165
169
/**Returns true, if it is possible to swap an edge, otherwise false(concave quad or edge on (or outside) the convex hull)*/
166
170
boolswapPossible( unsignedint edge );
167
171
/**divides a polygon in a triangle and two polygons and calls itself recursively for these two polygons. 'poly' is a pointer to a list with the numbers of the edges of the polygon, 'free' is a pointer to a list of free halfedges, and 'mainedge' is the number of the edge, towards which the new triangle is inserted. Mainedge has to be the same as poly->begin(), otherwise the recursion does not work*/
168
-
//void triangulatePolygon(QList<int>* poly, QList<int>* free, int mainedge);
172
+
voidtriangulatePolygon(QList<int>* poly, QList<int>* free, int mainedge);
169
173
/**Tests, if the bounding box of the halfedge with index i intersects the specified bounding box. The main purpose for this method is the drawing of the triangulation*/
0 commit comments