]> Creatis software - cpPlugins.git/blob - plugins/Widgets/SeedWidget.h
7449b948def012cd689370628dc9b586398bfd57
[cpPlugins.git] / plugins / Widgets / SeedWidget.h
1 #ifndef __CPPLUGINSWIDGETS__SEEDWIDGET__H__
2 #define __CPPLUGINSWIDGETS__SEEDWIDGET__H__
3
4 #include <plugins/cpPluginsWidgets_Export.h>
5 #include <cpPlugins/BaseObjects/Widget.h>
6
7 // -------------------------------------------------------------------------
8 class vtkPointHandleRepresentation3D;
9 class vtkPolyData;
10 class vtkSeedRepresentation;
11 namespace cpExtensions
12 {
13   namespace Interaction
14   {
15     class ImageSlicePointPlacer;
16     class SeedWidget;
17   }
18   namespace Visualization
19   {
20     class WindowLevelImageActor;
21   }
22 }
23
24 // -------------------------------------------------------------------------
25 namespace cpPluginsWidgets
26 {
27   /**
28    */
29   class cpPluginsWidgets_EXPORT SeedWidget
30     : public cpPlugins::BaseObjects::Widget
31   {
32     cpPluginsObject( SeedWidget, cpPlugins::BaseObjects::Widget, Widgets );
33
34   public:
35     typedef vtkPointHandleRepresentation3D                     THandleRep;
36     typedef vtkSeedRepresentation                              TSeedRep;
37     typedef cpExtensions::Interaction::SeedWidget              TWidget;
38     typedef cpExtensions::Interaction::ImageSlicePointPlacer   TPlacer;
39     typedef cpExtensions::Visualization::WindowLevelImageActor TImageActor;
40
41   public:
42     virtual void Clear( ) cpPlugins_OVERRIDE;
43     virtual void SetEnabled( bool v ) cpPlugins_OVERRIDE;
44
45   protected:
46     /**
47      */
48     class TCallback
49       : public vtkCommand
50     {
51     public:
52       static TCallback* New( );
53       virtual void Execute(
54         vtkObject* caller, unsigned long id, void* data
55         ) cpPlugins_OVERRIDE;
56       void SetSeeds( vtkPolyData* seeds );
57
58     protected:
59       TCallback( );
60       virtual ~TCallback( );
61
62     protected:
63       vtkPolyData*         m_Seeds;
64       std::set< TWidget* > m_Widgets;
65     };
66
67   protected:
68     inline void _GD0_Image( vtkImageData* image );
69
70   protected:
71     std::map< vtkRenderWindowInteractor*, vtkSmartPointer< TWidget > > m_Widgets;
72     vtkSmartPointer< TCallback > m_Command;
73   };
74
75 } // ecapseman
76
77 #endif // __CPPLUGINSWIDGETS__SEEDWIDGET__H__
78
79 // eof - $RCSfile$