--- /dev/null
+#ifndef __CPPLUGINS__EXTENSIONS__VISUALIZATION__IMAGE3DMPR__H__
+#define __CPPLUGINS__EXTENSIONS__VISUALIZATION__IMAGE3DMPR__H__
+
+#include <cpPlugins/Extensions/cpPlugins_Extensions_Export.h>
+
+#include <vtkActor.h>
+#include <vtkCellPicker.h>
+#include <vtkHandleWidget.h>
+#include <vtkImageData.h>
+#include <vtkImagePlaneWidget.h>
+#include <vtkOutlineSource.h>
+#include <vtkPointHandleRepresentation3D.h>
+#include <vtkPolyDataMapper.h>
+#include <vtkProperty.h>
+#include <vtkRenderer.h>
+#include <vtkRendererCollection.h>
+#include <vtkRenderWindow.h>
+#include <vtkRenderWindowInteractor.h>
+#include <vtkSeedRepresentation.h>
+#include <vtkSeedWidget.h>
+#include <vtkSmartPointer.h>
+#include <vtkSphereSource.h>
+#include <vtkLookupTable.h>
+
+namespace cpPlugins
+{
+ namespace Extensions
+ {
+ namespace Visualization
+ {
+ /**
+ */
+ class cpPlugins_Extensions_EXPORT Image3DMPR
+ {
+ public:
+ Image3DMPR( );
+ virtual ~Image3DMPR( );
+
+ void SetImage( vtkImageData* image );
+ void SetBackground( double r, double g, double b );
+ void SetSize( unsigned int w, unsigned int h );
+ void SetWindowLevel( double w, double l );
+
+ void AddPolyData( vtkPolyData* pd, double opacity = double( 1 ) );
+ void AddPolyData(
+ vtkPolyData* pd,
+ double r, double g, double b, double opacity = double( 1 )
+ );
+ void AddPolyData(
+ vtkPolyData* pd,
+ vtkLookupTable* lut,
+ double opacity = double( 1 )
+ );
+
+ unsigned int GetNumberOfSeeds( ) const;
+ void GetSeed( int n, double* s ) const;
+ unsigned int AddSeed(
+ const double& x, const double& y, const double& z
+ ) const;
+
+ vtkRenderWindow* GetWindow( ) const;
+ vtkRenderer* GetRenderer( ) const;
+
+ void Start( );
+ void Render( );
+
+ protected:
+ vtkSmartPointer< vtkImageData > m_Image;
+ vtkSmartPointer< vtkOutlineSource > m_Outline;
+ vtkSmartPointer< vtkPolyDataMapper > m_OutlineMapper;
+ vtkSmartPointer< vtkActor > m_OutlineActor;
+ vtkSmartPointer< vtkCellPicker > m_Picker;
+ vtkSmartPointer< vtkImagePlaneWidget > m_WidgetX;
+ vtkSmartPointer< vtkImagePlaneWidget > m_WidgetY;
+ vtkSmartPointer< vtkImagePlaneWidget > m_WidgetZ;
+ vtkSmartPointer< vtkRenderer > m_Renderer;
+ vtkSmartPointer< vtkRenderWindow > m_Window;
+ vtkSmartPointer< vtkRenderWindowInteractor > m_Interactor;
+
+ std::vector< vtkSmartPointer< vtkPolyData > > m_PolyDatas;
+ std::vector< vtkSmartPointer< vtkPolyDataMapper > > m_Mappers;
+ std::vector< vtkSmartPointer< vtkActor > > m_Actors;
+
+ // Create the widget and its representation
+ vtkSmartPointer< vtkPointHandleRepresentation3D >
+ m_SeedHandleRepresentation;
+ vtkSmartPointer< vtkSeedRepresentation > m_SeedRepresentation;
+ vtkSmartPointer< vtkSeedWidget > m_SeedWidget;
+ };
+
+ } // ecapseman
+
+ } // ecapseman
+
+} // ecapseman
+
+#endif // __CPPLUGINS__EXTENSIONS__VISUALIZATION__IMAGE3DMPR__H__
+
+// eof - $RCSfile$