#include <plugins/cpPluginsWidgets_Export.h>
#include <cpPlugins/BaseObjects/Widget.h>
-#include <cpExtensions/Interaction/SeedWidget.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>
+// -------------------------------------------------------------------------
+class vtkPointHandleRepresentation3D;
+class vtkPolyData;
+class vtkSeedRepresentation;
+namespace cpExtensions
+{
+ namespace Interaction
+ {
+ class ImageSlicePointPlacer;
+ class SeedWidget;
+ }
+ namespace Visualization
+ {
+ class WindowLevelImageActor;
+ }
+}
+// -------------------------------------------------------------------------
namespace cpPluginsWidgets
{
/**
cpPluginsObject( SeedWidget, cpPlugins::BaseObjects::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:
- struct TWidgetData
+ virtual void Clear( ) cpPlugins_OVERRIDE;
+ virtual void SetEnabled( bool v ) cpPlugins_OVERRIDE;
+ virtual bool GetEnabled( ) const cpPlugins_OVERRIDE;
+
+ protected:
+ /**
+ */
+ class TCallback
+ : public vtkCommand
{
- typedef cpExtensions::Interaction::SeedWidget _TWidget;
- typedef cpExtensions::Interaction::ImageSlicePointPlacer _TPlacer;
+ public:
+ static TCallback* New( );
+ virtual void Execute(
+ vtkObject* caller, unsigned long id, void* data
+ ) cpPlugins_OVERRIDE;
+ void SetSeeds( vtkPolyData* seeds );
- 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;
+ protected:
+ TCallback( );
+ virtual ~TCallback( );
- TWidgetData(
- SeedWidget* seedWidget,
- TImageActor* actor,
- vtkRenderWindowInteractor* iren
- );
- virtual ~TWidgetData( );
+ protected:
+ vtkPolyData* m_Seeds;
+ std::set< TWidget* > m_Widgets;
};
protected:
- void _Configure( );
-
- template< class _TImage >
- inline void _GD0_Image( _TImage* image );
+ inline void _GD0_Image( vtkImageData* image );
protected:
- std::map< vtkProp*, vtkRenderWindowInteractor* > m_Props;
- std::vector< TWidgetData* > m_Widgets;
- bool m_Configured;
+ std::map< vtkRenderWindowInteractor*, vtkSmartPointer< TWidget > > m_Widgets;
+ vtkSmartPointer< TCallback > m_Command;
};
} // ecapseman