+
+ /// Returns the basis plane for the sketch
+ boost::shared_ptr<GeomAPI_Pln> plane();
+
+ virtual AISObjectPtr getAISObject(AISObjectPtr thePrevious);
+
+ /// removes also all sub-sketch elements
+ SKETCHPLUGIN_EXPORT virtual void erase();
+
+ SKETCHPLUGIN_EXPORT virtual boost::shared_ptr<ModelAPI_Feature> addFeature(std::string theID);
+
+ /// Returns the number of sub-elements
+ SKETCHPLUGIN_EXPORT virtual int numberOfSubs() const;
+
+ /// Returns the sub-feature by zero-base index
+ SKETCHPLUGIN_EXPORT virtual boost::shared_ptr<ModelAPI_Feature>
+ subFeature(const int theIndex) const;
+
+ /// Returns the sub-feature unique identifier in this composite feature by zero-base index
+ SKETCHPLUGIN_EXPORT virtual int subFeatureId(const int theIndex) const;
+
+ /// Returns true if feature or reuslt belong to this composite feature as subs
+ SKETCHPLUGIN_EXPORT virtual bool isSub(ObjectPtr theObject) const;
+
+ /// Construction result is allways recomuted on the fly
+ SKETCHPLUGIN_EXPORT virtual bool isPersistentResult() {return false;}
+
+ /// Returns the point projected into the sketch plane
+ boost::shared_ptr<GeomAPI_Pnt2d> to2D(const boost::shared_ptr<GeomAPI_Pnt>& thePnt);
+
+ SKETCHPLUGIN_EXPORT virtual void attributeChanged();
+protected:
+ /// Creates a plane and append it to the list
+ /// \param theX the X normal value
+ /// \param theY the Y normal value
+ /// \param theZ the Z normal value
+ /// \param theShapes the list of result shapes
+ //void addPlane(double theX, double theY, double theZ,
+ // std::list<boost::shared_ptr<GeomAPI_Shape> >& theShapes) const;
+
+ /// Checks whether the plane is set in the sketch.
+ /// \returns the boolean state
+ bool isPlaneSet();