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

0027282: [Regression to 6.9.1] smesh/bugs_00/A6: Cut produces an empty shape

1. The reason of the regression is not-closed intersection result. This problem has been solved (in this fix) by adding joint point to the both neighbors intersection lines (lines were extended to the this intersection point). It is made in IntPatch_WLineTool::ExtendTwoWlinesToEachOther(...) method.

2. Interface of IntPatch_PointLine and inherited classes has been changed. Methods ChangeVertex(...) and RemoveVertex(...) have been added.

Test cases for this issue have been created.

Small correction in the code.
This commit is contained in:
nbv
2016-02-24 12:59:36 +03:00
committed by bugmaster
parent 93e38faa3b
commit eee615ad2a
12 changed files with 604 additions and 54 deletions

View File

@@ -57,7 +57,7 @@ Standard_Boolean IntSurf_PntOn2S::IsSame( const IntSurf_PntOn2S& theOterPoint,
if(pt.SquareDistance(theOterPoint.Value()) > theTol3D*theTol3D)
return Standard_False;
if(IsEqual(theTol2D, 0.0))
if(theTol2D < 0.0)
{//We need not compare 2D-coordinates of the points
return Standard_True;
}

View File

@@ -74,8 +74,8 @@ public:
//! Returns TRUE if 2D- and 3D-coordinates of theOterPoint are equal to
//! corresponding coordinates of me (with given tolerance).
//! If theTol2D == 0.0 we will compare 3D-points only.
Standard_EXPORT Standard_Boolean IsSame (const IntSurf_PntOn2S& theOterPoint, const Standard_Real theTol3D = 0.0, const Standard_Real theTol2D = 0.0) const;
//! If theTol2D < 0.0 we will compare 3D-points only.
Standard_EXPORT Standard_Boolean IsSame (const IntSurf_PntOn2S& theOterPoint, const Standard_Real theTol3D = 0.0, const Standard_Real theTol2D = -1.0) const;