Salome HOME
Merge branch 'master' of newgeom:newgeom
[modules/shaper.git] / src / ModelAPI / ModelAPI_Attribute.h
index acea353df4d61d3be87566b1ea1da3232a3fe844..55cbb7cfd9c1d8fc82b2c3ee3ccff5980db91c46 100644 (file)
@@ -9,7 +9,7 @@
 #include <string>
 #include <boost/shared_ptr.hpp>
 
-class ModelAPI_Feature;
+class ModelAPI_Object;
 
 /**\class ModelAPI_Attribute
  * \ingroup DataModel
@@ -18,7 +18,9 @@ class ModelAPI_Feature;
 class ModelAPI_Attribute
 {
   ///< needed here to emit signal that feature changed on change of the attribute
-  boost::shared_ptr<ModelAPI_Feature> myFeature;
+  boost::shared_ptr<ModelAPI_Object> myObject;
+protected: // accessible from the attributes
+  bool myIsInitialized;
 public:
   
   /// Returns the type of this class of attributes, not static method
@@ -28,15 +30,22 @@ public:
   MODELAPI_EXPORT virtual ~ModelAPI_Attribute() {}
 
   /// Sets the owner of this attribute
-  MODELAPI_EXPORT void setFeature(const boost::shared_ptr<ModelAPI_Feature>& theFeature)
-    {myFeature = theFeature;}
+  MODELAPI_EXPORT void setObject(const boost::shared_ptr<ModelAPI_Object>& theObject)
+    {myObject = theObject;}
 
   /// Returns the owner of this attribute
-  MODELAPI_EXPORT const boost::shared_ptr<ModelAPI_Feature>& owner()
-  {return myFeature;}
+  MODELAPI_EXPORT const boost::shared_ptr<ModelAPI_Object>& owner()
+  {return myObject;}
+
+  /// Returns true if attribute was  initialized by some value
+  MODELAPI_EXPORT bool isInitialized() {return myIsInitialized;}
+
+  /// Makes attribute initialized
+  MODELAPI_EXPORT void setInitialized() {myIsInitialized = true;}
+
 protected:
   /// Objects are created for features automatically
-  ModelAPI_Attribute(){}
+  ModelAPI_Attribute() {myIsInitialized = false;}
 
 };