X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_OperationSketch.h;h=7c078bf6399a02d2c4705bed866d2e2d89a17740;hb=02e8faa19268200bdbd5533bc6ac33e63aa7655d;hp=fbb0eb376afba999656a2a675bb42d6e37a76f15;hpb=503b5444d4a5fa95a3046a754f69f5b79e677e33;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_OperationSketch.h b/src/PartSet/PartSet_OperationSketch.h index fbb0eb376..7c078bf63 100644 --- a/src/PartSet/PartSet_OperationSketch.h +++ b/src/PartSet/PartSet_OperationSketch.h @@ -8,8 +8,13 @@ #include "PartSet.h" #include + +#include + #include +class Handle_AIS_InteractiveObject; + /*! \class PartSet_OperationSketch * \brief The operation for the sketch feature creation @@ -19,7 +24,7 @@ class PARTSET_EXPORT PartSet_OperationSketch : public PartSet_OperationSketchBas Q_OBJECT public: /// Returns the operation type key - static std::string Type() { return "Sketch"; } + static std::string Type() { return SKETCH_KIND; } public: /// Constructor @@ -32,24 +37,36 @@ public: /// Returns the operation local selection mode /// \param theFeature the feature object to get the selection mode /// \return the selection mode - virtual std::list getSelectionModes(boost::shared_ptr theFeature) const; + virtual std::list getSelectionModes(FeaturePtr theFeature) const; + + /// Initializes some fields accorging to the feature + /// \param theSelected the list of selected presentations + /// \param theHighlighted the list of highlighted presentations + virtual void init(FeaturePtr theFeature, + const std::list& theSelected, + const std::list& theHighlighted); /// Returns the operation sketch feature /// \returns the sketch instance - virtual boost::shared_ptr sketch() const; + virtual FeaturePtr sketch() const; /// Processes the mouse pressed in the point - /// \param thePoint a point clicked in the viewer /// \param theEvent the mouse event + /// \param theView a viewer to have the viewer the eye position /// \param theSelected the list of selected presentations + /// \param theHighlighted the list of highlighted presentations virtual void mousePressed(QMouseEvent* theEvent, Handle_V3d_View theView, - const std::list& theSelected); + const std::list& theSelected, + const std::list& theHighlighted); /// Processes the mouse release in the point - /// \param thePoint a point clicked in the viewer /// \param theEvent the mouse event + /// \param theView a viewer to have the viewer the eye position /// \param theSelected the list of selected presentations + /// \param theHighlighted the list of highlighted presentations virtual void mouseReleased(QMouseEvent* theEvent, Handle_V3d_View theView, - const std::list& theSelected); + const std::list& theSelected, + const std::list& theHighlighted); + /// Gives the current mouse point in the viewer /// \param thePoint a point clicked in the viewer /// \param theEvent the mouse event @@ -57,27 +74,46 @@ public: /// Returns the map of the operation previews including the nested feature previews /// \return the map of feature to the feature preview - virtual std::map, boost::shared_ptr > + virtual std::map > subPreview() const; /// Virtual method called when operation stopped - committed or aborted. /// Emits a signal to hide the preview of the operation virtual void stopOperation(); + /// Returns whether the nested operations are enabled. + /// The state can depend on the operation current state. + /// It returns true after the sketch plane is choosen. + /// \return enabled state + virtual bool isNestedOperationsEnabled() const; + signals: /// signal about the sketch plane is selected /// \param theX the value in the X direction of the plane /// \param theX the value in the Y direction value of the plane /// \param theX the value in the Z direction of the plane void planeSelected(double theX, double theY, double theZ); + // signal about the viewer fit all perform + void fitAllView(); protected: + /// Virtual method called when operation started (see start() method for more description) + /// Default impl calls corresponding slot and commits immediately. + virtual void startOperation(); + + /// Returns whether the sketch plane is set + /// \return the boolean value whether the sketch is set + bool hasSketchPlane() const; + /// Set the plane to the current sketch /// \param theShape the shape void setSketchPlane(const TopoDS_Shape& theShape); + /// Returns the operation type, which is feature or constraint edit opeation + /// \param theFeature a feature instance + std::string getOperationType(FeaturePtr theFeature); + private: - bool myIsEditMode; /// the edit mode of this operation std::list myFeatures; ///< the features to apply the edit operation };