#ifndef __cpExtensions__Interaction__ImageSliceStyle__h__ #define __cpExtensions__Interaction__ImageSliceStyle__h__ #include #include #include // ------------------------------------------------------------------------- class vtkPropPicker; class vtkTextActor; // ------------------------------------------------------------------------- namespace cpExtensions { namespace Visualization { class CursorActors; class LUTImageActor; class WindowLevelImageActor; } namespace Interaction { /** */ class cpExtensions_EXPORT ImageSliceStyle : public vtkInteractorStyleImage { public: typedef ImageSliceStyle Self; typedef cpExtensions::Visualization::CursorActors TCursor; typedef cpExtensions::Visualization::LUTImageActor TLUTActor; typedef cpExtensions::Visualization::WindowLevelImageActor TWLActor; public: vtkTypeMacro( ImageSliceStyle, vtkInteractorStyleImage ); typedef vtkInteractorStyleImage::Superclass Overclass; public: static Self* New( ); int GetSliceNumber( ) const; int GetOrientation( ) const; virtual void OnMouseMove( ) cpExtensions_OVERRIDE; virtual void OnMouseWheelForward( ) cpExtensions_OVERRIDE; virtual void OnMouseWheelBackward( ) cpExtensions_OVERRIDE; virtual void OnChar( ) cpExtensions_OVERRIDE; /* TODO cpExtensions::Visualization::ImageViewerActors* GetActors( ); const cpExtensions::Visualization::ImageViewerActors* GetActors( ) const; void SetActors( cpExtensions::Visualization::ImageViewerActors* actors ); // Events virtual void OnMouseMove( ) cpExtensions_OVERRIDE; virtual void OnChar( ) cpExtensions_OVERRIDE; */ protected: ImageSliceStyle( ); virtual ~ImageSliceStyle( ); bool _PickPointOnImageActor( int idx[ 2 ], double pnt[ 3 ] ); void _CorrectPosition( double pos[ 3 ], int ijk[ 3 ] ); void _ShowText( double pos[ 3 ] ); private: // Purposely not implemented ImageSliceStyle( const Self& ); Self& operator=( const Self& ); protected: vtkSmartPointer< vtkPropPicker > m_PropPicker; vtkSmartPointer< TLUTActor > m_LUTActor; vtkSmartPointer< TWLActor > m_WLActor; vtkSmartPointer< TCursor > m_Cursor; vtkSmartPointer< vtkTextActor > m_Text; char m_TextBuffer[ 1024 ]; }; } // ecapseman } // ecapseman #endif // __cpExtensions__Interaction__ImageSliceStyle__h__ // eof - $RCSfile$