00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00039
#ifndef __vtkWindowLevelLookupTable_h
00040
#define __vtkWindowLevelLookupTable_h
00041
00042
#include "vtkLookupTable.h"
00043
00044 class VTK_COMMON_EXPORT vtkWindowLevelLookupTable :
public vtkLookupTable
00045 {
00046
public:
00047
static vtkWindowLevelLookupTable *
New();
00048 vtkTypeRevisionMacro(vtkWindowLevelLookupTable,
vtkLookupTable);
00049
void PrintSelf(ostream& os,
vtkIndent indent);
00050
00053
void Build();
00054
00056
00058 void SetWindow(
float window) {
00059
if (window < 1e-5f) { window = 1e-5f; }
00060 this->Window = window;
00061 this->
SetTableRange(this->Level - this->Window/2.0f,
00062 this->Level + this->Window/2.0f); };
00063 vtkGetMacro(Window,
float);
00065
00067
00069 void SetLevel(
float level) {
00070 this->Level = level;
00071 this->
SetTableRange(this->Level - this->Window/2.0f,
00072 this->Level + this->Window/2.0f); };
00073 vtkGetMacro(Level,
float);
00075
00077
00079
void SetInverseVideo(
int iv);
00080 vtkGetMacro(InverseVideo,
int);
00081 vtkBooleanMacro(InverseVideo,
int);
00083
00085
00088 vtkSetVector4Macro(MinimumTableValue,
float);
00089 vtkGetVector4Macro(MinimumTableValue,
float);
00091
00093
00096 vtkSetVector4Macro(MaximumTableValue,
float);
00097 vtkGetVector4Macro(MaximumTableValue,
float);
00099
00101
00103 void SetMinimumColor(
int r,
int g,
int b,
int a) {
00104 this->SetMinimumTableValue(r*255.0f,g*255.0f,b*255.0f,a*255.0f); };
00105 void SetMinimumColor(
const unsigned char rgba[4]) {
00106 this->SetMinimumColor(rgba[0],rgba[1],rgba[2],rgba[3]); };
00107 void GetMinimumColor(
unsigned char rgba[4]) {
00108 rgba[0] = int(this->MinimumColor[0]*255);
00109 rgba[1] = int(this->MinimumColor[1]*255);
00110 rgba[2] = int(this->MinimumColor[2]*255);
00111 rgba[3] = int(this->MinimumColor[3]*255); };
00112 unsigned char *GetMinimumColor() {
00113 this->GetMinimumColor(this->MinimumColor);
00114
return this->MinimumColor; };
00116
00118
00120 void SetMaximumColor(
int r,
int g,
int b,
int a) {
00121 this->SetMaximumTableValue(r*255.0f,g*255.0f,b*255.0f,a*255.0f); };
00122 void SetMaximumColor(
const unsigned char rgba[4]) {
00123 this->SetMaximumColor(rgba[0],rgba[1],rgba[2],rgba[3]); };
00124 void GetMaximumColor(
unsigned char rgba[4]) {
00125 rgba[0] = int(this->MaximumColor[0]*255);
00126 rgba[1] = int(this->MaximumColor[1]*255);
00127 rgba[2] = int(this->MaximumColor[2]*255);
00128 rgba[3] = int(this->MaximumColor[3]*255); };
00129 unsigned char *GetMaximumColor() {
00130 this->GetMaximumColor(this->MaximumColor);
00131
return this->MaximumColor; };
00133
00134
protected:
00135 vtkWindowLevelLookupTable(
int sze=256,
int ext=256);
00136 ~vtkWindowLevelLookupTable() {};
00137
00138 float Window;
00139 float Level;
00140 int InverseVideo;
00141 float MaximumTableValue[4];
00142 float MinimumTableValue[4];
00143 unsigned char MinimumColor[4];
00144 unsigned char MaximumColor[4];
00145
private:
00146 vtkWindowLevelLookupTable(
const vtkWindowLevelLookupTable&);
00147
void operator=(
const vtkWindowLevelLookupTable&);
00148 };
00149
00150
#endif
00151
00152