X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_Feature.h;h=db6a6d6607aff088a251a6e4f6e43fb30d71b82e;hb=587c5c1821f464e323eec057ba860b2433d4f412;hp=a440dbdfdd2a353e6f6c74530c5a990a277344da;hpb=de0f49686ec6655ddc5816c8fa5383964662aec4;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_Feature.h b/src/SketchPlugin/SketchPlugin_Feature.h index a440dbdfd..db6a6d660 100644 --- a/src/SketchPlugin/SketchPlugin_Feature.h +++ b/src/SketchPlugin/SketchPlugin_Feature.h @@ -7,23 +7,50 @@ #include "SketchPlugin.h" #include - #include +class SketchPlugin_Sketch; + /**\class SketchPlugin_Feature * \ingroup DataModel - * \brief Feature for creation of the new part in PartSet. + * \brief Feature for creation of the new feature in PartSet. This is an abstract class to give + * an interface to create the sketch feature preview. */ class SketchPlugin_Feature: public ModelAPI_Feature { public: - SKETCHPLUGIN_EXPORT virtual const std::shared_ptr& preview() = 0; + /// 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: - void setPreview(const std::shared_ptr& theShape); ///< the preview shape + /// Set the shape to the internal preview field + /// \param theShape a preview shape + void setPreview(const boost::shared_ptr& theShape); ///< the preview shape + /// 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: - std::shared_ptr myPreview; ///< the preview shape + boost::shared_ptr myPreview; ///< the preview shape + SketchPlugin_Sketch* mySketch; /// sketch that contains this feature }; #endif