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