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

0026316: Infinite modification of the shapes in General Fuse operation

Check the validity of the intersection point between Faces.

Test case for issue CR26316

Correction of the test case for the issue.

Small correction of test case for issue CR26316
This commit is contained in:
emv
2015-06-25 12:50:37 +03:00
committed by bugmaster
parent 34fbe24917
commit e9e644edf4
3 changed files with 137 additions and 53 deletions

View File

@@ -766,6 +766,7 @@ void IntTools_FaceFace::Perform(const TopoDS_Face& aF1,
}
// Points
Standard_Boolean bValid2D1, bValid2D2;
Standard_Real U1,V1,U2,V2;
IntTools_PntOnFace aPntOnF1, aPntOnF2;
IntTools_PntOn2Faces aPntOn2Faces;
@@ -776,6 +777,19 @@ void IntTools_FaceFace::Perform(const TopoDS_Face& aF1,
const IntSurf_PntOn2S& aISPnt=myIntersector.Point(i).PntOn2S();
const gp_Pnt& aPnt=aISPnt.Value();
aISPnt.Parameters(U1,V1,U2,V2);
//
// check the validity of the intersection point for the faces
bValid2D1 = myContext->IsPointInOnFace(myFace1, gp_Pnt2d(U1, V1));
if (!bValid2D1) {
continue;
}
//
bValid2D2 = myContext->IsPointInOnFace(myFace2, gp_Pnt2d(U2, V2));
if (!bValid2D2) {
continue;
}
//
// add the intersection point
aPntOnF1.Init(myFace1, aPnt, U1, V1);
aPntOnF2.Init(myFace2, aPnt, U2, V2);
//