#include "Model.h"
#include <ModelAPI_Data.h>
+#include <ModelAPI_Feature.h>
#include <TDF_Label.hxx>
#include <map>
class ModelAPI_Attribute;
-class ModelAPI_Feature;
/**\class Model_Data
* \ingroup DataModel
std::map<std::string, boost::shared_ptr<ModelAPI_Attribute> > myAttrs;
/// needed here to emit signal that feature changed on change of the attribute
- boost::shared_ptr<ModelAPI_Feature> myFeature;
+ FeaturePtr myFeature;
Model_Data();
/// 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 attribute that contains boolean value
+ MODEL_EXPORT virtual boost::shared_ptr<ModelAPI_AttributeBoolean>
+ boolean(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);
+ /// Returns all attributes ofthe feature of the given type
+ /// or all attributes if "theType" is empty
+ MODEL_EXPORT virtual std::list<boost::shared_ptr<ModelAPI_Attribute> >
+ attributes(const std::string theType);
+
/// 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);
/// \param theAttrType type of the created attribute (received from the type method)
MODEL_EXPORT virtual void addAttribute(std::string theID, std::string theAttrType);
+ /// Useful method for "set" methods of the attributes: sends an UPDATE event and
+ /// makes attribute initialized
+ MODEL_EXPORT virtual void sendAttributeUpdated(ModelAPI_Attribute* theAttr);
+
/// Puts feature to the document data sub-structure
MODEL_EXPORT void setLabel(TDF_Label& theLab);
/// Sets the feature of this data
- MODEL_EXPORT virtual void setFeature(boost::shared_ptr<ModelAPI_Feature> theFeature)
+ MODEL_EXPORT virtual void setFeature(FeaturePtr theFeature)
{myFeature = theFeature;}
};