00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00053 #ifndef __vtkScalarsToColors_h
00054 #define __vtkScalarsToColors_h
00055
00056 #include "vtkObject.h"
00057 #include "vtkUnsignedCharArray.h"
00058
00059 #define VTK_RGBA 4
00060 #define VTK_RGB 3
00061 #define VTK_LUMINANCE 1
00062 #define VTK_LUMINANCE_ALPHA 2
00063
00064 class vtkScalars;
00065
00066 class VTK_EXPORT vtkScalarsToColors : public vtkObject
00067 {
00068 public:
00069 vtkTypeMacro(vtkScalarsToColors,vtkObject);
00070
00072 virtual void Build() {};
00073
00075 virtual float *GetRange() = 0;
00076 virtual void SetRange(float min, float max) = 0;
00077 void SetRange(float rng[2])
00078 {this->SetRange(rng[0],rng[1]);}
00079
00082 virtual unsigned char *MapValue(float v) = 0;
00083
00086 virtual void GetColor(float v, float rgb[3]) = 0;
00087
00090 float *GetColor(float v)
00091 {this->GetColor(v,this->RGB); return this->RGB;}
00092
00095 virtual float GetOpacity(float vtkNotUsed(v))
00096 {return 1.0;}
00097
00101 float GetLuminance(float x)
00102 {float rgb[3]; this->GetColor(x,rgb);
00103 return rgb[0]*0.30 + rgb[1]*0.59 + rgb[2]*0.11;}
00104
00110 void MapScalarsThroughTable(vtkScalars *scalars,
00111 unsigned char *output,
00112 int outputFormat);
00113 void MapScalarsThroughTable(vtkScalars *scalars,
00114 unsigned char *output)
00115 {this->MapScalarsThroughTable(scalars,output,VTK_RGBA);}
00116
00117
00119 virtual void MapScalarsThroughTable2(void *input, unsigned char *output,
00120 int inputDataType, int numberOfValues,
00121 int inputIncrement,
00122 int outputFormat) = 0;
00123
00124 protected:
00125 vtkScalarsToColors() {};
00126 ~vtkScalarsToColors() {};
00127 vtkScalarsToColors(const vtkScalarsToColors &) {};
00128 void operator=(const vtkScalarsToColors &) {};
00129
00130 private:
00131 float RGB[3];
00132 };
00133
00134 #endif
00135
00136
00137