]> Creatis software - cpPlugins.git/blob - plugins/Widgets/SeedWidget.h
0a0ccb928828c6fb6b89d836825b776114a177e9
[cpPlugins.git] / plugins / Widgets / SeedWidget.h
1 #ifndef __CPPLUGINSWIDGETS__SEEDWIDGET__H__
2 #define __CPPLUGINSWIDGETS__SEEDWIDGET__H__
3
4 #include <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     virtual bool GetEnabled( ) const cpPlugins_OVERRIDE;
45
46   protected:
47     /**
48      */
49     class TCallback
50       : public vtkCommand
51     {
52     public:
53       static TCallback* New( );
54       virtual void Execute(
55         vtkObject* caller, unsigned long id, void* data
56         ) cpPlugins_OVERRIDE;
57       void SetSeeds( vtkPolyData* seeds );
58
59     protected:
60       TCallback( );
61       virtual ~TCallback( );
62
63     protected:
64       vtkPolyData*         m_Seeds;
65       std::set< TWidget* > m_Widgets;
66     };
67
68   protected:
69     inline void _GD0_Image( vtkImageData* image );
70
71   protected:
72     std::map< vtkRenderWindowInteractor*, vtkSmartPointer< TWidget > > m_Widgets;
73     vtkSmartPointer< TCallback > m_Command;
74   };
75
76 } // ecapseman
77
78 #endif // __CPPLUGINSWIDGETS__SEEDWIDGET__H__
79
80 // eof - $RCSfile$