]> OCCT Git - occt-copy.git/commitdiff
0031910: Modeling Algorithms - Wrong result of BOP Cut CR31910
authorjgv <jgv@opencascade.com>
Fri, 28 May 2021 15:23:06 +0000 (18:23 +0300)
committerjgv <jgv@opencascade.com>
Fri, 28 May 2021 15:23:06 +0000 (18:23 +0300)
Modify the method BOPAlgo_PaveFiller::PerformEF: the maximum distance between new and old vertex is decreased.

src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx

index aebd4882d41ea25c7ec6cde5fb0e62c41049f2b2..802f1ff6610c48463538d2fb7225c62151a54b13 100644 (file)
@@ -431,6 +431,7 @@ void BOPAlgo_PaveFiller::PerformEF()
 
             // Real intersection is present.
             // Update the existing vertex to cover the intersection point.
+            Standard_Boolean bIsInSphereOfOldVertex = Standard_False;
             for (j = 0; j < 2; ++j)
             {
               if (bIsOnPave[j])
@@ -444,14 +445,19 @@ void BOPAlgo_PaveFiller::PerformEF()
                 {
                   aMaxDist = Min(aMaxDist, 0.1);
                 }
+                //jgv
+                aMaxDist = 1.e-5;
+                /////
                 if (aDistPP < aMaxDist)
                 {
                   UpdateVertex(nV[j], aDistPP);
                   myVertsToAvoidExtension.Add(nV[j]);
+                  bIsInSphereOfOldVertex = Standard_True;
                 }
               }
             }
-            continue;
+            if (bIsInSphereOfOldVertex)
+              continue;
           }
 
           if (CheckFacePaves(aVnew, aMIFOn)) {