]> Creatis software - cpPlugins.git/blob - plugins/Widgets/SeedWidget.h
Seed widget cleaned.
[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 #include <cpExtensions/Interaction/SeedWidget.h>
8 #include <cpExtensions/Interaction/ImageSlicePointPlacer.h>
9 #include <cpExtensions/Visualization/WindowLevelImageActor.h>
10 #include <vtkImageSlice.h>
11 #include <vtkPointHandleRepresentation3D.h>
12 #include <vtkSeedRepresentation.h>
13 #include <vtkSmartPointer.h>
14 #include <map>
15
16 namespace cpPluginsWidgets
17 {
18   /**
19    */
20   class cpPluginsWidgets_EXPORT SeedWidget
21     : public cpPlugins::BaseObjects::Widget
22   {
23     cpPluginsObject( SeedWidget, cpPlugins::BaseObjects::Widget, Widgets );
24
25   public:
26     typedef cpExtensions::Visualization::WindowLevelImageActor TImageActor;
27
28   public:
29     /* TODO
30        struct TWidgetData
31        {
32        typedef cpExtensions::Interaction::SeedWidget            _TWidget;
33        typedef cpExtensions::Interaction::ImageSlicePointPlacer _TPlacer;
34
35        std::vector< vtkSmartPointer< _TWidget > >                       Widgets;
36        std::vector< vtkSmartPointer< _TPlacer > >                       Placers;
37        std::vector< vtkSmartPointer< vtkPointHandleRepresentation3D > > Handles;
38        std::vector< vtkSmartPointer< vtkSeedRepresentation > >  Representations;
39        unsigned int ActualWidgetId;
40        vtkSmartPointer< vtkCommand > Command;
41
42        TWidgetData(
43        SeedWidget* seedWidget,
44        TImageActor* actor,
45        vtkRenderWindowInteractor* iren
46        );
47        virtual ~TWidgetData( );
48        };
49     */
50
51     struct TWidgetData
52     {
53       typedef cpExtensions::Interaction::SeedWidget            _TWidget;
54       typedef cpExtensions::Interaction::ImageSlicePointPlacer _TPlacer;
55
56       vtkSmartPointer< _TWidget >                       Widget;
57       vtkSmartPointer< _TPlacer >                       Placer;
58       vtkSmartPointer< vtkPointHandleRepresentation3D > Handle;
59       vtkSmartPointer< vtkSeedRepresentation >  Representation;
60
61       TWidgetData(
62         SeedWidget* seedWidget,
63         TImageActor* actor,
64         vtkRenderWindowInteractor* iren,
65         vtkCommand* cmd
66         );
67       virtual ~TWidgetData( );
68     };
69
70   protected:
71     void _Configure( );
72
73     inline void _GD0_Image( vtkImageData* image );
74
75   protected:
76     std::map< vtkRenderWindowInteractor*, TWidgetData* > m_Data;
77     vtkSmartPointer< vtkCommand > m_Command;
78
79     /* TODO
80        std::map< vtkProp*, vtkRenderWindowInteractor* > m_Props;
81        std::vector< TWidgetData* > m_Widgets;
82        bool m_Configured;
83     */
84   };
85
86 } // ecapseman
87
88 #endif // __CPPLUGINSWIDGETS__SEEDWIDGET__H__
89
90 // eof - $RCSfile$