#ifndef __cpExtensions__Visualization__LUTImageActor__h__ #define __cpExtensions__Visualization__LUTImageActor__h__ #include #include // ------------------------------------------------------------------------- class vtkImageMapToColors; class vtkLookupTable; // ------------------------------------------------------------------------- namespace cpExtensions { namespace Algorithms { class ImageBlender; } namespace Visualization { /** */ class cpExtensions_EXPORT LUTImageActor : public ImageActor { public: typedef LUTImageActor Self; protected: typedef cpExtensions::Algorithms::ImageBlender _TImageBlender; public: vtkTypeMacro( LUTImageActor, ImageActor ); public: static Self* New( ); unsigned int GetNumberOfImages( ) const; vtkImageData* GetImage( unsigned int id ); const vtkImageData* GetImage( unsigned int id ) const; unsigned int GetImageId( vtkImageData* image ) const; void GetLUTColor( unsigned int id, double& r, double& g, double& b, double& a ) const; void GetLUTColor( vtkImageData* image, double& r, double& g, double& b, double& a ) const; void SetLUTColor( unsigned int id, double r, double g, double b, double a ); void SetLUTColor( vtkImageData* image, double r, double g, double b, double a ); unsigned int AddImage( vtkImageData* image, double r = 1, double g = 0, double b = 0, double a = 1 ); protected: LUTImageActor( ); virtual ~LUTImageActor( ); private: // Purposely not implemented LUTImageActor( const Self& ); Self& operator=( const Self& ); protected: vtkSmartPointer< vtkLookupTable > m_LUT; vtkSmartPointer< _TImageBlender > m_Blender; vtkSmartPointer< vtkImageMapToColors > m_ImageMap; std::vector< vtkSmartPointer< vtkImageData > > m_Images; }; } // ecapseman } // ecapseman #endif // __cpExtensions__Visualization__LUTImageActor__h__ // eof - $RCSfile$