#ifndef __CPEXTENSIONS__VISUALIZATION__MPRACTORS__H__ #define __CPEXTENSIONS__VISUALIZATION__MPRACTORS__H__ #include #include #include namespace cpExtensions { namespace Visualization { /** */ class cpExtensions_EXPORT MPRActors : public vtkPropCollection { public: typedef MPRActors Self; public: vtkTypeMacro( MPRActors, vtkPropCollection ); public: // Creation static MPRActors* New( ); ImageSliceActors* GetSliceActors( const int& i ) const; int AddInputConnection( vtkAlgorithmOutput* aout ); int AddInputData( vtkImageData* new_image ); unsigned int GetNumberOfImages( ) const; void PushActorsInto( vtkRenderWindow* x, vtkRenderWindow* y, vtkRenderWindow* z, vtkRenderWindow* w ); void PopActorsFrom( vtkRenderWindow* x, vtkRenderWindow* y, vtkRenderWindow* z, vtkRenderWindow* w ); // Color lookup table void SetLookupTableAsColor( unsigned int i, double r, double g, double b ); // Slice access int GetSliceNumberMinValue( const int& axis ) const; int GetSliceNumberMaxValue( const int& axis ) const; int GetSlice( const int& axis ) const; void SetSlice( const int& axis, const int& slice ); void SetSlice( const int& axis, const double& slice ); void ResetSlices( ); protected: MPRActors( ); virtual ~MPRActors( ); vtkImageData* _Image( unsigned int i ) const; void _Update( unsigned int i ); static void _SetSlices( double* pos, int axis, void* data ); private: // Purposely not implemented MPRActors( const Self& ); Self& operator=( const Self& ); protected: vtkSmartPointer< vtkActor > ImageOutlineActor; vtkSmartPointer< ImageSliceActors > Slices[ 2 ][ 3 ]; }; } // ecapseman } // ecapseman #endif // __CPEXTENSIONS__VISUALIZATION__MPRACTORS__H__ // eof - $RCSfile$