X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_Feature.h;h=db6a6d6607aff088a251a6e4f6e43fb30d71b82e;hb=587c5c1821f464e323eec057ba860b2433d4f412;hp=2bb33c268c36be267526e0b38cfa6aca00640d30;hpb=37bf139347283d16d59b08079d52be5f6f29a38c;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_Feature.h b/src/SketchPlugin/SketchPlugin_Feature.h index 2bb33c268..db6a6d660 100644 --- a/src/SketchPlugin/SketchPlugin_Feature.h +++ b/src/SketchPlugin/SketchPlugin_Feature.h @@ -7,9 +7,10 @@ #include "SketchPlugin.h" #include - #include +class SketchPlugin_Sketch; + /**\class SketchPlugin_Feature * \ingroup DataModel * \brief Feature for creation of the new feature in PartSet. This is an abstract class to give @@ -19,9 +20,18 @@ class SketchPlugin_Feature: public ModelAPI_Feature { public: /// Returns the sketch preview + /// \param theSketch the owner of this feature /// \return the built preview SKETCHPLUGIN_EXPORT virtual const boost::shared_ptr& preview() = 0; + /// Adds sub-feature of the higher level feature (sub-element of the sketch) + /// \param theFeature sub-feature + SKETCHPLUGIN_EXPORT virtual const void addSub( + const boost::shared_ptr& theFeature) = 0; + + /// Returns true if this feature must be displayed in the history (top level of Part tree) + SKETCHPLUGIN_EXPORT virtual bool isInHistory() {return false;} + protected: /// Set the shape to the internal preview field /// \param theShape a preview shape @@ -29,9 +39,18 @@ protected: /// Return the shape from the internal preview field /// \return theShape a preview shape const boost::shared_ptr& getPreview() const; + /// Sets the higher-level feature for the sub-feature (sketch for line) + void setSketch(SketchPlugin_Sketch* theSketch) {mySketch = theSketch;} + /// Returns the sketch of this feature + SketchPlugin_Sketch* sketch(); + /// initializes mySketch + SketchPlugin_Feature(); + + friend class SketchPlugin_Sketch; private: boost::shared_ptr myPreview; ///< the preview shape + SketchPlugin_Sketch* mySketch; /// sketch that contains this feature }; #endif