From: skv Date: Wed, 6 May 2015 14:10:57 +0000 (+0300) Subject: Fix for test case geom/boolean_operations_05/F5 (implement copying of source shapes... X-Git-Tag: V7_6_0rc1~12 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=398df1400a6093604d3e77da81b59d10f68dc088;p=modules%2Fgeom.git Fix for test case geom/boolean_operations_05/F5 (implement copying of source shapes for MakeFaceWires) --- diff --git a/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx b/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx index 8ad9f4349..933ad9eea 100644 --- a/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx @@ -59,6 +59,8 @@ #include #include +#include + #include #include #include @@ -86,6 +88,7 @@ #include #include +#include #include #include #include @@ -208,6 +211,7 @@ Standard_Integer GEOMImpl_ShapeDriver::Execute(TFunction_Logbook& log) const // 1. Extract all edges from the given arguments TopTools_MapOfShape aMapEdges; Handle(TopTools_HSequenceOfShape) aSeqEdgesIn = new TopTools_HSequenceOfShape; + TColStd_IndexedDataMapOfTransientTransient aMapTShapes; for (ind = 1; ind <= nbshapes; ind++) { Handle(GEOM_Function) aRefSh_i = Handle(GEOM_Function)::DownCast(aShapes->Value(ind)); @@ -216,7 +220,12 @@ Standard_Integer GEOMImpl_ShapeDriver::Execute(TFunction_Logbook& log) const TopExp_Explorer anExpE_i (aSh_i, TopAbs_EDGE); for (; anExpE_i.More(); anExpE_i.Next()) { if (aMapEdges.Add(anExpE_i.Current())) { - aSeqEdgesIn->Append(anExpE_i.Current()); + // Copy the original shape. + TopoDS_Shape aShapeCopy; + + TNaming_CopyShape::CopyTool + (anExpE_i.Current(), aMapTShapes, aShapeCopy); + aSeqEdgesIn->Append(aShapeCopy); } } }