Salome HOME
Init feature by model widget factory content
[modules/shaper.git] / src / ModelAPI / ModelAPI_Data.h
index 2922f6d9b3891b4875e51e509a96a4d401670c94..76967d18143f6e50c00374755a0ad13fa5f6f110 100644 (file)
 
 class ModelAPI_AttributeDocRef;
 class ModelAPI_AttributeDouble;
+class ModelAPI_AttributeReference;
+class ModelAPI_AttributeRefAttr;
+class ModelAPI_AttributeRefList;
+class ModelAPI_AttributeBoolean;
 class ModelAPI_Document;
 class ModelAPI_Attribute;
+class GeomAPI_Shape;
 
 /**\class ModelAPI_Data
  * \ingroup DataModel
@@ -34,10 +39,30 @@ public:
   virtual boost::shared_ptr<ModelAPI_AttributeDocRef> docRef(const std::string theID) = 0;
   /// Returns the attribute that contains real value with double precision
   virtual boost::shared_ptr<ModelAPI_AttributeDouble> real(const std::string theID) = 0;
+  /// Returns the attribute that contains reference to a feature
+  virtual boost::shared_ptr<ModelAPI_AttributeReference> reference(const std::string theID) = 0;
+  /// Returns the attribute that contains reference to an attribute of a feature
+  virtual boost::shared_ptr<ModelAPI_AttributeRefAttr> refattr(const std::string theID) = 0;
+  /// Returns the attribute that contains list of references to features
+  virtual boost::shared_ptr<ModelAPI_AttributeRefList> reflist(const std::string theID) = 0;
+  /// Returns the attribute that contains boolean value
+  virtual boost::shared_ptr<ModelAPI_AttributeBoolean> boolean(const std::string theID) = 0;
 
   /// Returns the generic attribute by identifier
   /// \param theID identifier of the attribute
   virtual boost::shared_ptr<ModelAPI_Attribute> attribute(const std::string theID) = 0;
+  /// Identifier by the id (not fast, iteration by map)
+  /// \param theAttr attribute already created in this data
+  virtual const std::string& id(const boost::shared_ptr<ModelAPI_Attribute> theAttr) = 0;
+  /// Returns true if data belongs to same features
+  virtual bool isEqual(const boost::shared_ptr<ModelAPI_Data> theData) = 0;
+  /// Returns true if it is correctly connected t othe data model
+  virtual bool isValid() = 0;
+
+  /// Stores the shape (called by the execution method).
+  virtual void store(const boost::shared_ptr<GeomAPI_Shape>& theShape) = 0;
+  /// Returns the shape-result produced by this feature
+  virtual boost::shared_ptr<GeomAPI_Shape> shape() = 0;
 
   /// Initializes object by the attributes: must be called just after the object is created
   /// for each attribute of the object
@@ -54,4 +79,7 @@ protected:
   {}
 };
 
+typedef boost::shared_ptr<ModelAPI_Data> DataPtr;
+
+
 #endif