#ifndef __CPEXTENSIONS__VISUALIZATION__IMAGE3DMPR__H__ #define __CPEXTENSIONS__VISUALIZATION__IMAGE3DMPR__H__ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace cpExtensions { namespace Visualization { /** */ class cpExtensions_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 #endif // __CPEXTENSIONS__VISUALIZATION__IMAGE3DMPR__H__ // eof - $RCSfile$