Salome HOME
Performance optimization: allow to put temporary objects into selection attributes...
[modules/shaper.git] / src / ModelAPI / ModelAPI_Data.h
index a03a06c9bf9ff40a2c7c80cf4875558780ef2653..1d37ad60f5f88f1494c927a9e66ff84408da4e13 100644 (file)
@@ -7,6 +7,10 @@
 #ifndef ModelAPI_Data_H_
 #define ModelAPI_Data_H_
 
+#ifdef _WINDOWS // to avoid too long decorated name warning 
+#pragma warning( disable : 4503 )
+#endif
+
 #include "ModelAPI.h"
 #include <string>
 #include <list>
@@ -141,12 +145,42 @@ class MODELAPI_EXPORT ModelAPI_Data
   virtual void referencesToObjects(
     std::list<std::pair<std::string, std::list<std::shared_ptr<ModelAPI_Object> > > >& theRefs) =0;
 
-  /// Copies all atributes content into theTarget data
+  /// Copies all attributes content into theTarget data
   virtual void copyTo(std::shared_ptr<ModelAPI_Data> theTarget) = 0;
 
+  /// Returns the invalid data pointer (to avoid working with NULL shared ptrs in swig)
+  virtual std::shared_ptr<ModelAPI_Data> invalidPtr() = 0;
+
+  /// Identifier of the transaction when object (feature or result) was updated last time.
+  virtual int updateID() = 0;
+
+  /// Identifier of the transaction when object (feature or result) was updated last time.
+  /// This method is called by the updater.
+  virtual void setUpdateID(const int theID) = 0;
+
+  /// Returns the owner of htis data
+  virtual std::shared_ptr<ModelAPI_Object> owner() = 0;
+
  protected:
   /// Objects are created for features automatically
   ModelAPI_Data();
+
+  /// Returns true if "is in history" custom behaviors is defined for the feature
+  virtual bool isInHistory() = 0;
+
+  /// Defines the custom "is in history" behavior
+  virtual void setIsInHistory(const bool theFlag) = 0;
+
+  /// 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 i nthe current transaction.
+  virtual bool isDisplayed() = 0;
+
+  /// Sets the displayed/hidden state of the object. If it is changed, sends the "redisplay"
+  /// signal.
+  virtual void setDisplayed(const bool theDisplay) = 0;
+
+  friend class ModelAPI_Object;
 };
 
 typedef std::shared_ptr<ModelAPI_Data> DataPtr;