X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchAPI%2FSketchAPI_Sketch.h;h=a6ce997207990eed4572ad8ec1110b5d09385546;hb=c6745a6b1ad00c0285fab5aeac2cb0d57afef5cc;hp=792a8ee79845a6281488d53c9dc04a9c9e92d15c;hpb=7470f1b70a31ce0483e168395a43db9c9c93589e;p=modules%2Fshaper.git diff --git a/src/SketchAPI/SketchAPI_Sketch.h b/src/SketchAPI/SketchAPI_Sketch.h index 792a8ee79..a6ce99720 100644 --- a/src/SketchAPI/SketchAPI_Sketch.h +++ b/src/SketchAPI/SketchAPI_Sketch.h @@ -1,9 +1,21 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D -// Name : SketchAPI_Sketch.h -// Purpose: +// Copyright (C) 2014-2019 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 +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// 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 +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// History: -// 07/06/16 - Sergey POKHODENKO - Creation of the file #ifndef SRC_SKETCHAPI_SKETCHAPI_SKETCH_H_ #define SRC_SKETCHAPI_SKETCHAPI_SKETCH_H_ @@ -27,7 +39,13 @@ class ModelHighAPI_RefAttr; class ModelHighAPI_Reference; class ModelHighAPI_Selection; class SketchAPI_Arc; +class SketchAPI_MacroArc; class SketchAPI_Circle; +class SketchAPI_MacroCircle; +class SketchAPI_Ellipse; +class SketchAPI_MacroEllipse; +class SketchAPI_EllipticArc; +class SketchAPI_MacroEllipticArc; class SketchAPI_IntersectionPoint; class SketchAPI_Line; class SketchAPI_Mirror; @@ -84,6 +102,11 @@ public: SKETCHAPI_EXPORT void setPlane(const std::shared_ptr & thePlane); + /// Change sketch plane + SKETCHAPI_EXPORT + void setPlane(const ModelHighAPI_Selection & thePlane, + bool theRemoveExternalDependency = false); + /// Set external SKETCHAPI_EXPORT void setExternal(const ModelHighAPI_Selection & theExternal); @@ -92,6 +115,14 @@ public: SKETCHAPI_EXPORT void setExternal(std::shared_ptr thePlaneObject); + /// Change order of sketch results (faces) + SKETCHAPI_EXPORT + void changeFacesOrder(const std::list >& theFaces); + + /// List points not connected by constraints with other sketch entitites + SKETCHAPI_EXPORT + std::list< std::shared_ptr > getFreePoints(); + /// Add point SKETCHAPI_EXPORT std::shared_ptr addPoint( @@ -110,11 +141,13 @@ public: /// Add intersection point SKETCHAPI_EXPORT std::shared_ptr - addIntersectionPoint(const ModelHighAPI_Selection & theExternal); + addIntersectionPoint(const ModelHighAPI_Selection & theExternal, + bool theKeepResult = false); /// Add point SKETCHAPI_EXPORT std::shared_ptr - addIntersectionPoint(const std::string & theExternalName); + addIntersectionPoint(const std::string & theExternalName, + bool theKeepResult = false); /// Add line SKETCHAPI_EXPORT @@ -154,13 +187,23 @@ public: double theRadius); /// Add circle SKETCHAPI_EXPORT - std::shared_ptr addCircle( + std::shared_ptr addCircle( + double theCenterX, double theCenterY, + double thePassedX, double thePassedY); + /// Add circle + SKETCHAPI_EXPORT + std::shared_ptr addCircle( + const std::shared_ptr& theCenterPoint, + const std::shared_ptr& thePassedPoint); + /// Add circle + SKETCHAPI_EXPORT + std::shared_ptr addCircle( double theX1, double theY1, double theX2, double theY2, double theX3, double theY3); /// Add circle SKETCHAPI_EXPORT - std::shared_ptr addCircle( + std::shared_ptr addCircle( const std::shared_ptr& thePoint1, const std::shared_ptr& thePoint2, const std::shared_ptr& thePoint3); @@ -189,31 +232,33 @@ public: /// Add arc SKETCHAPI_EXPORT - std::shared_ptr addArc( + std::shared_ptr addArc( double theStartX, double theStartY, double theEndX, double theEndY, double thePassedX, double thePassedY); /// Add arc SKETCHAPI_EXPORT - std::shared_ptr addArc( + std::shared_ptr addArc( const std::shared_ptr& theStart, const std::shared_ptr& theEnd, const std::shared_ptr& thePassed); - /// Add arc + /// Add transversal/tangent arc SKETCHAPI_EXPORT - std::shared_ptr addArc( - const ModelHighAPI_RefAttr& theTangentPoint, + std::shared_ptr addArc( + const ModelHighAPI_RefAttr& theConnectedPoint, double theEndX, double theEndY, - bool theInversed); + bool theInversed, + bool theTransversal = false); - /// Add arc + /// Add transversal/tangent arc SKETCHAPI_EXPORT - std::shared_ptr addArc( - const ModelHighAPI_RefAttr& theTangentPoint, + std::shared_ptr addArc( + const ModelHighAPI_RefAttr& theConnectedPoint, const std::shared_ptr& theEnd, - bool theInversed); + bool theInversed, + bool theTransversal = false); /// Add arc SKETCHAPI_EXPORT @@ -223,14 +268,72 @@ public: SKETCHAPI_EXPORT std::shared_ptr addArc(const std::string & theExternalName); + /// Add ellipse + SKETCHAPI_EXPORT + std::shared_ptr addEllipse( + double theCenterX, double theCenterY, + double theFocusX, double theFocusY, + double theMinorRadius); + /// Add ellipse + SKETCHAPI_EXPORT + std::shared_ptr addEllipse( + const std::shared_ptr& theCenter, + const std::shared_ptr& theFocus, + double theRadius); + /// Add ellipse + SKETCHAPI_EXPORT + std::shared_ptr addEllipse( + double thePoint1X, double thePoint1Y, + double thePoint2X, double thePoint2Y, + double thePassedX, double thePassedY, + bool isPoint1Center = true); + /// 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, + 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); + + /// Add elliptic arc + SKETCHAPI_EXPORT + std::shared_ptr addEllipticArc( + double theCenterX, double theCenterY, + double theFocusX, double theFocusY, + double theStartX, double theStartY, + double theEndX, double theEndY, + bool theInversed = false); + /// 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, + 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); + /// Add projection SKETCHAPI_EXPORT std::shared_ptr addProjection( - const ModelHighAPI_Selection & theExternalFeature); + const ModelHighAPI_Selection & theExternalFeature, + bool theKeepResult = false); /// Add projection SKETCHAPI_EXPORT - std::shared_ptr addProjection(const std::string & theExternalName); + std::shared_ptr addProjection(const std::string & theExternalName, + bool theKeepResult = false); /// Add mirror SKETCHAPI_EXPORT @@ -254,14 +357,14 @@ public: const ModelHighAPI_RefAttr & theCenter, const ModelHighAPI_Double & theAngle, const ModelHighAPI_Integer & theNumberOfObjects, - bool theFullValue = false); + bool theFullValue = false, + bool theReversed = false); /// Add split SKETCHAPI_EXPORT std::shared_ptr addSplit( const ModelHighAPI_Reference& theFeature, - const ModelHighAPI_RefAttr& thePoint1, - const ModelHighAPI_RefAttr& thePoint2); + const std::shared_ptr& thePositionPoint); /// Add trim SKETCHAPI_EXPORT @@ -305,10 +408,39 @@ public: /// Set distance SKETCHAPI_EXPORT std::shared_ptr setDistance( + const ModelHighAPI_RefAttr & thePoint, + const ModelHighAPI_RefAttr & thePointOrLine, + const ModelHighAPI_Double & theValue, + bool isSigned = false); + + /// Set signed distance + SKETCHAPI_EXPORT + std::shared_ptr setSignedDistance( const ModelHighAPI_RefAttr & thePoint, const ModelHighAPI_RefAttr & thePointOrLine, const ModelHighAPI_Double & theValue); + /// Set unsigned distance + SKETCHAPI_EXPORT + std::shared_ptr setUnsignedDistance( + const ModelHighAPI_RefAttr & thePoint, + const ModelHighAPI_RefAttr & thePointOrLine, + const ModelHighAPI_Double & theValue); + + /// Set horizontal distance + SKETCHAPI_EXPORT + std::shared_ptr setHorizontalDistance( + const ModelHighAPI_RefAttr & thePoint1, + const ModelHighAPI_RefAttr & thePoint2, + const ModelHighAPI_Double & theValue); + + /// Set vertical distance + SKETCHAPI_EXPORT + std::shared_ptr setVerticalDistance( + const ModelHighAPI_RefAttr & thePoint1, + const ModelHighAPI_RefAttr & thePoint2, + const ModelHighAPI_Double & theValue); + /// Set equal SKETCHAPI_EXPORT std::shared_ptr setEqual( @@ -383,6 +515,19 @@ public: const std::shared_ptr & theConstraint, const ModelHighAPI_Double & theValue); + /// Move point or sketch feature + SKETCHAPI_EXPORT + void move(const ModelHighAPI_RefAttr& theMovedEntity, + const std::shared_ptr& theTargetPoint); + + /// Move point or sketch feature + SKETCHAPI_EXPORT + void move(const ModelHighAPI_RefAttr& theMovedEntity, + double theTargetX, double theTargetY); + + SKETCHAPI_EXPORT + std::shared_ptr to2D(const std::shared_ptr& thePoint); + // TODO(spo): rename to selectFaces() or faces() (or add faces() -> list to SWIG) /// Select face SKETCHAPI_EXPORT