X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FBuildPlugin%2FBuildPlugin_SubShapes.cpp;h=85ba50a59697b49602e1e911031decfc4c753a88;hb=88ee9b2b81cf93a6324336b57e30cc8a3a487499;hp=35aa48914036197f31628a583661cfce70f9c210;hpb=7074394f8f08413d885f63be01df6bd5007b868c;p=modules%2Fshaper.git diff --git a/src/BuildPlugin/BuildPlugin_SubShapes.cpp b/src/BuildPlugin/BuildPlugin_SubShapes.cpp index 35aa48914..85ba50a59 100644 --- a/src/BuildPlugin/BuildPlugin_SubShapes.cpp +++ b/src/BuildPlugin/BuildPlugin_SubShapes.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2022 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -12,10 +12,9 @@ // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "BuildPlugin_SubShapes.h" @@ -105,9 +104,9 @@ void BuildPlugin_SubShapes::execute() if(!aBaseShape.get()) { return; } - GeomAlgoAPI_ShapeBuilder aBuilder; - aBuilder.removeInternal(aBaseShape); - GeomShapePtr aResultShape = aBuilder.shape(); + std::shared_ptr aBuilder(new GeomAlgoAPI_ShapeBuilder()); + aBuilder->removeInternal(aBaseShape); + GeomShapePtr aResultShape = aBuilder->shape(); // Get list of shapes. ListOfShape aShapesToAdd; @@ -118,24 +117,22 @@ void BuildPlugin_SubShapes::execute() // Copy sub-shapes from list to new shape. if(!aShapesToAdd.empty()) { - aBuilder.addInternal(aResultShape, aShapesToAdd); - aResultShape = aBuilder.shape(); + aBuilder->addInternal(aResultShape, aShapesToAdd); + aResultShape = aBuilder->shape(); } // Store result. - const int aModVertexTag = 1; - const int aModEdgeTag = 2; ResultBodyPtr aResultBody = document()->createBody(data()); aResultBody->storeModified(aBaseShape, aResultShape); - aResultBody->loadAndOrientModifiedShapes(&aBuilder, aBaseShape, GeomAPI_Shape::EDGE, aModEdgeTag, - "Modified_Edge", *aBuilder.mapOfSubShapes().get()); - for(ListOfShape::const_iterator - anIt = aShapesToAdd.cbegin(); anIt != aShapesToAdd.cend(); ++anIt) { + aResultBody->loadModifiedShapes(aBuilder, aBaseShape, GeomAPI_Shape::EDGE); + for (ListOfShape::const_iterator anIt = aShapesToAdd.cbegin(); + anIt != aShapesToAdd.cend(); + ++anIt) + { GeomAPI_Shape::ShapeType aShType = (*anIt)->shapeType(); - aResultBody->loadAndOrientModifiedShapes(&aBuilder, *anIt, aShType, - aShType == GeomAPI_Shape::VERTEX ? aModVertexTag : aModEdgeTag, - aShType == GeomAPI_Shape::VERTEX ? "Modified_Vertex" : "Modified_Edge", - *aBuilder.mapOfSubShapes().get()); + aResultBody->loadModifiedShapes(aBuilder, + *anIt, + aShType); } setResult(aResultBody); }