#define ModelAPI_Object_H_
#include "ModelAPI.h"
+#include "ModelAPI_Data.h"
#include <boost/shared_ptr.hpp>
}
/// Returns the data manager of this object: attributes
- virtual boost::shared_ptr<ModelAPI_Data> data()
+ virtual boost::shared_ptr<ModelAPI_Data> data() const
{
return myData;
}
}
/// Returns document this feature belongs to
- virtual boost::shared_ptr<ModelAPI_Document> document()
+ virtual boost::shared_ptr<ModelAPI_Document> document() const
{
return myDoc;
}
/// Returns the group identifier of this object
virtual std::string groupName() = 0;
+ /// Called on change of any argument-attribute of this object
+ MODELAPI_EXPORT virtual void attributeChanged()
+ {}
+
+ /// 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)
myDoc = theDoc;
}
+ /// removes all fields from this feature
+ MODELAPI_EXPORT virtual void erase() {
+ if (myData) myData->erase();
+ setData(DataPtr());
+ }
+
friend class Model_Document;
+
};
typedef boost::shared_ptr<ModelAPI_Object> ObjectPtr;