+
+ /// To use virtuality for destructors
+ virtual ~ModelAPI_Object() {}
+
+ protected:
+ /// Sets the data manager of an object (document does)
+ virtual void setData(boost::shared_ptr<ModelAPI_Data> theData)
+ {
+ myData = theData;
+ }
+
+ /// Sets the data manager of an object (document does)
+ virtual void setDoc(boost::shared_ptr<ModelAPI_Document> theDoc)
+ {
+ myDoc = theDoc;
+ }
+
+ /// removes all fields from this feature
+ MODELAPI_EXPORT virtual void erase() {
+ if (myData) myData->erase();
+ setData(DataPtr());
+ }
+
+ friend class Model_Document;
+