X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketcherPrs%2FSketcherPrs_Tools.h;h=aad79acc0f448eecd4f2a7cfe13c9ad205de9be7;hb=b5893b0a30fac08134c24de4565cb513a43affa6;hp=481e7d96d2eae703326284f11b9ca98e77105933;hpb=705438fb7ab16ba1608b6b1aeddd546d6311cb77;p=modules%2Fshaper.git diff --git a/src/SketcherPrs/SketcherPrs_Tools.h b/src/SketcherPrs/SketcherPrs_Tools.h index 481e7d96d..aad79acc0 100644 --- a/src/SketcherPrs/SketcherPrs_Tools.h +++ b/src/SketcherPrs/SketcherPrs_Tools.h @@ -12,41 +12,113 @@ #include #include #include +#include #include #include +#include +#include + class GeomDataAPI_Point2D; +class AIS_Dimension; //#define MyTextHeight 20 +/// Message that style of visualization of parameter is changed. +/// It will be shown as expression or value +class SketcherPrs_ParameterStyleMessage : public Events_Message +{ +public: + /// \enum ParameterStyle lists styles of parameter + enum ParameterStyle { + ParameterValue, ///< using symbol with the parameter value + ParameterText ///< using parameter text + }; + +public: + /// Creates an empty message + SKETCHERPRS_EXPORT SketcherPrs_ParameterStyleMessage(const Events_ID theID, + const void* theSender = 0) + : Events_Message(theID, theSender) {} + /// The virtual destructor + SKETCHERPRS_EXPORT virtual ~SketcherPrs_ParameterStyleMessage() {} + /// Static. Returns EventID of the message. + SKETCHERPRS_EXPORT static Events_ID eventId() + { + static const char * MY_EVENT_PARAMETER_STYLE_ID("ParameterStyle"); + return Events_Loop::eventByName(MY_EVENT_PARAMETER_STYLE_ID); + } + /// Returns a document stored in the message + SKETCHERPRS_EXPORT ParameterStyle style() const { return myStyle; } + /// Sets a document to the message + SKETCHERPRS_EXPORT void setStyle(ParameterStyle theStyle) { myStyle = theStyle; } +private: + ParameterStyle myStyle; /// style of the parameter visualization +}; + namespace SketcherPrs_Tools { -/// 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 -}; + /// 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 for text of dimension + Sel_Dimension_Text, + + /// Selectiom mode for faces selection on sketch + Sel_Sketch_Face, + /// Selectiom mode for wires selection on sketch + Sel_Sketch_Wire + }; + + /// Type of angle + enum AngleType{ + ANGLE_DIRECT, ///< Angle from the first line to the second line + ANGLE_COMPLEMENTARY, ///< Additional angle to the angle from first to second line + ANGLE_BACKWARD ///< Angle from the second line to the first line + }; + + /// Event ID about expression visual state has been changed, the symbol with a digit + /// or parameter text is shown + + /// Returns attribute object referenced by feature + /// \param theFeature a feature + /// \param theAttrName an attribute name + SKETCHERPRS_EXPORT AttributePtr getAttribute(ModelAPI_Feature* theFeature, + const std::string& theAttrName); + + /// 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); + + /// 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 FeaturePtr theLine, const std::shared_ptr& thePoint); @@ -55,25 +127,52 @@ enum SelectionModes { 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::shared_ptr& thePlane); + 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); + /// Returns default value of dimension arrows size + SKETCHERPRS_EXPORT int getDefaultArrowSize(); + + /// 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); + + /// Sends event about expression visualization type is changed for dimension presentations + /// Sends event to redisplay all sub-features of composite feature + /// \param theState a new state + SKETCHERPRS_EXPORT void sendExpressionShownEvent(const bool& theState); + + /// Throws an exception(in debug mode) and sends a signal about necessity to hide the object + /// \param theFeature a feature where AIS presentation is empty + /// \param theError a debug error information + SKETCHERPRS_EXPORT void sendEmptyPresentationError(ModelAPI_Feature* theFeature, + const std::string theError); }; #endif