- /// Initializes object by the attributes: must be called just after the object is created
- /// for each attribute of the object
- /// \param theID identifier of the attribute that can be referenced by this ID later
- /// \param theAttrType type of the created attribute (received from the type method)
- virtual void addAttribute(std::string theID, std::string theAttrType) = 0;
+ /// Initializes the default states of the object
+ MODELAPI_EXPORT ModelAPI_Object();
+
+ /// To use virtuality for destructors
+ MODELAPI_EXPORT virtual ~ModelAPI_Object();
+
+ /// Returns true if object must be displayed in the viewer: flag is stored in the
+ /// data model, so on undo/redo, open/save or recreation of object by history-playing it keeps
+ /// the original state in the current transaction.
+ MODELAPI_EXPORT virtual bool isDisplayed();
+
+ /// Sets the displayed/hidden state of the object. If it is changed, sends the "redisplay"
+ /// signal.
+ MODELAPI_EXPORT virtual void setDisplayed(const bool theDisplay);
+
+ protected:
+ /// This method is called just after creation of the object: it must initialize
+ /// all fields, normally initialized in the constructor
+ MODELAPI_EXPORT virtual void init() = 0;
+
+ /// Sets the data manager of an object (document does)
+ MODELAPI_EXPORT virtual void setData(std::shared_ptr<ModelAPI_Data> theData);
+
+ /// Sets the data manager of an object (document does)
+ MODELAPI_EXPORT virtual void setDoc(std::shared_ptr<ModelAPI_Document> theDoc);
+
+ /// removes all fields from this feature
+ MODELAPI_EXPORT virtual void erase();
+
+ friend class Model_Objects;
+ friend class Model_Document;