]> Creatis software - cpPlugins.git/blob - plugins/VTKWidgets/SplineWidget.h
e1e68933b5570c37bed136a0345ff81ff2b1c08f
[cpPlugins.git] / plugins / VTKWidgets / SplineWidget.h
1 #ifndef __cpPluginsVTKWidgets__SplineWidget__h__
2 #define __cpPluginsVTKWidgets__SplineWidget__h__
3
4 #include <cpPluginsVTKWidgets_Export.h>
5 #include <cpPlugins/BaseObjects/Widget.h>
6
7 #include <vtkSmartPointer.h>
8
9 /* TODO
10    #include <cpExtensions/Interaction/SplineWidget.h>
11    #include <cpExtensions/Interaction/ImageSlicePointPlacer.h>
12    #include <cpExtensions/Visualization/WindowLevelImageActor.h>
13    #include <vtkImageSlice.h>
14    #include <vtkPointHandleRepresentation3D.h>
15    #include <vtkSeedRepresentation.h>
16    #include <map>
17 */
18
19 // -------------------------------------------------------------------------
20 class vtkPolyData;
21
22 // -------------------------------------------------------------------------
23 namespace cpPluginsVTKWidgets
24 {
25   /**
26    */
27   class cpPluginsVTKWidgets_EXPORT SplineWidget
28     : public cpPlugins::BaseObjects::Widget
29   {
30     cpPluginsObject( SplineWidget, cpPlugins::BaseObjects::Widget, Widgets );
31
32   public:
33     virtual void Clear( ) cpPlugins_OVERRIDE;
34     virtual void SetEnabled( bool v ) cpPlugins_OVERRIDE;
35     virtual bool GetEnabled( ) const cpPlugins_OVERRIDE;
36
37   protected:
38     bool m_Configured;
39     vtkSmartPointer< vtkPolyData > m_Contour;
40
41     /* TODO:
42        public:
43        typedef cpExtensions::Visualization::WindowLevelImageActor TImageActor;
44
45        public:
46        struct TWidgetData
47        {
48        typedef cpExtensions::Interaction::SplineWidget            _TWidget;
49        typedef cpExtensions::Interaction::ImageSlicePointPlacer _TPlacer;
50
51        std::vector< vtkSmartPointer< _TWidget > >                       Widgets;
52        std::vector< vtkSmartPointer< _TPlacer > >                       Placers;
53        std::vector< vtkSmartPointer< vtkPointHandleRepresentation3D > > Handles;
54        std::vector< vtkSmartPointer< vtkSeedRepresentation > >  Representations;
55        unsigned int ActualWidgetId;
56        vtkSmartPointer< vtkCommand > Command;
57
58        TWidgetData(
59        SplineWidget* seedWidget,
60        TImageActor* actor,
61        vtkRenderWindowInteractor* iren
62        );
63        virtual ~TWidgetData( );
64        };
65
66        protected:
67        void _Configure( );
68
69        template< class _TImage >
70        inline void _GD0_Image( _TImage* image );
71
72        protected:
73        std::map< vtkProp*, vtkRenderWindowInteractor* > m_Props;
74        std::vector< TWidgetData* > m_Widgets;
75        bool m_Configured;
76     */
77   };
78
79 } // ecapseman
80
81 #endif // __cpPluginsVTKWidgets__SplineWidget__h__
82
83 // eof - $RCSfile$