1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

0026407: BRepMesh_Delaun should not take into account frontier edges on first pass of algorithm

Correction of new vertices insertion: remove all triangles shot by point even if they contain frontier edges in order to prevent cases of free edge glued with frontier;
findNextPolygonLink: choose link with opposite direction to previous one as the last resort in case if the is no another option;
Enlarge bounding boxes by Precision::PConfusion() in order to not to miss possible intersections;

Test-case for issue #26407

Return NoIntersection in case of end point touch and isConsiderEndPointTouch flag is not set

Update of test-cases according to the new behavior
This commit is contained in:
oan
2015-07-20 16:25:14 +03:00
committed by bugmaster
parent fd03c080a6
commit 7131619620
9 changed files with 232 additions and 70 deletions

View File

@@ -114,10 +114,12 @@ public:
}
//! Test is the given triangle contains the given vertex.
//! If theEdgeOn != 0 the vertex lies onto the edge index
//! returned through this parameter.
//! @param theSqTolerance square tolerance to check closeness to some edge
//! @param theEdgeOn If it is != 0 the vertex lies onto the edge index
//! returned through this parameter.
Standard_EXPORT Standard_Boolean Contains (const Standard_Integer theTriangleId,
const BRepMesh_Vertex& theVertex,
const Standard_Real theSqTolerance,
Standard_Integer& theEdgeOn) const;
private:
@@ -300,7 +302,6 @@ private:
//! Calculates distances between the given point and edges of triangle.
Standard_Real calculateDist (const gp_XY theVEdges[3],
const gp_XY thePoints[3],
const Standard_Integer theEdgesId[3],
const BRepMesh_Vertex& theVertex,
Standard_Real theDistance[3],
Standard_Real theSqModulus[3],