X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_Module.h;h=e2dee3ee51dfc18f657a5f7f5bd2be705df80c3b;hb=81c9f5cdf82909d0aebd2c491c50fa7516cc80b7;hp=d2825208639d1e205a76060269f2fa6489a5767f;hpb=7e825ec456c9331ef0df1cb59865cc55f0d8516a;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Module.h b/src/HYDROGUI/HYDROGUI_Module.h index d2825208..e2dee3ee 100644 --- a/src/HYDROGUI/HYDROGUI_Module.h +++ b/src/HYDROGUI/HYDROGUI_Module.h @@ -28,19 +28,25 @@ #include #include +#include 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_Operation; /**\class HYDROGUI_Module *\brief The class representing the HYDROGUI module @@ -75,12 +81,15 @@ public: double ZValue; ObjectState() : Visibility( false ), Transparency( 1.0 ), ZValue( 0.0 ) {} }; - typedef QMap< QString, ObjectState > Name2ObjectStateMap; - typedef QMap< int, Name2ObjectStateMap > ViewId2Name2ObjectStateMap; + typedef QMap< QString, ObjectState > Entry2ObjectStateMap; + typedef QMap< int, Entry2ObjectStateMap > ViewId2Entry2ObjectStateMap; typedef QList ListOfShapes; typedef QMap ViewId2ListOfShapes; + typedef QList ListOfVTKPrs; + typedef QMap ViewId2ListOfVTKPrs; + public: HYDROGUI_Module(); virtual ~HYDROGUI_Module(); @@ -98,12 +107,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 ); @@ -115,17 +127,54 @@ public: void setObjectVisible( const int theViewId, const Handle(HYDROData_Entity)& theObject, const bool theState ); - + /** + * Set IsToUpdate flag for all presentations of the given object to recompute them during + * the next viewer(s) updating. + * @param theObject the data model object + * @param theState the flag to set for object's presentations, it's true by default. + */ + void setIsToUpdate( const Handle(HYDROData_Entity)& theObject, + const bool theState = true ); 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 removeViewShapes( const int theViewId ); void removeObjectShape( const int theViewId, const Handle(HYDROData_Entity)& theObject ); - QStringList GetGeomObjectsToImport(); + 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 ); + + void removeObjectVTKPrs( const int theViewId, + const QString& theEntry ); + + /** + * Update global imposed range of Z values for the given VTK viewer id + */ + void updateVTKZRange( const int theViewId, double theRange[] ); + + /** + * Returns true if the object with the given entry can be renamed. + * @param theEntry the object entry + */ + virtual bool renameAllowed( const QString& theEntry ) const; + /** + * Returns true if the object with the given entry is renamed. + * @param theEntry the object entry + * @param theName the new name + */ + virtual bool renameObject( const QString& theEntry, const QString& theName ); + + QStack& getActiveOperations(); + HYDROGUI_Operation* activeOperation(); protected: CAM_DataModel* createDataModel(); @@ -143,6 +192,8 @@ protected: protected slots: void onOperation(); + void onDelete(); + bool onUndo( int theNumActions ); bool onRedo( int theNumActions ); @@ -152,18 +203,14 @@ 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, - const bool theDoFitAll = false ); + void onMouseMove( SUIT_ViewWindow*, QMouseEvent* ); - void updateOCCViewer( const bool theIsInit = false, - const bool theIsForced = false, - const bool theDoFitAll = false ); +private: + void updateViewer( HYDROGUI_AbstractDisplayer* theDisplayer, + const bool theIsInit = false, + const bool theIsForced = false, + const bool theDoFitAll = false ); void createSelector( SUIT_ViewManager* viewMgr ); @@ -191,12 +238,15 @@ private: private: HYDROGUI_Displayer* myDisplayer; HYDROGUI_OCCDisplayer* myOCCDisplayer; + HYDROGUI_VTKPrsDisplayer* myVTKDisplayer; ViewManagerMap myViewManagerMap; - ViewId2Name2ObjectStateMap myObjectStateMap; + ViewId2Entry2ObjectStateMap myObjectStateMap; - ViewId2ListOfShapes myShapesMap; + QStack myActiveOperationMap; + ViewId2ListOfShapes myShapesMap; + ViewId2ListOfVTKPrs myVTKPrsMap; bool myIsUpdateEnabled; QStringList myGeomObjectsToImport; ///< entries of GEOM objects to be imported