X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketcherPrs%2FSketcherPrs_Tools.h;h=a7c0925b53b194bb321b2da75b90055de369d3d4;hb=3e7f97125b2198724911564b24b0a30cbd393e3d;hp=46f9fa4fc023cc123722c99d717925eded2114cb;hpb=6aad051f35d9c375d4727ce5f4d1cbfe24fd3838;p=modules%2Fshaper.git diff --git a/src/SketcherPrs/SketcherPrs_Tools.h b/src/SketcherPrs/SketcherPrs_Tools.h index 46f9fa4fc..a7c0925b5 100644 --- a/src/SketcherPrs/SketcherPrs_Tools.h +++ b/src/SketcherPrs/SketcherPrs_Tools.h @@ -10,34 +10,96 @@ #include "SketcherPrs.h" #include #include +#include #include +#include #include -class SketchPlugin_Constraint; -class SketchPlugin_Line; class GeomDataAPI_Point2D; +//#define MyTextHeight 20 + namespace SketcherPrs_Tools { - SKETCHERPRS_EXPORT ObjectPtr getResult(SketchPlugin_Constraint* theFeature, - const std::string& theAttrName); + /// Enumeration with modes for activation of selection custom presentations + enum SelectionModes { + /// Start of enumeration + Sel_Mode_First = 100, + + /// Selection mode for all constraints exclude dimensions + Sel_Constraint, + + /// Selection mode for whole dimension + Sel_Dimension_All, + + /// Selection mode for line of dimension + Sel_Dimension_Line, + + /// Selection mode foe text of dimension + Sel_Dimension_Text + }; + + /// Returns result object referenced by feature + /// \param theFeature a feature + /// \param theAttrName an attribute name + SKETCHERPRS_EXPORT ObjectPtr getResult(ModelAPI_Feature* theFeature, + const std::string& theAttrName); + /// Returns shape from result object (or NULL) + /// \param theObject a result object SKETCHERPRS_EXPORT std::shared_ptr getShape(ObjectPtr theObject); - SKETCHERPRS_EXPORT std::shared_ptr getPoint(SketchPlugin_Constraint* theFeature, + + /// Returns point from a line feature + /// \param theFeature a line feature + /// \param theAttrName an attribute of the point + SKETCHERPRS_EXPORT std::shared_ptr getPoint(ModelAPI_Feature* theFeature, const std::string& theAttrName); + + /// Returns point projected on a line + /// \param theLine a line + /// \param thePoint a projecting point SKETCHERPRS_EXPORT std::shared_ptr getProjectionPoint( - const std::shared_ptr& theLine, + const FeaturePtr theLine, const std::shared_ptr& thePoint); - SKETCHERPRS_EXPORT std::shared_ptr getFeatureLine(DataPtr theData, - const std::string& theAttribute); + SKETCHERPRS_EXPORT FeaturePtr getFeatureLine(DataPtr theData, + const std::string& theAttribute); /// Obtain the point object from specified constraint parameter + /// \param theData a data object + /// \param theAttribute an attribute name + /// \param thePlane a projection plane (sketcher plane) SKETCHERPRS_EXPORT std::shared_ptr getFeaturePoint(DataPtr theData, - const std::string& theAttribute); + const std::string& theAttribute, + const std::shared_ptr& thePlane); + + /// Returns value of dimension arrows size + SKETCHERPRS_EXPORT double getArrowSize(); + + /// Set value of dimension arrows size + /// \param theSize a size value + SKETCHERPRS_EXPORT void setArrowSize(double theSize); + + /// Set value of dimension text height + /// \param theHeight a height value + SKETCHERPRS_EXPORT void setTextHeight(double theHeight); + + /// Returns value of dimension text height + SKETCHERPRS_EXPORT double getTextHeight(); + + /// Returns default value of dimension text height + SKETCHERPRS_EXPORT double getDefaultTextHeight(); + + /// Get flayout distance of the dimension constraint + /// \param theConstraint a dimension constraint object + SKETCHERPRS_EXPORT double getFlyoutDistance(const ModelAPI_Feature* theConstraint); + /// Compute anchor pint for radius dimension + SKETCHERPRS_EXPORT std::shared_ptr getAnchorPoint( + const ModelAPI_Feature* theConstraint, + const std::shared_ptr& thePlane); }; -#endif \ No newline at end of file +#endif