Salome HOME
- Bathymethries are colored now by all colors (including red etc.)
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Module.h
index c4c1317e0357977bb9d6ac57812beb361a6a89c1..808958f64ee96844d5074ec9f93c2bc05be68000 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>
 
 class QGraphicsSceneMouseEvent;
 
 class GraphicsView_Viewer;
+class OCCViewer_Viewer;
+class SVTK_Viewer;
 
 class SUIT_ViewWindow;
+class SUIT_ViewManager;
 
 class HYDROGUI_DataModel;
 class HYDROGUI_Displayer;
 class HYDROGUI_OCCDisplayer;
+class HYDROGUI_VTKPrsDisplayer;
+class HYDROGUI_AbstractDisplayer;
 class HYDROGUI_Shape;
-
-class OCCViewer_Viewer;
+class HYDROGUI_VTKPrs;
 
 /**\class HYDROGUI_Module
  *\brief The class representing the HYDROGUI module
@@ -81,6 +85,9 @@ public:
   typedef QList<HYDROGUI_Shape*> ListOfShapes;
   typedef QMap<int,ListOfShapes> ViewId2ListOfShapes;
 
+  typedef QList<HYDROGUI_VTKPrs*> ListOfVTKPrs;
+  typedef QMap<int,ListOfVTKPrs> ViewId2ListOfVTKPrs;
+
 public:
   HYDROGUI_Module();
   virtual ~HYDROGUI_Module();
@@ -98,12 +105,15 @@ public:
 
   virtual void                    selectionChanged();
 
+  SUIT_ViewManager*               getViewManager( const int theId ) const;
   HYDROGUI_DataModel*             getDataModel() const;
   HYDROGUI_Displayer*             getDisplayer() const;
   HYDROGUI_OCCDisplayer*          getOCCDisplayer() const;
+  HYDROGUI_VTKPrsDisplayer*       getVTKDisplayer() const;
 
   GraphicsView_Viewer*            getViewer( const int theId ) const;
   OCCViewer_Viewer*               getOCCViewer( const int theId ) const;
+  SVTK_Viewer*                    getVTKViewer( const int theId ) const;
 
   int                             getViewManagerId( SUIT_ViewManager* theViewManager );
   ViewManagerRole                 getViewManagerRole( SUIT_ViewManager* theViewManager );
@@ -111,19 +121,34 @@ public:
                                                       const ViewManagerRole theRole );
 
   bool                            isObjectVisible( const int theViewId,
-                                                   const Handle(HYDROData_Object)& theObject ) const;
+                                                   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_Object)& theObject ) const;
+                                                  const Handle(HYDROData_Entity)& theObject ) const;
   void                            setObjectShape( const int                       theViewId,
-                                                  const Handle(HYDROData_Object)& theObject,
+                                                  const Handle(HYDROData_Entity)& theObject,
                                                   HYDROGUI_Shape*                 theShape );
-  void                            removeViewShapes( const int                       theViewId );
+  void                            removeViewShapes( const int                     theViewId );
   void                            removeObjectShape( const int                       theViewId,
-                                                     const Handle(HYDROData_Object)& theObject );
+                                                     const Handle(HYDROData_Entity)& theObject );
+
+  HYDROGUI_VTKPrs*                getObjectVTKPrs( const int                       theViewId,
+                                                   const Handle(HYDROData_Entity)& theObject ) const;
+  void                            setObjectVTKPrs( const int                       theViewId,
+                                                   const Handle(HYDROData_Entity)& theObject,
+                                                   HYDROGUI_VTKPrs*                theShape );
+  void                            removeViewVTKPrs( const int                      theViewId );
+  void                            removeObjectVTKPrs( const int                      theViewId,
+                                                     const Handle(HYDROData_Entity)& theObject );
+  /**
+   * Update global imposed range of Z values for VTK viewer
+   */
+  void                            updateVTKZRange( double theRange[] );
+
+  QStringList                     GetGeomObjectsToImport();
 
 protected:
   CAM_DataModel*                  createDataModel();
@@ -134,12 +159,15 @@ public slots:
 
 protected:
   virtual LightApp_Operation*     createOperation( const int ) const;
+  virtual bool                    reusableOperation( const int id );
 
   virtual void                    customEvent( QEvent* );
   virtual bool                    eventFilter( QObject*, QEvent* );
 
 protected slots:
   void                            onOperation();
+  void                            onDelete();
+
 
   bool                            onUndo( int theNumActions );
   bool                            onRedo( int theNumActions );
@@ -149,13 +177,15 @@ protected slots:
   virtual void                    onViewCreated( SUIT_ViewWindow* );
 
   void                            onViewPortMouseEvent( QGraphicsSceneMouseEvent* );
+  
+  void                            onExternalOperationFinished( const QString&, const QString&, 
+                                                               const QStringList& );
 
 private:
-  void                            updateGV( const bool theIsInit = false, 
-                                            const bool theIsForced = false );
-
-  void                            updateOCCViewer( const bool theIsInit = false, 
-                                                   const bool theIsForced = false );
+  void                            updateViewer( HYDROGUI_AbstractDisplayer* theDisplayer, 
+                                                const bool theIsInit = false, 
+                                                const bool theIsForced = false, 
+                                                const bool theDoFitAll = false );
 
   void                            createSelector( SUIT_ViewManager* viewMgr );
 
@@ -183,13 +213,17 @@ private:
 private:
   HYDROGUI_Displayer*             myDisplayer;
   HYDROGUI_OCCDisplayer*          myOCCDisplayer;
+  HYDROGUI_VTKPrsDisplayer*       myVTKDisplayer;
 
   ViewManagerMap                  myViewManagerMap;
   ViewId2Name2ObjectStateMap      myObjectStateMap;
 
   ViewId2ListOfShapes             myShapesMap;
+  ViewId2ListOfVTKPrs             myVTKPrsMap;
 
   bool                            myIsUpdateEnabled;
+
+  QStringList                     myGeomObjectsToImport; ///< entries of GEOM objects to be imported
 };
 
 #endif