Salome HOME
Fix for the bug #42: point C is not activated, but point C is shown in preview in...
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Module.h
index 453b9e47e5156acc4a6dd537dc8e32b46ffaf103..3561ed1c9b82048d45cbaa6b356db06ac36592d8 100644 (file)
@@ -23,7 +23,7 @@
 #ifndef HYDROGUI_MODULE_H
 #define HYDROGUI_MODULE_H
 
-#include <HYDROData_Object.h>
+#include <HYDROData_Entity.h>
 
 #include <LightApp_Module.h>
 
@@ -37,6 +37,10 @@ class SUIT_ViewWindow;
 
 class HYDROGUI_DataModel;
 class HYDROGUI_Displayer;
+class HYDROGUI_OCCDisplayer;
+class HYDROGUI_Shape;
+
+class OCCViewer_Viewer;
 
 /**\class HYDROGUI_Module
  *\brief The class representing the HYDROGUI module
@@ -49,9 +53,16 @@ class HYDROGUI_Module : public LightApp_Module
 
 public:
   
-  enum ViewManagerRole { VMR_Unknown = 0, VMR_General, 
-                         VMR_TransformImage, VMR_ObserveImage, 
-                         VMR_PreviewZone };
+  enum ViewManagerRole
+  {
+    VMR_Unknown = 0,
+    VMR_General,
+    VMR_TransformImage,
+    VMR_ReferenceImage,
+    VMR_ObserveImage,
+    //VMR_PreviewZone, // totally unused, to delete
+    VMR_PreviewCaseZones // actually unused, to review
+  };
   typedef QPair< SUIT_ViewManager*, ViewManagerRole > ViewManagerInfo;
 
   typedef QMap        < int, ViewManagerInfo > ViewManagerMap;
@@ -67,6 +78,9 @@ public:
   typedef QMap< QString, ObjectState > Name2ObjectStateMap;
   typedef QMap< int, Name2ObjectStateMap > ViewId2Name2ObjectStateMap;
 
+  typedef QList<HYDROGUI_Shape*> ListOfShapes;
+  typedef QMap<int,ListOfShapes> ViewId2ListOfShapes;
+
 public:
   HYDROGUI_Module();
   virtual ~HYDROGUI_Module();
@@ -86,8 +100,10 @@ public:
 
   HYDROGUI_DataModel*             getDataModel() const;
   HYDROGUI_Displayer*             getDisplayer() const;
+  HYDROGUI_OCCDisplayer*          getOCCDisplayer() const;
 
   GraphicsView_Viewer*            getViewer( const int theId ) const;
+  OCCViewer_Viewer*               getOCCViewer( const int theId ) const;
 
   int                             getViewManagerId( SUIT_ViewManager* theViewManager );
   ViewManagerRole                 getViewManagerRole( SUIT_ViewManager* theViewManager );
@@ -95,11 +111,20 @@ public:
                                                       const ViewManagerRole theRole );
 
   bool                            isObjectVisible( const int theViewId,
-                                                   const Handle(HYDROData_Object)& theObject );
+                                                   const Handle(HYDROData_Entity)& theObject ) const;
   void                            setObjectVisible( const int theViewId,
-                                                    const Handle(HYDROData_Object)& theObject,
+                                                    const Handle(HYDROData_Entity)& theObject,
                                                     const bool theState );
 
+  HYDROGUI_Shape*                 getObjectShape( const int                       theViewId,
+                                                  const Handle(HYDROData_Entity)& theObject ) const;
+  void                            setObjectShape( const int                       theViewId,
+                                                  const Handle(HYDROData_Entity)& theObject,
+                                                  HYDROGUI_Shape*                 theShape );
+  void                            removeViewShapes( const int                       theViewId );
+  void                            removeObjectShape( const int                       theViewId,
+                                                     const Handle(HYDROData_Entity)& theObject );
+
 protected:
   CAM_DataModel*                  createDataModel();
 
@@ -129,11 +154,17 @@ private:
   void                            updateGV( const bool theIsInit = false, 
                                             const bool theIsForced = false );
 
+  void                            updateOCCViewer( const bool theIsInit = false, 
+                                                   const bool theIsForced = false );
+
   void                            createSelector( SUIT_ViewManager* viewMgr );
 
   bool                            setUpdateEnabled( const bool theState );
   bool                            isUpdateEnabled() const;
 
+  QStringList                     storeSelection() const;
+  void                            restoreSelection( const QStringList& theEntryList );
+
 private:
   void                            createActions();
   void                            createMenus();
@@ -151,10 +182,13 @@ private:
 
 private:
   HYDROGUI_Displayer*             myDisplayer;
+  HYDROGUI_OCCDisplayer*          myOCCDisplayer;
 
   ViewManagerMap                  myViewManagerMap;
   ViewId2Name2ObjectStateMap      myObjectStateMap;
 
+  ViewId2ListOfShapes             myShapesMap;
+
   bool                            myIsUpdateEnabled;
 };