X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=plugins%2FWidgets%2FSeedWidget.h;h=663d539d2cf1e761ee2a3975dc4281cac1afa1f7;hb=0b1cc98bd202845bbfbcfb1ef46a0ec9ba1e33c4;hp=5c9e68a6b8dbe683daba1231afb2bbc97789e723;hpb=201c5026430f9bcc33f9db6a39f5d03db096c860;p=cpPlugins.git diff --git a/plugins/Widgets/SeedWidget.h b/plugins/Widgets/SeedWidget.h index 5c9e68a..663d539 100644 --- a/plugins/Widgets/SeedWidget.h +++ b/plugins/Widgets/SeedWidget.h @@ -1,64 +1,85 @@ #ifndef __CPPLUGINSWIDGETS__SEEDWIDGET__H__ #define __CPPLUGINSWIDGETS__SEEDWIDGET__H__ -#include -#include +#include +#include #include -#include +#include +#include +#include #include #include #include +#include namespace cpPluginsWidgets { /** */ class cpPluginsWidgets_EXPORT SeedWidget - : public cpPlugins::BaseWidget + : public cpPlugins::BaseObjects::Widget { - cpPluginsObject; + cpPluginsObject( SeedWidget, cpPlugins::BaseObjects::Widget, Widgets ); + public: - typedef SeedWidget Self; - typedef cpPlugins::BaseWidget Superclass; - typedef itk::SmartPointer< Self > Pointer; - typedef itk::SmartPointer< const Self > ConstPointer; + typedef cpExtensions::Visualization::WindowLevelImageActor TImageActor; public: - itkNewMacro( Self ); - itkTypeMacro( SeedWidget, cpPlugins::BaseWidget ); - cpPlugins_Id_Macro( SeedWidget, Widgets ); + /* TODO + struct TWidgetData + { + typedef cpExtensions::Interaction::SeedWidget _TWidget; + typedef cpExtensions::Interaction::ImageSlicePointPlacer _TPlacer; + + std::vector< vtkSmartPointer< _TWidget > > Widgets; + std::vector< vtkSmartPointer< _TPlacer > > Placers; + std::vector< vtkSmartPointer< vtkPointHandleRepresentation3D > > Handles; + std::vector< vtkSmartPointer< vtkSeedRepresentation > > Representations; + unsigned int ActualWidgetId; + vtkSmartPointer< vtkCommand > Command; - struct WidgetData + TWidgetData( + SeedWidget* seedWidget, + TImageActor* actor, + vtkRenderWindowInteractor* iren + ); + virtual ~TWidgetData( ); + }; + */ + + struct TWidgetData { - vtkSmartPointer< cpExtensions::Interaction::SeedWidget > Widget; - vtkSmartPointer< vtkImageActorPointPlacer > Placer; - vtkSmartPointer< vtkPointHandleRepresentation3D > Handle; - vtkSmartPointer< vtkSeedRepresentation > Seed; - - void Configure( - cpPluginsWidgets::SeedWidget* parent, - vtkRenderWindowInteractor* interactor, vtkImageActor* actor + typedef cpExtensions::Interaction::SeedWidget _TWidget; + typedef cpExtensions::Interaction::ImageSlicePointPlacer _TPlacer; + + vtkSmartPointer< _TWidget > Widget; + vtkSmartPointer< _TPlacer > Placer; + vtkSmartPointer< vtkPointHandleRepresentation3D > Handle; + vtkSmartPointer< vtkSeedRepresentation > Representation; + + TWidgetData( + SeedWidget* seedWidget, + TImageActor* actor, + vtkRenderWindowInteractor* iren ); - void On( ); - void Off( ); + virtual ~TWidgetData( ); }; protected: - SeedWidget( ); - virtual ~SeedWidget( ); - - virtual void _GenerateData( ) ITK_OVERRIDE; + void _Configure( ); - private: - // Purposely not implemented - SeedWidget( const Self& ); - Self& operator=( const Self& ); + template< class _TImage > + inline void _GD0_Image( _TImage* image ); protected: - bool m_Configured; - std::vector< WidgetData > m_Widgets; - unsigned int m_InitialNumberOfSeeds; + std::map< vtkRenderWindowInteractor*, TWidgetData* > m_Data; + + /* TODO + std::map< vtkProp*, vtkRenderWindowInteractor* > m_Props; + std::vector< TWidgetData* > m_Widgets; + bool m_Configured; + */ }; } // ecapseman