00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00030
#ifndef __vtkScalarsToColors_h
00031
#define __vtkScalarsToColors_h
00032
00033
#include "vtkObject.h"
00034
00035
class vtkDataArray;
00036
class vtkUnsignedCharArray;
00037
00038 class VTK_COMMON_EXPORT vtkScalarsToColors :
public vtkObject
00039 {
00040
public:
00041 vtkTypeRevisionMacro(vtkScalarsToColors,
vtkObject);
00042
void PrintSelf(ostream& os,
vtkIndent indent);
00043
00045 virtual void Build() {};
00046
00048
00049
virtual double *GetRange() = 0;
00050
virtual void SetRange(
double min,
double max) = 0;
00051 void SetRange(
double rng[2])
00052 {this->SetRange(rng[0],rng[1]);}
00054
00057
virtual unsigned char *MapValue(
double v) = 0;
00058
00061
virtual void GetColor(
double v,
double rgb[3]) = 0;
00062
00064
00066 double *GetColor(
double v)
00067 {this->GetColor(v,this->RGB);
return this->RGB;}
00069
00071
00073 virtual double GetOpacity(
double vtkNotUsed(v))
00074 {
return 1.0;}
00076
00078
00081 double GetLuminance(
double x)
00082 {
double rgb[3]; this->GetColor(x,rgb);
00083
return static_cast<double>(rgb[0]*0.30 + rgb[1]*0.59 + rgb[2]*0.11);}
00085
00087
00091
void SetAlpha(
double alpha);
00092 vtkGetMacro(Alpha,
double);
00094
00096
00105
vtkUnsignedCharArray *MapScalars(
vtkDataArray *scalars,
int colorMode,
00106
int component);
00108
00110
00111 vtkSetMacro(VectorMode,
int);
00112 vtkGetMacro(VectorMode,
int);
00113
void SetVectorModeToMagnitude();
00114
void SetVectorModeToComponent();
00116
00118
00120 vtkSetMacro(VectorComponent,
int);
00121 vtkGetMacro(VectorComponent,
int);
00123
00125
00130
void MapScalarsThroughTable(
vtkDataArray *scalars,
00131
unsigned char *output,
00132
int outputFormat);
00133 void MapScalarsThroughTable(
vtkDataArray *scalars,
00134
unsigned char *output)
00135 {this->MapScalarsThroughTable(scalars,output,
VTK_RGBA);}
00137
00138
00140
00141
virtual void MapScalarsThroughTable2(
void *input,
unsigned char *output,
00142
int inputDataType,
int numberOfValues,
00143
int inputIncrement,
00144
int outputFormat) = 0;
00146
00148
00151
virtual vtkUnsignedCharArray *ConvertUnsignedCharToRGBA(
00152
vtkUnsignedCharArray *colors,
int numComp,
int numTuples);
00154
00155
protected:
00156 vtkScalarsToColors();
00157 ~vtkScalarsToColors() {}
00158
00159 double Alpha;
00160
00161
00162 int VectorMode;
00163
00164
00165
00166 int UseMagnitude;
00167 int VectorComponent;
00168
00169
00170 enum VectorModes {
00171 MAGNITUDE=0,
00172 COMPONENT=1
00173 };
00174
00175
00176
private:
00177
double RGB[3];
00178
private:
00179 vtkScalarsToColors(
const vtkScalarsToColors&);
00180
void operator=(
const vtkScalarsToColors&);
00181 };
00182
00183
#endif
00184
00185
00186