Salome HOME
copyrights are updated
[modules/hydro.git] / src / HYDROData / HYDROData_Entity.h
index 7a1391a432b24b723c3a1ecac3a2d62756a2cc74..0c612ba279daf2ac967c76498700636c7f91a7d4 100644 (file)
 #define HYDROData_Entity_HeaderFile
 
 #include "HYDROData.h"
-
 #include <NCollection_Sequence.hxx>
-
 #include <TDF_Label.hxx>
-
 #include <QMap>
 
 class QColor;
@@ -33,6 +30,7 @@ class QVariant;
 class QStringList;
 class Handle(TDataStd_ReferenceList);
 class Handle_HYDROData_Entity;
+class TopoDS_Shape;
 
 ///! Kind of an object in a document
 typedef int ObjectKind;
@@ -94,9 +92,7 @@ HYDRODATA_EXPORT bool IsEqual(const Handle_HYDROData_Entity& theObj1, const Hand
  */
 class HYDROData_Entity : public MMgt_TShared
 {
-
 protected:
-
   /**
    * Enumeration of tags corresponding to the persistent object parameters.
    */
@@ -104,6 +100,20 @@ protected:
   {
     DataTag_First  = 0,     ///< first tag, to reserve
     DataTag_ZLevel,         ///< z-level of object presentation
+    DataTag_GeomChange,
+  };
+
+public:
+  enum Geometry
+  {
+    Geom_No = 1,
+    Geom_2d = 2,
+    Geom_Z  = 4,
+    Geom_Groups = 8,
+
+    Geom_3d = Geom_2d | Geom_Z,
+    Geom_2d_and_groups = Geom_2d | Geom_Groups,
+    Geom_All = Geom_3d | Geom_Groups | Geom_No,
   };
 
 public:
@@ -122,7 +132,7 @@ public:
   /**
    * Updates the name of this object.
    */
-  HYDRODATA_EXPORT virtual void SetName( const QString& theName );
+  HYDRODATA_EXPORT void SetName( const QString& theName );
 
   /**
    * Returns the name of this object valid for Python script.
@@ -162,17 +172,11 @@ public:
   HYDRODATA_EXPORT virtual QVariant GetDataVariant();
 
 
-  /**
-   * Sets the "MustBeUpdated" flag: if object is depended on updated features.
-   * \param theFlag is true for objects that must be updated, false for up-to-date
-   */
-  HYDRODATA_EXPORT virtual void SetToUpdate( bool theFlag );
 
-  /**
-   * Returns the "MustBeUpdated" flag: is object data must be updated or not
-   * \returns false if object is up to date
-   */
-  HYDRODATA_EXPORT virtual bool IsMustBeUpdated() const;
+  HYDRODATA_EXPORT virtual void ClearChanged();
+  HYDRODATA_EXPORT virtual void Changed( Geometry );
+
+  HYDRODATA_EXPORT bool IsMustBeUpdated( Geometry ) const;
 
   /**
    * Returns flag indicating that object is updateble or not.
@@ -272,7 +276,7 @@ protected:
    * Creates new object in the internal data structure. Use higher level objects 
    * to create objects with real content.
    */
-  HYDRODATA_EXPORT HYDROData_Entity();
+  HYDRODATA_EXPORT HYDROData_Entity( Geometry );
 
   /**
    * Destructs properties of the object and object itself, removes it from the document.
@@ -419,16 +423,20 @@ protected:
                              const QColor&        theColor,
                              const QColor&        theDefaultColor,
                              const QString&       theMethod ) const;
-
 protected:
 
   Handle(TDataStd_ReferenceList) getReferenceList( const int  theTag,
                                                    const bool theIsCreate ) const;
+  
+  void SetShape( int theTag, const TopoDS_Shape& theShape );
+  TopoDS_Shape GetShape( int theTag ) const;
 
+  int GetGeomChangeFlag() const;
 
 protected:
   /// Array of pointers to the properties of this object; index in this array is returned by \a AddProperty.
   TDF_Label myLab; ///< label of this object
+  Geometry  myGeom;
 };
 
 #endif