/*========================================================================= Program: GDCM (Grassroots DICOM). A DICOM library Copyright (c) 2006-2011 Mathieu Malaterre All rights reserved. See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ /*========================================================================= Portions of this file are subject to the VTK Toolkit Version 3 copyright. Program: Visualization Toolkit Module: $RCSfile: vtkImageMapToColors16.h,v $ Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ // .NAME vtkImageMapToColors16 - map the input image through a lookup table // .SECTION Description // The vtkImageMapToColors16 filter will take an input image of any valid // scalar type, and map the first component of the image through a // lookup table. The result is an image of type VTK_UNSIGNED_CHAR. // If the lookup table is not set, or is set to NULL, then the input // data will be passed through if it is already of type VTK_UNSIGNED_CHAR. // .SECTION See Also // vtkLookupTable vtkScalarsToColors #ifndef VTKIMAGEMAPTOCOLORS16_H #define VTKIMAGEMAPTOCOLORS16_H #include "vtkThreadedImageAlgorithm.h" class vtkScalarsToColors; class VTK_EXPORT vtkImageMapToColors16 : public vtkThreadedImageAlgorithm { public: static vtkImageMapToColors16 *New(); vtkTypeMacro(vtkImageMapToColors16,vtkThreadedImageAlgorithm); void PrintSelf(ostream& os, vtkIndent indent); // Description: // Set the lookup table. virtual void SetLookupTable(vtkScalarsToColors*); vtkGetObjectMacro(LookupTable,vtkScalarsToColors); // Description: // Set the output format, the default is RGBA. vtkSetMacro(OutputFormat,int); vtkGetMacro(OutputFormat,int); void SetOutputFormatToRGBA() { this->OutputFormat = VTK_RGBA; }; void SetOutputFormatToRGB() { this->OutputFormat = VTK_RGB; }; void SetOutputFormatToLuminanceAlpha() { this->OutputFormat = VTK_LUMINANCE_ALPHA; }; void SetOutputFormatToLuminance() { this->OutputFormat = VTK_LUMINANCE; }; // Description: // Set the component to map for multi-component images (default: 0) vtkSetMacro(ActiveComponent,int); vtkGetMacro(ActiveComponent,int); // Description: // Use the alpha component of the input when computing the alpha component // of the output (useful when converting monochrome+alpha data to RGBA) vtkSetMacro(PassAlphaToOutput,int); vtkBooleanMacro(PassAlphaToOutput,int); vtkGetMacro(PassAlphaToOutput,int); // Description: // We need to check the modified time of the lookup table too. #ifdef VTK_HAS_MTIME_TYPE virtual vtkMTimeType GetMTime(); #else virtual unsigned long GetMTime(); #endif protected: vtkImageMapToColors16(); ~vtkImageMapToColors16(); virtual int RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *); void ThreadedRequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, int extent[6], int id); virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector); vtkScalarsToColors *LookupTable; int OutputFormat; int ActiveComponent; int PassAlphaToOutput; int DataWasPassed; private: vtkImageMapToColors16(const vtkImageMapToColors16&); // Not implemented. void operator=(const vtkImageMapToColors16&); // Not implemented. }; #endif