Salome HOME
refs #30 - Sketch base GUI: create, draw lines
[modules/shaper.git] / src / ModelAPI / ModelAPI_AttributeRefAttr.h
index d9c5f3a6041044750589e7112dd4c6ce8b7c8484..4fd8834669118d033d802c416da5250ec6152965 100644 (file)
@@ -9,18 +9,27 @@
 
 /**\class ModelAPI_AttributeRefAttr
  * \ingroup DataModel
- * \brief Attribute that contains reference to an attribute of a feature 
- * (located in the same document).
+ * \brief Attribute that contains reference to an attribute of a feature or reference to 
+ * a feature (switchable)
  */
 
 class ModelAPI_AttributeRefAttr : public ModelAPI_Attribute
 {
 public:
-  /// Defines the attribute referenced from this attribute
-  MODELAPI_EXPORT virtual void setValue(boost::shared_ptr<ModelAPI_Attribute> theAttr) = 0;
+  /// Returns true if this attribute references to a feature (not to the attribute)
+  MODELAPI_EXPORT virtual bool isFeature() = 0;
+
+  /// Defines the reference to the attribute
+  MODELAPI_EXPORT virtual void setAttr(boost::shared_ptr<ModelAPI_Attribute> theAttr) = 0;
 
   /// Returns attribute referenced from this attribute
-  MODELAPI_EXPORT virtual boost::shared_ptr<ModelAPI_Attribute> value() = 0;
+  MODELAPI_EXPORT virtual boost::shared_ptr<ModelAPI_Attribute> attr() = 0;
+
+  /// Defines the reference to the feature
+  MODELAPI_EXPORT virtual void setFeature(boost::shared_ptr<ModelAPI_Feature> theFeature) = 0;
+
+  /// Returns feature referenced from this attribute
+  MODELAPI_EXPORT virtual boost::shared_ptr<ModelAPI_Feature> feature() = 0;
 
   /// Returns the type of this class of attributes
   MODELAPI_EXPORT static std::string type() {return "RefAttr";}