]> Creatis software - cpPlugins.git/blob - plugins/cpPluginsWidgets/SeedWidget.h
...
[cpPlugins.git] / plugins / cpPluginsWidgets / SeedWidget.h
1 #ifndef __CPPLUGINSWIDGETS__SEEDWIDGET__H__
2 #define __CPPLUGINSWIDGETS__SEEDWIDGET__H__
3
4 #include <plugins/cpPluginsWidgets/cpPluginsWidgets_Export.h>
5 #include <cpPlugins/BaseWidget.h>
6
7 #include <cpExtensions/Interaction/SeedWidget.h>
8 #include <vtkImageActorPointPlacer.h>
9 #include <vtkPointHandleRepresentation3D.h>
10 #include <vtkSeedRepresentation.h>
11 #include <vtkSmartPointer.h>
12
13 namespace cpPluginsWidgets
14 {
15   /**
16    */
17   class cpPluginsWidgets_EXPORT SeedWidget
18     : public cpPlugins::BaseWidget
19   {
20   public:
21     typedef SeedWidget                      Self;
22     typedef cpPlugins::BaseWidget           Superclass;
23     typedef itk::SmartPointer< Self >       Pointer;
24     typedef itk::SmartPointer< const Self > ConstPointer;
25
26   public:
27     itkNewMacro( Self );
28     itkTypeMacro( SeedWidget, cpPlugins::BaseWidget );
29     cpPlugins_Id_Macro( SeedWidget, Widgets );
30
31     struct WidgetData
32     {
33       vtkSmartPointer< cpExtensions::Interaction::SeedWidget > Widget;
34       vtkSmartPointer< vtkImageActorPointPlacer >              Placer;
35       vtkSmartPointer< vtkPointHandleRepresentation3D >        Handle;
36       vtkSmartPointer< vtkSeedRepresentation >                 Seed;
37
38       void Configure(
39         vtkRenderWindowInteractor* interactor, vtkImageActor* actor
40         );
41       void On( );
42       void Off( );
43     };
44
45   public:
46     virtual itk::ModifiedTimeType GetMTime( ) const ITK_OVERRIDE;
47
48   protected:
49     SeedWidget( );
50     virtual ~SeedWidget( );
51
52     virtual void _GenerateData( ) ITK_OVERRIDE;
53
54     /* TODO
55        template< class _TImage >
56        inline void _GD0( _TImage* image );
57     */
58
59   private:
60     // Purposely not implemented
61     SeedWidget( const Self& );
62     Self& operator=( const Self& );
63
64   protected:
65     bool m_Configured;
66     std::vector< WidgetData > m_Widgets;
67   };
68
69 } // ecapseman
70
71 #endif // __CPPLUGINSWIDGETS__SEEDWIDGET__H__
72
73 // eof - $RCSfile$