#include <map>
class ModelAPI_Attribute;
+class ModelAPI_Feature;
/**\class Model_Data
* \ingroup DataModel
{
TDF_Label myLab; ///< label of the feature in the document
/// All attributes of the object identified by the attribute ID
- std::map<std::string, std::shared_ptr<ModelAPI_Attribute> > myAttrs;
+ std::map<std::string, boost::shared_ptr<ModelAPI_Attribute> > myAttrs;
- std::shared_ptr<ModelAPI_Document> myDoc; ///< document this feature belongs to
+ /// needed here to emit signal that feature changed on change of the attribute
+ boost::shared_ptr<ModelAPI_Feature> myFeature;
Model_Data();
/// Defines the name of the feature visible by the user in the object browser
MODEL_EXPORT virtual void setName(std::string theName);
/// Returns the attribute that references to another document
- MODEL_EXPORT virtual std::shared_ptr<ModelAPI_AttributeDocRef> docRef(const std::string theID);
+ 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 std::shared_ptr<ModelAPI_AttributeDouble> real(const std::string theID);
+ MODEL_EXPORT virtual boost::shared_ptr<ModelAPI_AttributeDouble> real(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);
/// Initializes object by the attributes: must be called just after the object is created
/// for each attribute of the object
/// \param theAttrType type of the created attribute (received from the type method)
MODEL_EXPORT virtual void addAttribute(std::string theID, std::string theAttrType);
- /// Returns the document of this data
- MODEL_EXPORT virtual std::shared_ptr<ModelAPI_Document> document() {return myDoc;}
-
/// Puts feature to the document data sub-structure
MODEL_EXPORT void setLabel(TDF_Label& theLab);
- /// Sets the document of this data
- MODEL_EXPORT virtual void setDocument(const std::shared_ptr<ModelAPI_Document>& theDoc) {myDoc = theDoc;}
+ /// Sets the feature of this data
+ MODEL_EXPORT virtual void setFeature(boost::shared_ptr<ModelAPI_Feature> theFeature)
+ {myFeature = theFeature;}
};
#endif