]> Creatis software - cpPlugins.git/blobdiff - lib/cpExtensions/Interaction/ImageInteractorStyle.h
...
[cpPlugins.git] / lib / cpExtensions / Interaction / ImageInteractorStyle.h
index 7664c137ff1b943d36e6659830276d7b1a66fd2f..ec54f5e33481b3c3acfd25808d0836cd133dd940 100644 (file)
@@ -6,9 +6,14 @@
 #include <vector>
 
 #include <vtkSmartPointer.h>
+#include <vtkImageActorPointPlacer.h>
 #include <vtkPropPicker.h>
+#include <vtkPointHandleRepresentation3D.h>
+#include <vtkSeedRepresentation.h>
+#include <cpExtensions/Interaction/SeedWidget.h>
 
 // Forward definitions
+class vtkCommand;
 class vtkImageActor;
 
 namespace cpExtensions
@@ -37,12 +42,35 @@ namespace cpExtensions
       typedef Superclass::TEnterCommand            TEnterCommand;
       typedef Superclass::TLeaveCommand            TLeaveCommand;
 
+      // Widgets
+      struct TSeedWidget
+      {
+        vtkSmartPointer< vtkImageActorPointPlacer >              Placer;
+        vtkSmartPointer< vtkPointHandleRepresentation3D >        Handle;
+        vtkSmartPointer< vtkSeedRepresentation >         Representation;
+        vtkSmartPointer< SeedWidget > Widget;
+
+        TSeedWidget(
+          vtkRenderWindowInteractor* interactor, vtkImageActor* actor
+          );
+        void On( );
+        void Off( );
+      };
+
     public:
       static Self* New( );
 
       // Data for local picker
       virtual void AssociateImageActor( vtkImageActor* actor );
 
+      // Widgets
+      void SeedWidgetOn( );
+      void SeedWidgetOff( );
+      void SetSeedWidgetCommand( vtkCommand* cmd );
+      unsigned int GetNumberOfSeeds( ) const;
+      void GetSeedAsPoint( unsigned int id, double pos[ 3 ] ) const;
+      void GetSeedAsIndex( unsigned int id, int pos[ 3 ] ) const;
+
     protected:
       ImageInteractorStyle( );
       virtual ~ImageInteractorStyle( );
@@ -56,6 +84,8 @@ namespace cpExtensions
 
     protected:
       vtkSmartPointer< vtkPropPicker > m_PropPicker;
+
+      TSeedWidget* m_SeedWidget;
     };
 
   } // ecapseman