From c5d8782cfd4f16b148cca4c5cb2bdeac57b0b599 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 | 3 +++ 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, 71 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 19885937d7..0f3492ed00 100644 --- a/src/BOPAlgo/BOPAlgo_BuilderFace.cxx +++ b/src/BOPAlgo/BOPAlgo_BuilderFace.cxx @@ -434,6 +434,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 (i = 1; (i <= aNbEA) && bFlag; ++i) { } @@ -804,6 +805,7 @@ void MakeInternalWires(const BOPCol_IndexedMapOfShape& 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 bc7716ed81..0801e1a7e9 100644 --- a/src/BOPAlgo/BOPAlgo_Builder_1.cxx +++ b/src/BOPAlgo/BOPAlgo_Builder_1.cxx @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -239,6 +240,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