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: python/analysis/interpolation/DualEdgeTriangulation.sip
+7-2
Original file line number
Diff line number
Diff line change
@@ -25,6 +25,7 @@ class DualEdgeTriangulation: Triangulation
25
25
/**Returns the number of the point opposite to the triangle points p1, p2 (which have to be on a halfedge)*/
26
26
int getOppositePoint( int p1, int p2 );
27
27
/**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'*/
@@ -77,14 +78,18 @@ class DualEdgeTriangulation: Triangulation
77
78
unsigned int insertEdge( int dual, int next, int point, bool mbreak, bool forced );
78
79
/**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*/
79
80
int insertForcedSegment( int p1, int p2, bool breakline );
81
+
/**Threshold for the leftOfTest to handle numerical instabilities*/
82
+
//const static double leftOfTresh=0.00001;
83
+
/**Security to prevent endless loops in 'baseEdgeOfTriangle'. It there are more iteration then this number, the point will not be inserted*/
84
+
const static int nBaseOfRuns = 300000;
80
85
/**Returns the number of an edge which points to the point with number 'point' or -1 if there is an error*/
81
86
int baseEdgeOfPoint( int point );
82
87
/**returns the number of a HalfEdge from a triangle in which 'point' is in. If the number -10 is returned, this means, that 'point' is outside the convex hull. If -5 is returned, then numerical problems with the leftOfTest occured (and the value of the possible edge is stored in the variable 'mUnstableEdge'. -20 means, that the inserted point is exactly on an edge (the number is stored in the variable 'mEdgeWithPoint'). -25 means, that the point is already in the triangulation (the number of the point is stored in the member 'mTwiceInsPoint'. If -100 is returned, this means that something else went wrong*/
83
88
int baseEdgeOfTriangle( Point3D* point );
84
89
/**Checks, if 'edge' has to be swapped because of the empty circle criterion. If so, doSwap(...) is called.*/
85
-
bool checkSwap( unsigned int edge );
90
+
bool checkSwap( unsigned int edge, unsigned int recursivDeep );
86
91
/**Swaps 'edge' and test recursively for other swaps (delaunay criterion)*/
87
-
void doSwap( unsigned int edge );
92
+
void doSwap( unsigned int edge, unsigned int recursivDeep );
88
93
/**Swaps 'edge' and does no recursiv testing*/
89
94
void doOnlySwap( unsigned int edge );
90
95
/**Returns true, if it is possible to swap an edge, otherwise false(concave quad or edge on (or outside) the convex hull)*/
0 commit comments