X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_OperationSketch.h;h=d40a55331a198a5fdccbb4fdb9cbc8a22872ffda;hb=004fa7f94b343a782405d3fe21973521150729b4;hp=3f8215ac953f30f081ebfbdb80720a2ac6e014b2;hpb=1faf79937e639b380c9d48fda5c1932522718548;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_OperationSketch.h b/src/PartSet/PartSet_OperationSketch.h index 3f8215ac9..d40a55331 100644 --- a/src/PartSet/PartSet_OperationSketch.h +++ b/src/PartSet/PartSet_OperationSketch.h @@ -34,23 +34,45 @@ public: /// \return the selection mode virtual std::list getSelectionModes(boost::shared_ptr theFeature) const; - /// Processes the mouse release in the point - /// \param thePoint a point clicked in the viewer + /// Initializes some fields accorging to the feature + /// \param theSelected the list of selected presentations + /// \param theHighlighted the list of highlighted presentations + virtual void init(boost::shared_ptr theFeature, + const std::list& theSelected, + const std::list& theHighlighted); + + /// Returns the operation sketch feature + /// \returns the sketch instance + virtual boost::shared_ptr sketch() const; + + /// Processes the mouse pressed in the point /// \param theEvent the mouse event + /// \param theView a viewer to have the viewer the eye position /// \param theSelected the list of selected presentations - virtual void mouseReleased(QMouseEvent* theEvent, Handle_V3d_View theView, - const std::list& theSelected); + /// \param theHighlighted the list of highlighted presentations + virtual void mousePressed(QMouseEvent* theEvent, Handle_V3d_View theView, + 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 - /// \param theSelected the list of selected presentations - virtual void mouseMoved(QMouseEvent* theEvent, Handle_V3d_View theView, - const std::list& theSelected); + virtual void mouseMoved(QMouseEvent* theEvent, Handle_V3d_View theView); /// 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 > - preview() const; + 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 @@ -59,12 +81,20 @@ signals: void planeSelected(double theX, double theY, double theZ); 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); private: - bool myIsEditMode; /// the edit mode of this operation + std::list myFeatures; ///< the features to apply the edit operation }; #endif