1 // File: ModelAPI_AttributeRefAttr.h
3 // Author: Mikhail PONIKAROV
5 #ifndef ModelAPI_AttributeRefAttr_H_
6 #define ModelAPI_AttributeRefAttr_H_
8 #include "ModelAPI_Attribute.h"
9 #include "ModelAPI_Feature.h"
11 /**\class ModelAPI_AttributeRefAttr
13 * \brief Attribute that contains reference to an attribute of a feature or reference to
14 * a feature (switchable)
17 class ModelAPI_AttributeRefAttr : public ModelAPI_Attribute
20 /// Returns true if this attribute references to a object (not to the attribute)
21 MODELAPI_EXPORT virtual bool isObject() = 0;
23 /// Defines the reference to the attribute
24 MODELAPI_EXPORT virtual void setAttr(boost::shared_ptr<ModelAPI_Attribute> theAttr) = 0;
26 /// Returns attribute referenced from this attribute
27 MODELAPI_EXPORT virtual boost::shared_ptr<ModelAPI_Attribute> attr() = 0;
29 /// Defines the reference to the object
30 MODELAPI_EXPORT virtual void setObject(ObjectPtr theFeature) = 0;
32 /// Returns object referenced from this attribute
33 MODELAPI_EXPORT virtual ObjectPtr object() = 0;
35 /// Returns the type of this class of attributes
36 MODELAPI_EXPORT static std::string type()
41 /// Returns the type of this class of attributes, not static method
42 MODELAPI_EXPORT virtual std::string attributeType()
47 /// To virtually destroy the fields of successors
48 MODELAPI_EXPORT virtual ~ModelAPI_AttributeRefAttr()
53 /// Objects are created for features automatically
54 MODELAPI_EXPORT ModelAPI_AttributeRefAttr()