X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchAPI%2FSketchAPI_Sketch.h;h=bb83b18871ca5d7a065a5f9ef2fff127f61539cf;hb=1fd15bed1c62f994a3438bc4a12f44d0361f98c9;hp=4ea404be6dc10a01ddc3b8fc55c09470132da644;hpb=a4461306d16531c21f019477c95101e370e551de;p=modules%2Fshaper.git diff --git a/src/SketchAPI/SketchAPI_Sketch.h b/src/SketchAPI/SketchAPI_Sketch.h index 4ea404be6..bb83b1887 100644 --- a/src/SketchAPI/SketchAPI_Sketch.h +++ b/src/SketchAPI/SketchAPI_Sketch.h @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2019 CEA/DEN, EDF R&D +// Copyright (C) 2014-2021 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 @@ -28,16 +28,16 @@ #include #include +#include #include #include +#include //-------------------------------------------------------------------------------------- class ModelAPI_CompositeFeature; class ModelAPI_Object; -class ModelHighAPI_Double; class ModelHighAPI_Integer; class ModelHighAPI_RefAttr; class ModelHighAPI_Reference; -class ModelHighAPI_Selection; class SketchAPI_Arc; class SketchAPI_MacroArc; class SketchAPI_Circle; @@ -50,11 +50,15 @@ class SketchAPI_BSpline; class SketchAPI_IntersectionPoint; class SketchAPI_Line; class SketchAPI_Mirror; +class SketchAPI_Offset; class SketchAPI_Point; class SketchAPI_Projection; class SketchAPI_Rectangle; class SketchAPI_Rotation; class SketchAPI_Translation; + +//-------------------------------------------------------------------------------------- +typedef std::pair, ModelHighAPI_RefAttr> PointOrReference; //-------------------------------------------------------------------------------------- /**\class SketchAPI_Sketch * \ingroup CPPHighAPI @@ -137,7 +141,7 @@ public: std::shared_ptr addPoint(const ModelHighAPI_Selection & theExternal); /// Add point SKETCHAPI_EXPORT - std::shared_ptr addPoint(const std::string & theExternalName); + std::shared_ptr addPoint(const std::wstring & theExternalName); /// Add intersection point SKETCHAPI_EXPORT @@ -147,7 +151,7 @@ public: /// Add point SKETCHAPI_EXPORT std::shared_ptr - addIntersectionPoint(const std::string & theExternalName, + addIntersectionPoint(const std::wstring & theExternalName, bool theKeepResult = false); /// Add line @@ -164,7 +168,7 @@ public: std::shared_ptr addLine(const ModelHighAPI_Selection & theExternal); /// Add line SKETCHAPI_EXPORT - std::shared_ptr addLine(const std::string & theExternalName); + std::shared_ptr addLine(const std::wstring & theExternalName); /// Add rectangle SKETCHAPI_EXPORT @@ -175,6 +179,11 @@ public: std::shared_ptr addRectangle( const std::shared_ptr & theStartPoint, const std::shared_ptr & theEndPoint); + /// Add rectangle + SKETCHAPI_EXPORT + std::shared_ptr addRectangleCentered( + const std::pair, ModelHighAPI_RefAttr> & theCenter, + const std::pair, ModelHighAPI_RefAttr> & theCorner); /// Add circle SKETCHAPI_EXPORT @@ -213,7 +222,7 @@ public: std::shared_ptr addCircle(const ModelHighAPI_Selection & theExternal); /// Add circle SKETCHAPI_EXPORT - std::shared_ptr addCircle(const std::string & theExternalName); + std::shared_ptr addCircle(const std::wstring & theExternalName); /// Add arc SKETCHAPI_EXPORT @@ -267,7 +276,7 @@ public: /// Add arc SKETCHAPI_EXPORT - std::shared_ptr addArc(const std::string & theExternalName); + std::shared_ptr addArc(const std::wstring & theExternalName); /// Add ellipse SKETCHAPI_EXPORT @@ -291,16 +300,16 @@ public: /// Add ellipse SKETCHAPI_EXPORT std::shared_ptr addEllipse( - const std::pair, ModelHighAPI_RefAttr>& thePoint1, - const std::pair, ModelHighAPI_RefAttr>& thePoint2, - const std::pair, ModelHighAPI_RefAttr>& thePassedPoint, + const PointOrReference& thePoint1, + const PointOrReference& thePoint2, + const PointOrReference& thePassedPoint, bool isPoint1Center = true); /// Add ellipse SKETCHAPI_EXPORT std::shared_ptr addEllipse(const ModelHighAPI_Selection & theExternal); /// Add ellipse SKETCHAPI_EXPORT - std::shared_ptr addEllipse(const std::string & theExternalName); + std::shared_ptr addEllipse(const std::wstring & theExternalName); /// Add elliptic arc SKETCHAPI_EXPORT @@ -313,48 +322,50 @@ public: /// Add elliptic arc SKETCHAPI_EXPORT std::shared_ptr addEllipticArc( - const std::pair, ModelHighAPI_RefAttr>& theCenter, - const std::pair, ModelHighAPI_RefAttr>& theMajorAxisPoint, - const std::pair, ModelHighAPI_RefAttr>& theStartPoint, - const std::pair, ModelHighAPI_RefAttr>& theEndPoint, + const PointOrReference& theCenter, + const PointOrReference& theMajorAxisPoint, + const PointOrReference& theStartPoint, + const PointOrReference& theEndPoint, bool theInversed = false); /// Add elliptic arc SKETCHAPI_EXPORT std::shared_ptr addEllipticArc(const ModelHighAPI_Selection & theExternal); /// Add elliptic arc SKETCHAPI_EXPORT - std::shared_ptr addEllipticArc(const std::string & theExternalName); + std::shared_ptr addEllipticArc(const std::wstring & theExternalName); /// Add B-spline SKETCHAPI_EXPORT std::shared_ptr addSpline( - const std::list >& thePoles, - const std::list& theWeights = std::list()); - /// Add B-spline - SKETCHAPI_EXPORT - std::shared_ptr addSpline( - const int theDegree, - const std::list >& thePoles, - const std::list& theWeights = std::list(), - const std::list& theKnots = std::list(), - const std::list& theMults = std::list()); - /// Add B-spline + const ModelHighAPI_Selection & external = ModelHighAPI_Selection(), + const int degree = -1, + const std::list& poles = std::list(), + const std::list& weights = std::list(), + const std::list& knots = std::list(), + const std::list& multiplicities = std::list(), + const bool periodic = false); + + /// Add interpolation feature SKETCHAPI_EXPORT - std::shared_ptr addSpline(const ModelHighAPI_Selection & theExternal); - /// Add B-spline + std::shared_ptr addInterpolation( + const std::list& points, + const bool periodic = false, + const bool closed = false); + + /// Add approximation feature SKETCHAPI_EXPORT - std::shared_ptr addSpline(const std::string & theExternalName); + std::shared_ptr addApproximation( + const std::list& points, + const ModelHighAPI_Double& precision = ModelHighAPI_Double(1.e-3), + const bool periodic = false, + const bool closed = false); /// Add projection SKETCHAPI_EXPORT std::shared_ptr addProjection( const ModelHighAPI_Selection & theExternalFeature, - bool theKeepResult = false); - - /// Add projection - SKETCHAPI_EXPORT - std::shared_ptr addProjection(const std::string & theExternalName, - bool theKeepResult = false); + bool keepResult = false, + bool keepRefToOriginal = true); /// Add mirror SKETCHAPI_EXPORT @@ -362,6 +373,13 @@ public: const ModelHighAPI_RefAttr & theMirrorLine, const std::list > & theObjects); + /// Add offset + SKETCHAPI_EXPORT + std::shared_ptr addOffset( + const std::list > & theObjects, + const ModelHighAPI_Double & theValue, + const bool theReversed); + /// Add translation SKETCHAPI_EXPORT std::shared_ptr addTranslation( @@ -567,6 +585,8 @@ protected: //! Pointer on Sketch object typedef std::shared_ptr SketchPtr; +//-------------------------------------------------------------------------------------- + /**\ingroup CPPHighAPI * \brief Create Sketch feature */ @@ -586,7 +606,7 @@ SketchPtr addSketch(const std::shared_ptr & thePart, */ SKETCHAPI_EXPORT SketchPtr addSketch(const std::shared_ptr & thePart, - const std::string & theExternalName); + const std::wstring & theExternalName); /**\ingroup CPPHighAPI * \brief Create Sketch feature @@ -596,5 +616,13 @@ SketchPtr addSketch(const std::shared_ptr & thePart, std::shared_ptr thePlaneObject); //-------------------------------------------------------------------------------------- + +/** \ingroup CPPHighAPI + * \brief Copy sketch with all its sub-features + */ +SKETCHAPI_EXPORT +SketchPtr copySketch(const std::shared_ptr & thePart, + const SketchPtr & theSketch); + //-------------------------------------------------------------------------------------- #endif /* SRC_SKETCHAPI_SKETCHAPI_SKETCH_H_ */