X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchAPI%2FSketchAPI_Sketch.cpp;h=8678c71ab2a7c5af7766e91a6142957a514ff4ef;hb=fdd802da7683f66ca609cf12b1e11be9642149d6;hp=7b472113e72a508ca7e994bf0a65629c18d8d4e1;hpb=645e2cb70c0e40290725f28fdc5fec8a93338d28;p=modules%2Fshaper.git diff --git a/src/SketchAPI/SketchAPI_Sketch.cpp b/src/SketchAPI/SketchAPI_Sketch.cpp index 7b472113e..8678c71ab 100644 --- a/src/SketchAPI/SketchAPI_Sketch.cpp +++ b/src/SketchAPI/SketchAPI_Sketch.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2019 CEA/DEN, EDF R&D +// Copyright (C) 2014-2020 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 @@ -41,6 +41,7 @@ #include #include #include +#include #include //-------------------------------------------------------------------------------------- #include @@ -233,6 +234,23 @@ SketchPtr addSketch(const std::shared_ptr & thePart, return SketchPtr(new SketchAPI_Sketch(aFeature, thePlaneObject)); } +//-------------------------------------------------------------------------------------- +SketchPtr copySketch(const std::shared_ptr & thePart, + const SketchPtr & theSketch) +{ + FeaturePtr aCopyer = thePart->addFeature(SketchPlugin_SketchCopy::ID()); + aCopyer->reference(SketchPlugin_SketchCopy::BASE_ID())->setValue(theSketch->feature()); + aCopyer->execute(); + + FeaturePtr aNewSketch = thePart->nextFeature(aCopyer); + + // perform removing the macro-feature + thePart->removeFeature(aCopyer); + apply(); + + return SketchPtr(new SketchAPI_Sketch(aNewSketch)); +} + //-------------------------------------------------------------------------------------- std::list< std::shared_ptr > SketchAPI_Sketch::getFreePoints()