0026224: Wrong result obtained by Common operator.
authorpkv <pkv@opencascade.com>
Thu, 21 May 2015 09:56:26 +0000 (12:56 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 21 May 2015 09:57:19 +0000 (12:57 +0300)
Changes:
class BOPTools_AlgoTools2D
 - method:
Standard_Integer BOPTools_AlgoTools2D::AttachExistingPCurve
(const TopoDS_Edge& aE2,
const TopoDS_Edge& aE1,
const TopoDS_Face& aF,
const Handle(IntTools_Context)& aCtx)
has been changed.
The treatment of the curves that need to be reversed has been modified
taking into account reversed parameter

Test case for issue CR26224

src/BOPTools/BOPTools_AlgoTools2D_1.cxx
tests/bugs/modalg_6/bug26224 [new file with mode: 0755]

index 028a64a..86390a2 100644 (file)
@@ -85,13 +85,14 @@ Standard_Integer BOPTools_AlgoTools2D::AttachExistingPCurve
   //
   bIsToReverse=IsToReverse(aE2, aE1, aCtx);
   if (bIsToReverse) {
-    aC2DoldC->Reverse();
+    Standard_Real aT21r, aT22r;
     //
-    gp_Pnt2d aP1, aP2;
+    aC2DoldC->Reverse();
     //
-    aC2Dold->D0(aT22, aP2);
-    aC2DoldC->D0(aT21, aP1);
-    aC2DoldC->Translate(aP1, aP2);
+    aT21r=aC2DoldC->ReversedParameter(aT21);
+    aT22r=aC2DoldC->ReversedParameter(aT22);
+    aT21=aT22r;
+    aT22=aT21r;
   }
   //
   aC2DT=new Geom2d_TrimmedCurve(aC2DoldC, aT21, aT22);
diff --git a/tests/bugs/modalg_6/bug26224 b/tests/bugs/modalg_6/bug26224
new file mode 100755 (executable)
index 0000000..564f6ba
--- /dev/null
@@ -0,0 +1,37 @@
+puts "============"
+puts "OCC26224"
+puts "============"
+puts ""
+###############################
+## Wrong result obtained by Common operator.
+###############################
+
+restore [locate_data_file bug26224_b1.brep] b1
+restore [locate_data_file bug26224_b2.brep] b2
+
+bclearobjects
+bcleartools
+baddobjects b1
+baddtools b2
+
+bfillds
+bbop result 0
+
+set square 35006.6
+
+set nbshapes_expected "
+Number of shapes in shape
+ VERTEX : 9
+ EDGE : 9
+ WIRE : 1
+ FACE : 1
+ SHELL : 1
+ SOLID : 0
+ COMPSOLID : 0
+ COMPOUND : 1
+ SHAPE : 22
+
+"
+checknbshapes result -ref ${nbshapes_expected} -t -m "result obtained by Common operator"
+
+set 3dviewer 1