From b6ec1ef98cce2c6d0577b768b104b52c3b520f91 Mon Sep 17 00:00:00 2001 From: pkv Date: Thu, 21 May 2015 12:56:26 +0300 Subject: [PATCH] 0026224: Wrong result obtained by Common operator. 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 | 11 ++++---- tests/bugs/modalg_6/bug26224 | 37 +++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 5 deletions(-) create mode 100755 tests/bugs/modalg_6/bug26224 diff --git a/src/BOPTools/BOPTools_AlgoTools2D_1.cxx b/src/BOPTools/BOPTools_AlgoTools2D_1.cxx index 028a64a67a..86390a2355 100644 --- a/src/BOPTools/BOPTools_AlgoTools2D_1.cxx +++ b/src/BOPTools/BOPTools_AlgoTools2D_1.cxx @@ -85,13 +85,14 @@ Standard_Integer BOPTools_AlgoTools2D::AttachExistingPCurve // bIsToReverse=IsToReverse(aE2, aE1, aCtx); if (bIsToReverse) { + Standard_Real aT21r, aT22r; + // aC2DoldC->Reverse(); // - gp_Pnt2d aP1, aP2; - // - 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 index 0000000000..564f6ba177 --- /dev/null +++ b/tests/bugs/modalg_6/bug26224 @@ -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