#ifndef __CPPLUGINSWIDGETS__SEEDWIDGET__H__
#define __CPPLUGINSWIDGETS__SEEDWIDGET__H__
-#include <plugins/Widgets/cpPluginsWidgets_Export.h>
-#include <cpPlugins/BaseWidget.h>
+#include <plugins/cpPluginsWidgets_Export.h>
+#include <cpPlugins/BaseObjects/Widget.h>
#include <cpExtensions/Interaction/SeedWidget.h>
-#include <vtkImageActorPointPlacer.h>
+#include <cpExtensions/Interaction/ImageSlicePointPlacer.h>
+#include <cpExtensions/Visualization/WindowLevelImageActor.h>
+#include <vtkImageSlice.h>
#include <vtkPointHandleRepresentation3D.h>
#include <vtkSeedRepresentation.h>
#include <vtkSmartPointer.h>
+#include <map>
namespace cpPluginsWidgets
{
/**
*/
class cpPluginsWidgets_EXPORT SeedWidget
- : public cpPlugins::BaseWidget
+ : public cpPlugins::BaseObjects::Widget
{
- cpPluginsObject;
- public:
- typedef SeedWidget Self;
- typedef cpPlugins::BaseWidget Superclass;
- typedef itk::SmartPointer< Self > Pointer;
- typedef itk::SmartPointer< const Self > ConstPointer;
+ cpPluginsObject( SeedWidget, cpPlugins::BaseObjects::Widget, Widgets );
public:
- itkNewMacro( Self );
- itkTypeMacro( SeedWidget, cpPlugins::BaseWidget );
- cpPlugins_Id_Macro( SeedWidget, Widgets );
+ typedef cpExtensions::Visualization::WindowLevelImageActor TImageActor;
- struct WidgetData
+ public:
+ struct TWidgetData
{
- vtkSmartPointer< cpExtensions::Interaction::SeedWidget > Widget;
- vtkSmartPointer< vtkImageActorPointPlacer > Placer;
- vtkSmartPointer< vtkPointHandleRepresentation3D > Handle;
- vtkSmartPointer< vtkSeedRepresentation > Seed;
+ typedef cpExtensions::Interaction::SeedWidget _TWidget;
+ typedef cpExtensions::Interaction::ImageSlicePointPlacer _TPlacer;
- void Configure(
- cpPluginsWidgets::SeedWidget* parent,
- vtkRenderWindowInteractor* interactor, vtkImageActor* actor
+ 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;
+
+ 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:
+ std::map< vtkProp*, vtkRenderWindowInteractor* > m_Props;
+ std::vector< TWidgetData* > m_Widgets;
bool m_Configured;
- std::vector< WidgetData > m_Widgets;
- unsigned int m_InitialNumberOfSeeds;
};
} // ecapseman