X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModelAPI%2FModelAPI_Object.h;h=aba6567eb3a0d643409a36dc40644d2811650511;hb=d0a227e8835b402a07478a3aa7597cf6af8e7f8d;hp=2d4838c17252f4feed9cfb8d078d21e0514f01ad;hpb=3da12847434e80669f608d589074a181df87da4e;p=modules%2Fshaper.git diff --git a/src/ModelAPI/ModelAPI_Object.h b/src/ModelAPI/ModelAPI_Object.h index 2d4838c17..aba6567eb 100644 --- a/src/ModelAPI/ModelAPI_Object.h +++ b/src/ModelAPI/ModelAPI_Object.h @@ -6,6 +6,7 @@ #define ModelAPI_Object_H_ #include "ModelAPI.h" +#include "ModelAPI_Data.h" #include @@ -33,7 +34,7 @@ class ModelAPI_Object } /// Returns the data manager of this object: attributes - virtual boost::shared_ptr data() + virtual boost::shared_ptr data() const { return myData; } @@ -45,7 +46,7 @@ class ModelAPI_Object } /// Returns document this feature belongs to - virtual boost::shared_ptr document() + virtual boost::shared_ptr document() const { return myDoc; } @@ -53,6 +54,13 @@ class ModelAPI_Object /// 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 theData) @@ -66,7 +74,14 @@ class ModelAPI_Object 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 ObjectPtr;