Salome HOME
Hotfix to make source compilable under linux.
[modules/shaper.git] / src / Model / Model_Data.h
index 1548c709e4f96eafb45d9ac5c3255c716f04a330..03ff0c54eddc44dd8fec9cf433b9cfa307edb9b5 100644 (file)
@@ -31,10 +31,13 @@ class Model_Data: public ModelAPI_Data
 
   Model_Data();
 
+  /// Returns label of this feature
   TDF_Label label() {return myLab;}
 
   friend class Model_Document;
-  friend class Model_Iterator;
+  friend class Model_AttributeReference;
+  friend class Model_AttributeRefAttr;
+  friend class Model_AttributeRefList;
 
 public:
   /// Returns the name of the feature visible by the user in the object browser
@@ -45,9 +48,25 @@ public:
   MODEL_EXPORT virtual boost::shared_ptr<ModelAPI_AttributeDocRef> docRef(const std::string theID);
   /// Returns the attribute that contains real value with double precision
   MODEL_EXPORT virtual boost::shared_ptr<ModelAPI_AttributeDouble> real(const std::string theID);
+  /// Returns the attribute that contains reference to a feature
+  MODEL_EXPORT virtual boost::shared_ptr<ModelAPI_AttributeReference> 
+    reference(const std::string theID);
+  /// Returns the attribute that contains reference to an attribute of a feature
+  MODEL_EXPORT virtual boost::shared_ptr<ModelAPI_AttributeRefAttr>
+    refattr(const std::string theID);
+  /// Returns the attribute that contains list of references to features
+  MODEL_EXPORT virtual boost::shared_ptr<ModelAPI_AttributeRefList> 
+    reflist(const std::string theID);
   /// Returns the generic attribute by identifier
   /// \param theID identifier of the attribute
   MODEL_EXPORT virtual boost::shared_ptr<ModelAPI_Attribute> attribute(const std::string theID);
+  /// Identifier by the id (not fast, iteration by map)
+  /// \param theAttr attribute already created in this data
+  MODEL_EXPORT virtual const std::string& id(const boost::shared_ptr<ModelAPI_Attribute> theAttr);
+  /// Returns true if data belongs to same features
+  MODEL_EXPORT virtual bool isEqual(const boost::shared_ptr<ModelAPI_Data> theData);
+  /// Returns true if it is correctly connected t othe data model
+  MODEL_EXPORT virtual bool isValid();
 
   /// Initializes object by the attributes: must be called just after the object is created
   /// for each attribute of the object