X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_OperationSketchLine.h;h=db20415c74cb86f54548866d6b52f83077734eb7;hb=ad247cf594a7a560b656c70c96e1b1a360b8c1c3;hp=498f3ca4b7117f467877109ed8ed41842c1a66d6;hpb=7a41b78911b40687b327ada02e5cd3927bde2b7d;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_OperationSketchLine.h b/src/PartSet/PartSet_OperationSketchLine.h index 498f3ca4b..db20415c7 100644 --- a/src/PartSet/PartSet_OperationSketchLine.h +++ b/src/PartSet/PartSet_OperationSketchLine.h @@ -37,7 +37,8 @@ public: /// Returns that this operator can be started above already running one. /// The runned operation should be the sketch feature modified operation - virtual bool isGranted() const; + /// \param theOperation the previous running operation + virtual bool isGranted(ModuleBase_IOperation* theOperation) const; /// Returns the operation local selection mode /// \param theFeature the feature object to get the selection mode @@ -45,15 +46,24 @@ public: virtual std::list getSelectionModes(boost::shared_ptr theFeature) const; /// Initializes some fields accorging to the feature - /// \param theFeature the feature - virtual void init(boost::shared_ptr theFeature); + /// \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; /// Gives the current selected objects to be processed by the operation - /// \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 @@ -79,9 +89,20 @@ protected: /// Creates an operation new feature /// In addition to the default realization it appends the created line feature to /// the sketch feature + /// \param theFlushMessage the flag whether the create message should be flushed /// \returns the created feature - virtual boost::shared_ptr createFeature(); - + virtual boost::shared_ptr createFeature(const bool theFlushMessage = true); + + /// Creates a constraint on two points + /// \param thePoint1 the first point + /// \param thePoint1 the second point + void createConstraint(boost::shared_ptr thePoint1, + boost::shared_ptr thePoint2); + + /// Creates constrains of the current + /// \param theX the horizontal coordnate of the point + /// \param theY the vertical coordnate of the point + void setConstraints(double theX, double theY); protected: /// \brief Get the line point 2d coordinates. /// \param theFeature the line feature @@ -90,11 +111,20 @@ protected: /// \param theY the vertical coordinate void getLinePoint(boost::shared_ptr theFeature, const std::string& theAttribute, double& theX, double& theY); + /// Find a point in the line with given coordinates + /// \param theFeature the line feature + /// \param theX the horizontal point coordinate + /// \param theY the vertical point coordinate + boost::shared_ptr findLinePoint(boost::shared_ptr theFeature, + double theX, double theY); + /// \brief Save the point to the line. + /// \param theFeature the line feature /// \param theX the horizontal coordinate /// \param theY the vertical coordinate /// \param theAttribute the start or end attribute of the line - void setLinePoint(double theX, double theY, const std::string& theAttribute); + void setLinePoint(boost::shared_ptr, double theX, double theY, + const std::string& theAttribute); /// \brief Save the point to the line. /// \param thePoint the 3D point in the viewer /// \param theAttribute the start or end attribute of the line @@ -102,7 +132,7 @@ protected: protected: ///< Structure to lists the possible types of point selection modes - enum PointSelectionMode {SM_FirstPoint, SM_SecondPoint}; + enum PointSelectionMode {SM_FirstPoint, SM_SecondPoint, SM_DonePoint}; private: boost::shared_ptr mySketch; ///< the sketch feature