]> Creatis software - cpPlugins.git/blobdiff - lib/cpExtensions/Interaction/ImageSliceStyle.h
Cast image filter added. ROI filter modified.
[cpPlugins.git] / lib / cpExtensions / Interaction / ImageSliceStyle.h
index f98ca2848dc1151b10c464959a4c35c9cbd6376d..6d2b11491b92669d3b185d12f673c7c2a0f0ade4 100644 (file)
@@ -1,48 +1,69 @@
 #ifndef __cpExtensions__Interaction__ImageSliceStyle__h__
 #define __cpExtensions__Interaction__ImageSliceStyle__h__
 
-#include <cpExtensions/Interaction/BaseStyle.h>
+#include <cpExtensions/Config.h>
+#include <vtkInteractorStyleImage.h>
 #include <vtkSmartPointer.h>
 
 // -------------------------------------------------------------------------
 class vtkPropPicker;
+class vtkTextActor;
 
 // -------------------------------------------------------------------------
 namespace cpExtensions
 {
-  namespace Visualization { class ImageViewerActors; }
-
+  namespace Visualization
+  {
+    class CursorActors;
+    class LUTImageActor;
+    class WindowLevelImageActor;
+  }
   namespace Interaction
   {
     /**
      */
     class cpExtensions_EXPORT ImageSliceStyle
-      : public BaseStyle
+      : public vtkInteractorStyleImage
     {
     public:
       typedef ImageSliceStyle Self;
+      typedef cpExtensions::Visualization::CursorActors          TCursor;
+      typedef cpExtensions::Visualization::LUTImageActor         TLUTActor;
+      typedef cpExtensions::Visualization::WindowLevelImageActor TWLActor;
 
     public:
-      vtkTypeMacro( ImageSliceStyle, BaseStyle );
+      vtkTypeMacro( ImageSliceStyle, vtkInteractorStyleImage );
+      typedef vtkInteractorStyleImage::Superclass Overclass;
 
     public:
       static Self* New( );
 
-      cpExtensions::Visualization::ImageViewerActors* GetActors( );
-      const cpExtensions::Visualization::ImageViewerActors* GetActors( ) const;
-      void SetActors( cpExtensions::Visualization::ImageViewerActors* actors );
+      int GetSliceNumber( ) const;
+      int GetOrientation( ) const;
 
-      // Events
       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( );
 
-      virtual bool _PickPosition( int idx[ 2 ], double pos[ 3 ] ) cpExtensions_OVERRIDE;
+      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
@@ -50,8 +71,12 @@ namespace cpExtensions
       Self& operator=( const Self& );
 
     protected:
-      vtkSmartPointer< cpExtensions::Visualization::ImageViewerActors > m_Actors;
       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