]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Extensions/Visualization/ImageInteractorStyle.h
Use of MPR simplified
[cpPlugins.git] / lib / cpPlugins / Extensions / Visualization / ImageInteractorStyle.h
index b618f5e47931056a8da9582e4d106ac5f7a4b04f..3cac84ec4f477cee8b9bedbc82aa4c554750a006 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef __CPPLUGINS__EXTENSIONS__VISUALIZATION__IMAGEINTERACTORSTYLE__H__
 #define __CPPLUGINS__EXTENSIONS__VISUALIZATION__IMAGEINTERACTORSTYLE__H__
 
+#include <vector>
+
 #include <vtkInteractorStyleImage.h>
 #include <vtkOrientationMarkerWidget.h>
 #include <vtkPropPicker.h>
@@ -47,6 +49,7 @@ namespace cpPlugins
           ImageSliceActors* slice_actors,
           MPRActors* mpr_actors = NULL
           );
+        void AssociateInteractor( vtkRenderWindowInteractor* interactor );
 
         void SetModeToNavigation( );
         void SetModeToDeformation( );
@@ -76,26 +79,31 @@ namespace cpPlugins
         // they might be called from OnTimer, they do not have mouse coord
         // parameters (use interactor's GetEventPosition and
         // GetLastEventPosition)
-        virtual void Rotate( );
-        virtual void Pan( );
-        virtual void Spin( );
-        virtual void Zoom( );
+
+        virtual void Rotate( ) { }
+        virtual void Spin( )   { }
+        virtual void Zoom( )   { }
+        virtual void Pick( )   { }
+        virtual void Slice( )  { }
         virtual void WindowLevel( );
-        virtual void Pick( );
-        virtual void Slice( );
 
         // Interaction mode entry points used internally.
+        virtual void StartPick( )  { }
+        virtual void EndPick( )    { }
+        virtual void StartSlice( ) { }
+        virtual void EndSlice( )   { }
         virtual void StartWindowLevel( );
         virtual void EndWindowLevel( );
-        virtual void StartPick( );
-        virtual void EndPick( );
-        virtual void StartSlice( );
-        virtual void EndSlice( );
+
+        // New events
+        virtual void StartCursorMoving( );
+        virtual void EndCursorMoving( );
 
       protected:
         ImageInteractorStyle( );
         virtual ~ImageInteractorStyle( );
 
+        void _RenderAssociateInteractors( );
         bool _PickPosition( double pos[ 3 ] );
         void _UpdateCursor( );
 
@@ -113,6 +121,10 @@ namespace cpPlugins
         vtkSmartPointer< vtkOrientationMarkerWidget > OrientationWidget;
         vtkSmartPointer< vtkPropPicker > PropPicker;
 
+        std::vector< vtkRenderWindowInteractor* > AssociatedInteractors;
+
+        bool CursorMoving;
+
       public:
         static const int SliceEvent;
       };