X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_Feature.h;h=db6a6d6607aff088a251a6e4f6e43fb30d71b82e;hb=761f0db64165dd5208998f29db8c7a8ae6c30e60;hp=4b91631c9ed43e799a43ae00cf83959c8ffa2f5a;hpb=29b4b1b5e692ebc45e8a27703b9307b075d2cff2;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_Feature.h b/src/SketchPlugin/SketchPlugin_Feature.h index 4b91631c9..db6a6d660 100644 --- a/src/SketchPlugin/SketchPlugin_Feature.h +++ b/src/SketchPlugin/SketchPlugin_Feature.h @@ -7,23 +7,50 @@ #include "SketchPlugin.h" #include +#include -#include "TopoDS_Shape.hxx" +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 TopoDS_Shape& 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 TopoDS_Shape& 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: - TopoDS_Shape myPreview; ///< the preview shape + boost::shared_ptr myPreview; ///< the preview shape + SketchPlugin_Sketch* mySketch; /// sketch that contains this feature }; #endif