+ MODELAPI_EXPORT const boost::shared_ptr<ModelAPI_Object>& owner() const
+ {
+ 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;
+ }
+
+ /// Set this attribute is argument for result (change of this attribute requires update of result).
+ /// By default it is true.
+ MODELAPI_EXPORT void setIsArgument(const bool theFlag)
+ {
+ myIsArgument = theFlag;
+ }
+
+ /// Returns true if attribute causes the result change
+ MODELAPI_EXPORT bool isArgument()
+ {
+ return myIsArgument;
+ }
+
+ /// Immutable argument can not be changed programaticaly (e.g. by constraint)
+ /// By default it is false.
+ /// Returns the previous state of the attribute's immutability.
+ MODELAPI_EXPORT bool setImmutable(const bool theFlag)
+ {
+ bool aResult = myIsImmutable;
+ myIsImmutable = theFlag;
+ return aResult;
+ }
+
+ /// Returns true if can not be changed programaticaly
+ MODELAPI_EXPORT bool isImmutable()
+ {
+ return myIsImmutable;
+ }
+
+ protected: