X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_Module.h;h=808958f64ee96844d5074ec9f93c2bc05be68000;hb=9e5f9721be88b2f58dcf4ae6564b2bee69fdb65e;hp=2fe241ce84e39ba1cd4058a2b60c5d86cf318679;hpb=7881eb8318a94b10fbea8129f8086c4143b5139a;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Module.h b/src/HYDROGUI/HYDROGUI_Module.h index 2fe241ce..808958f6 100644 --- a/src/HYDROGUI/HYDROGUI_Module.h +++ b/src/HYDROGUI/HYDROGUI_Module.h @@ -23,7 +23,7 @@ #ifndef HYDROGUI_MODULE_H #define HYDROGUI_MODULE_H -#include +#include #include @@ -32,11 +32,19 @@ 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 HYDROGUI_VTKPrs; /**\class HYDROGUI_Module *\brief The class representing the HYDROGUI module @@ -49,9 +57,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 +82,12 @@ public: typedef QMap< QString, ObjectState > Name2ObjectStateMap; typedef QMap< int, Name2ObjectStateMap > ViewId2Name2ObjectStateMap; + typedef QList ListOfShapes; + typedef QMap ViewId2ListOfShapes; + + typedef QList ListOfVTKPrs; + typedef QMap ViewId2ListOfVTKPrs; + public: HYDROGUI_Module(); virtual ~HYDROGUI_Module(); @@ -84,10 +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 ); @@ -95,11 +121,35 @@ 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 ); + + 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(); @@ -109,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 ); @@ -124,10 +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 updateViewer( HYDROGUI_AbstractDisplayer* theDisplayer, + const bool theIsInit = false, + const bool theIsForced = false, + const bool theDoFitAll = false ); void createSelector( SUIT_ViewManager* viewMgr ); @@ -154,11 +212,18 @@ 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