Common/vtkLookupTable.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00038 #ifndef __vtkLookupTable_h
00039 #define __vtkLookupTable_h
00040
00041 #include "vtkScalarsToColors.h"
00042
00043 #include "vtkUnsignedCharArray.h"
00044
00045 #define VTK_RAMP_LINEAR 0
00046 #define VTK_RAMP_SCURVE 1
00047 #define VTK_RAMP_SQRT 2
00048 #define VTK_SCALE_LINEAR 0
00049 #define VTK_SCALE_LOG10 1
00050
00051 class VTK_COMMON_EXPORT vtkLookupTable : public vtkScalarsToColors
00052 {
00053 public:
00056 static vtkLookupTable *New();
00057
00058 vtkTypeRevisionMacro(vtkLookupTable,vtkScalarsToColors);
00059 void PrintSelf(ostream& os, vtkIndent indent);
00060
00062 int Allocate(int sz=256, int ext=256);
00063
00066 virtual void Build();
00067
00073 virtual void ForceBuild();
00074
00076
00083 vtkSetMacro(Ramp,int);
00084 void SetRampToLinear() { this->SetRamp(VTK_RAMP_LINEAR); };
00085 void SetRampToSCurve() { this->SetRamp(VTK_RAMP_SCURVE); };
00086 void SetRampToSQRT() { this->SetRamp(VTK_RAMP_SQRT); };
00087 vtkGetMacro(Ramp,int);
00089
00091
00094 void SetScale(int scale);
00095 void SetScaleToLinear() { this->SetScale(VTK_SCALE_LINEAR); };
00096 void SetScaleToLog10() { this->SetScale(VTK_SCALE_LOG10); };
00097 vtkGetMacro(Scale,int);
00099
00101
00105 void SetTableRange(float r[2]);
00106 virtual void SetTableRange(float min, float max);
00107 vtkGetVectorMacro(TableRange,float,2);
00109
00111
00113 vtkSetVector2Macro(HueRange,float);
00114 vtkGetVector2Macro(HueRange,float);
00116
00118
00120 vtkSetVector2Macro(SaturationRange,float);
00121 vtkGetVector2Macro(SaturationRange,float);
00123
00125
00127 vtkSetVector2Macro(ValueRange,float);
00128 vtkGetVector2Macro(ValueRange,float);
00130
00132
00134 vtkSetVector2Macro(AlphaRange,float);
00135 vtkGetVector2Macro(AlphaRange,float);
00137
00139 unsigned char *MapValue(float v);
00140
00142
00144 float *GetColor(float x) { return vtkScalarsToColors::GetColor(x); }
00145 void GetColor(float x, float rgb[3]);
00147
00150 float GetOpacity(float v);
00151
00153 virtual vtkIdType GetIndex(float v);
00154
00156
00157 void SetNumberOfTableValues(vtkIdType number);
00158 vtkIdType GetNumberOfTableValues() { return this->NumberOfColors; };
00160
00165 void SetTableValue(vtkIdType indx, float rgba[4]);
00166
00169 void SetTableValue(vtkIdType indx, float r, float g, float b, float a=1.0);
00170
00173 float *GetTableValue(vtkIdType id);
00174
00177 void GetTableValue(vtkIdType id, float rgba[4]);
00178
00180
00182 unsigned char *GetPointer(const vtkIdType id) {
00183 return this->Table->GetPointer(4*id); };
00185
00190 unsigned char *WritePointer(const vtkIdType id, const int number);
00191
00193
00195 float *GetRange() { return this->GetTableRange(); };
00196 void SetRange(float min, float max) { this->SetTableRange(min, max); };
00197 void SetRange(float rng[2]) { this->SetRange(rng[0], rng[1]); };
00199
00201
00205 vtkSetClampMacro(NumberOfColors,vtkIdType,2,VTK_LARGE_ID);
00206 vtkGetMacro(NumberOfColors,vtkIdType);
00208
00210
00211 void MapScalarsThroughTable2(void *input, unsigned char *output,
00212 int inputDataType, int numberOfValues,
00213 int inputIncrement, int outputIncrement);
00215
00217 void DeepCopy(vtkLookupTable *lut);
00218
00219 protected:
00220 vtkLookupTable(int sze=256, int ext=256);
00221 ~vtkLookupTable();
00222
00223 vtkIdType NumberOfColors;
00224 vtkUnsignedCharArray *Table;
00225 float TableRange[2];
00226 float HueRange[2];
00227 float SaturationRange[2];
00228 float ValueRange[2];
00229 float AlphaRange[2];
00230 int Scale;
00231 int Ramp;
00232 vtkTimeStamp InsertTime;
00233 vtkTimeStamp BuildTime;
00234 float RGBA[4];
00235
00236 private:
00237 vtkLookupTable(const vtkLookupTable&);
00238 void operator=(const vtkLookupTable&);
00239 };
00240
00241 inline unsigned char *vtkLookupTable::WritePointer(const vtkIdType id,
00242 const int number)
00243 {
00244 return this->Table->WritePointer(4*id,4*number);
00245 }
00246
00247 #endif
00248
00249
00250