#ifndef __cpPluginsVTKWidgets__SeedWidget__h__ #define __cpPluginsVTKWidgets__SeedWidget__h__ #include #include #include // ------------------------------------------------------------------------- class vtkImageData; class vtkPointHandleRepresentation3D; class vtkPolyData; class vtkSeedRepresentation; namespace cpExtensions { namespace Interaction { class ImageSlicePointPlacer; class SeedWidget; } namespace Visualization { class WindowLevelImageActor; } } // ------------------------------------------------------------------------- namespace cpPluginsVTKWidgets { /** */ class cpPlugins_VTKWidgets_EXPORT SeedWidget : public cpPlugins::Pipeline::Widget { cpPluginsObject( SeedWidget, cpPlugins::Pipeline::Widget, Widgets ); public: typedef vtkPointHandleRepresentation3D THandleRep; typedef vtkSeedRepresentation TSeedRep; typedef cpExtensions::Interaction::SeedWidget TWidget; typedef cpExtensions::Interaction::ImageSlicePointPlacer TPlacer; typedef cpExtensions::Visualization::WindowLevelImageActor TImageActor; public: virtual void Clear( ) cpPlugins_OVERRIDE; virtual void SetEnabled( bool v ) cpPlugins_OVERRIDE; virtual bool GetEnabled( ) const cpPlugins_OVERRIDE; protected: /** */ class TCallback : public vtkCommand { public: static TCallback* New( ); virtual void Execute( vtkObject* caller, unsigned long id, void* data ) cpPlugins_OVERRIDE; void SetSeeds( vtkPolyData* seeds ); protected: TCallback( ); virtual ~TCallback( ); protected: vtkPolyData* m_Seeds; std::set< TWidget* > m_Widgets; }; protected: inline void _GD0_Image( vtkImageData* image ); protected: std::map< vtkRenderWindowInteractor*, vtkSmartPointer< TWidget > > m_Widgets; vtkSmartPointer< TCallback > m_Command; }; } // ecapseman #endif // __cpPluginsVTKWidgets__SeedWidget__h__ // eof - $RCSfile$