X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketcherPrs%2FSketcherPrs_Tools.h;h=cfc15dbfc6c06cb1dcc2c4cc9be00870963739e6;hb=f98f887290d4e2b4bd6618389911e82b6b9674f3;hp=7e10fac7321c37185c3ade40743b124821429844;hpb=6967e5c6b1993581cc0711ec4c95bb01f74224b7;p=modules%2Fshaper.git diff --git a/src/SketcherPrs/SketcherPrs_Tools.h b/src/SketcherPrs/SketcherPrs_Tools.h index 7e10fac73..cfc15dbfc 100644 --- a/src/SketcherPrs/SketcherPrs_Tools.h +++ b/src/SketcherPrs/SketcherPrs_Tools.h @@ -16,11 +16,46 @@ #include #include +#include +#include + class GeomDataAPI_Point2D; class AIS_Dimension; +class Handle_Prs3d_DimensionAspect; //#define MyTextHeight 20 +/// Message that document (Part, PartSet) was created +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 @@ -37,17 +72,26 @@ namespace SketcherPrs_Tools { /// Selection mode for line of dimension Sel_Dimension_Line, - /// Selection mode foe text of dimension - Sel_Dimension_Text + /// 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_SUPPLEMENTARY, ///< Additional angle to the angle from first to 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 @@ -124,6 +168,36 @@ namespace SketcherPrs_Tools { /// \param theToDisplay a boolean value SKETCHERPRS_EXPORT void setDisplaySpecialSymbol(AIS_Dimension* theDimension, const bool& theToDisplay); + + /// Display the parameter value instead of dimention digit + /// \param theDimension a dimension constraint + /// \param theParameter a parameter value + /// \param theToDisplay a boolean value + SKETCHERPRS_EXPORT void setDisplayParameter(AIS_Dimension* theDimension, + const std::string& theParameter, + const bool& theToDisplay); + + /// 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); + + /// Creates an aspect to be shown in length/radius dimension presentations + /// \return an instance of aspect + SKETCHERPRS_EXPORT Handle_Prs3d_DimensionAspect createDimensionAspect(); + + /// Update variable aspect parameters (depending on viewer scale) + /// \param theDimAspect an aspect to be changed + /// \param theDimValue an arrow value + /// \param theTextSize an arrow value + SKETCHERPRS_EXPORT void updateArrows(Handle_Prs3d_DimensionAspect theDimAspect, + double theDimValue, double theTextSize); + + /// 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