From f85265c2521ee17b1b2ff52f053a56afc248e9bf Mon Sep 17 00:00:00 2001 From: emv Date: Wed, 29 Jul 2015 15:29:42 +0300 Subject: [PATCH] 0026420: BOPAlgo_Builder resets "Closed" flag in the result Set flag Closed to new Wires and Shells created in General Fuse algorithm if necessary. Test-cases for issue #26420 --- src/BOPAlgo/BOPAlgo_BuilderFace.cxx | 2 ++ src/BOPAlgo/BOPAlgo_Builder_1.cxx | 8 ++++++++ src/BOPAlgo/BOPAlgo_WireSplitter.lxx | 4 +++- tests/bugs/modalg_6/bug26420_1 | 21 +++++++++++++++++++++ tests/bugs/modalg_6/bug26420_2 | 22 ++++++++++++++++++++++ tests/bugs/modalg_6/bug26420_3 | 20 ++++++++++++++++++++ 6 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 tests/bugs/modalg_6/bug26420_1 create mode 100644 tests/bugs/modalg_6/bug26420_2 create mode 100644 tests/bugs/modalg_6/bug26420_3 diff --git a/src/BOPAlgo/BOPAlgo_BuilderFace.cxx b/src/BOPAlgo/BOPAlgo_BuilderFace.cxx index b1c5387c0d..09acefd67f 100644 --- a/src/BOPAlgo/BOPAlgo_BuilderFace.cxx +++ b/src/BOPAlgo/BOPAlgo_BuilderFace.cxx @@ -445,6 +445,7 @@ void BOPAlgo_BuilderFace::PerformLoops() }//for (; aIt.More(); aIt.Next()) { }//for (; aItE.More(); aItE.Next()) { }//for (; aItW.More(); aItW.Next()) { + aW.Closed(BRep_Tool::IsClosed(aW)); myLoopsInternal.Append(aW); }//for (; aItM.More(); aItM.Next()) { } @@ -817,6 +818,7 @@ void MakeInternalWires(const BOPCol_MapOfShape& theME, } } } + aW.Closed(BRep_Tool::IsClosed(aW)); theWires.Append(aW); } } diff --git a/src/BOPAlgo/BOPAlgo_Builder_1.cxx b/src/BOPAlgo/BOPAlgo_Builder_1.cxx index fd628c7500..5c1e98a35f 100644 --- a/src/BOPAlgo/BOPAlgo_Builder_1.cxx +++ b/src/BOPAlgo/BOPAlgo_Builder_1.cxx @@ -34,6 +34,12 @@ #include #include +#include +#include +#include +#include +#include +#include //======================================================================= //function : FillImagesVertices @@ -241,6 +247,8 @@ } } // + aCIm.Closed(BRep_Tool::IsClosed(aCIm)); + // BOPCol_ListOfShape aLSIm(myAllocator); aLSIm.Append(aCIm); myImages.Bind(theS, aLSIm); diff --git a/src/BOPAlgo/BOPAlgo_WireSplitter.lxx b/src/BOPAlgo/BOPAlgo_WireSplitter.lxx index 01fa726fb8..d3481e7619 100644 --- a/src/BOPAlgo/BOPAlgo_WireSplitter.lxx +++ b/src/BOPAlgo/BOPAlgo_WireSplitter.lxx @@ -13,6 +13,7 @@ // commercial license or contractual agreement. #include +#include #include @@ -85,7 +86,7 @@ typedef NCollection_IndexedDataMap