1 #ifndef __cpExtensions__Interaction__ImageSliceStyle__h__
2 #define __cpExtensions__Interaction__ImageSliceStyle__h__
4 #include <cpExtensions/Config.h>
5 #include <vtkInteractorStyleImage.h>
6 #include <vtkSmartPointer.h>
8 // -------------------------------------------------------------------------
12 // -------------------------------------------------------------------------
13 namespace cpExtensions
15 namespace Visualization
18 class WindowLevelImageActor;
24 class cpExtensions_EXPORT ImageSliceStyle
25 : public vtkInteractorStyleImage
28 typedef ImageSliceStyle Self;
29 typedef cpExtensions::Visualization::CursorActors TCursor;
30 typedef cpExtensions::Visualization::WindowLevelImageActor TWLActor;
33 vtkTypeMacro( ImageSliceStyle, vtkInteractorStyleImage );
34 typedef vtkInteractorStyleImage::Superclass Overclass;
39 int GetSliceNumber( ) const;
40 int GetOrientation( ) const;
42 virtual void OnMouseMove( ) cpExtensions_OVERRIDE;
43 virtual void OnMouseWheelForward( ) cpExtensions_OVERRIDE;
44 virtual void OnMouseWheelBackward( ) cpExtensions_OVERRIDE;
45 virtual void OnChar( ) cpExtensions_OVERRIDE;
49 cpExtensions::Visualization::ImageViewerActors* GetActors( );
50 const cpExtensions::Visualization::ImageViewerActors* GetActors( ) const;
51 void SetActors( cpExtensions::Visualization::ImageViewerActors* actors );
54 virtual void OnMouseMove( ) cpExtensions_OVERRIDE;
55 virtual void OnChar( ) cpExtensions_OVERRIDE;
60 virtual ~ImageSliceStyle( );
62 bool _PickPointOnImageActor( int idx[ 2 ], double pnt[ 3 ] );
63 void _CorrectPosition( double pos[ 3 ], int ijk[ 3 ] );
64 void _ShowText( double pos[ 3 ] );
67 // Purposely not implemented
68 ImageSliceStyle( const Self& );
69 Self& operator=( const Self& );
72 vtkSmartPointer< vtkPropPicker > m_PropPicker;
73 vtkSmartPointer< TWLActor > m_WLActor;
74 vtkSmartPointer< TCursor > m_Cursor;
75 vtkSmartPointer< vtkTextActor > m_Text;
76 char m_TextBuffer[ 1024 ];
83 #endif // __cpExtensions__Interaction__ImageSliceStyle__h__