0024950: Wrong result of Boolean CUT operation
authoremv <emv@opencascade.com>
Thu, 29 May 2014 11:00:59 +0000 (15:00 +0400)
committerapn <apn@opencascade.com>
Thu, 29 May 2014 11:02:07 +0000 (15:02 +0400)
Modification:
class BOPAlgo_PaveFiller
method BOPAlgo_PaveFiller::PutBoundPaveOnCurve().
Create bounding paves for each section curve separately.
Added test case bugs/modalg_5/bug24950

src/BOPAlgo/BOPAlgo_PaveFiller.cdl
src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
tests/bugs/modalg_5/bug24950 [new file with mode: 0644]

index 8486a84..33eabd7 100644 (file)
@@ -216,7 +216,6 @@ is
         theF2: Face from TopoDS;  
         theTolR3D:Real from Standard; 
         theNC:out Curve from BOPDS;  
-        theMVOnIn:out MapOfInteger from BOPCol;
         theMVB:out MapOfInteger from BOPCol) 
       is protected; 
 
index 74c0de5..9772be2 100644 (file)
@@ -460,7 +460,7 @@ void BOPAlgo_PaveFiller::MakeBlocks()
       }
       //
       if (aIC.HasBounds()) {
-        PutBoundPaveOnCurve(aF1, aF2, aTolR3D, aNC, aMVOnIn, aMVB);
+        PutBoundPaveOnCurve(aF1, aF2, aTolR3D, aNC, aMVB);
       }
     }//for (j=0; j<aNbC; ++j) {
     //
@@ -1129,7 +1129,6 @@ void BOPAlgo_PaveFiller::UpdateFaceInfo(BOPDS_DataMapOfPaveBlockListOfPaveBlock&
                                                const TopoDS_Face& aF2,
                                                const Standard_Real aTolR3D,
                                                BOPDS_Curve& aNC,
-                                               BOPCol_MapOfInteger& aMVOnIn,
                                                BOPCol_MapOfInteger& aMVB)
 {
   Standard_Boolean bVF;
@@ -1218,7 +1217,6 @@ void BOPAlgo_PaveFiller::UpdateFaceInfo(BOPDS_DataMapOfPaveBlockListOfPaveBlock&
       BOPDS_ShapeInfo& aSIDS=myDS->ChangeShapeInfo(nVn);
       Bnd_Box& aBoxDS=aSIDS.ChangeBox();
       BRepBndLib::Add(aVn, aBoxDS);
-      aMVOnIn.Add(nVn);
       aMVB.Add(nVn);
     }
   }
diff --git a/tests/bugs/modalg_5/bug24950 b/tests/bugs/modalg_5/bug24950
new file mode 100644 (file)
index 0000000..f2e049c
--- /dev/null
@@ -0,0 +1,16 @@
+puts "========="
+puts "OCC24950"
+puts "========="
+puts ""
+###########################################
+# Wrong result of Boolean CUT operation
+###########################################
+
+restore [locate_data_file bug24950_test1.brep] b1
+restore [locate_data_file bug24950_test2.brep] b2
+
+bop b1 b2
+bopcut result
+checkshape result
+
+set 2dviewer 1