+ MODELAPI_EXPORT virtual boost::shared_ptr<ModelAPI_Data> data() {return myData;}
+
+ /// Must return document where the new feature must be added to
+ /// By default it is current document
+ MODELAPI_EXPORT virtual boost::shared_ptr<ModelAPI_Document> documentToAdd()
+ {return ModelAPI_PluginManager::get()->currentDocument();}
+
+ /// Returns document this feature belongs to
+ MODELAPI_EXPORT virtual boost::shared_ptr<ModelAPI_Document> document()
+ {return myDoc;}
+
+ /// Returns true if feature refers to the same model data instance
+ MODELAPI_EXPORT virtual bool isSame(const boost::shared_ptr<ModelAPI_Feature>& theFeature)
+ {return theFeature.get() == this;}
+
+ /// To virtually destroy the fields of successors
+ virtual ~ModelAPI_Feature() {}