00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00058
#ifndef __vtkMapper_h
00059
#define __vtkMapper_h
00060
00061
#include "vtkAbstractMapper3D.h"
00062
#include "vtkScalarsToColors.h"
00063
00064 #define VTK_RESOLVE_OFF 0
00065 #define VTK_RESOLVE_POLYGON_OFFSET 1
00066 #define VTK_RESOLVE_SHIFT_ZBUFFER 2
00067
00068 #define VTK_GET_ARRAY_BY_ID 0
00069 #define VTK_GET_ARRAY_BY_NAME 1
00070
00071
class vtkWindow;
00072
class vtkRenderer;
00073
class vtkActor;
00074
class vtkDataSet;
00075
00076 class VTK_RENDERING_EXPORT vtkMapper :
public vtkAbstractMapper3D
00077 {
00078
public:
00079 vtkTypeRevisionMacro(vtkMapper,
vtkAbstractMapper3D);
00080
void PrintSelf(ostream& os,
vtkIndent indent);
00081
00083
void ShallowCopy(
vtkAbstractMapper *m);
00084
00087
unsigned long GetMTime();
00088
00091
virtual void Render(
vtkRenderer *ren,
vtkActor *a) = 0;
00092
00096 virtual void ReleaseGraphicsResources(
vtkWindow *) {};
00097
00099
00100
void SetLookupTable(
vtkScalarsToColors *lut);
00101
vtkScalarsToColors *GetLookupTable();
00103
00106
virtual void CreateDefaultLookupTable();
00107
00109
00111 vtkSetMacro(ScalarVisibility,
int);
00112 vtkGetMacro(ScalarVisibility,
int);
00113 vtkBooleanMacro(ScalarVisibility,
int);
00115
00117
00124 vtkSetMacro(ColorMode,
int);
00125 vtkGetMacro(ColorMode,
int);
00126 void SetColorModeToDefault()
00127 {this->SetColorMode(
VTK_COLOR_MODE_DEFAULT);};
00128 void SetColorModeToMapScalars()
00129 {this->SetColorMode(
VTK_COLOR_MODE_MAP_SCALARS);};
00131
00133
const char *GetColorModeAsString();
00134
00136
00142 vtkSetMacro(UseLookupTableScalarRange,
int);
00143 vtkGetMacro(UseLookupTableScalarRange,
int);
00144 vtkBooleanMacro(UseLookupTableScalarRange,
int);
00146
00148
00151 vtkSetVector2Macro(ScalarRange,
float);
00152 vtkGetVectorMacro(ScalarRange,
float,2);
00154
00156
00161 vtkSetMacro(ImmediateModeRendering,
int);
00162 vtkGetMacro(ImmediateModeRendering,
int);
00163 vtkBooleanMacro(ImmediateModeRendering,
int);
00165
00167
00172
static void SetGlobalImmediateModeRendering(
int val);
00173 static void GlobalImmediateModeRenderingOn()
00174 {
vtkMapper::SetGlobalImmediateModeRendering(1);};
00175 static void GlobalImmediateModeRenderingOff()
00176 {
vtkMapper::SetGlobalImmediateModeRendering(0);};
00177
static int GetGlobalImmediateModeRendering();
00179
00181
00191 vtkSetMacro(ScalarMode,
int);
00192 vtkGetMacro(ScalarMode,
int);
00193 void SetScalarModeToDefault() {
00194 this->SetScalarMode(
VTK_SCALAR_MODE_DEFAULT);};
00195 void SetScalarModeToUsePointData() {
00196 this->SetScalarMode(
VTK_SCALAR_MODE_USE_POINT_DATA);};
00197 void SetScalarModeToUseCellData() {
00198 this->SetScalarMode(
VTK_SCALAR_MODE_USE_CELL_DATA);};
00199 void SetScalarModeToUsePointFieldData() {
00200 this->SetScalarMode(
VTK_SCALAR_MODE_USE_POINT_FIELD_DATA);};
00201 void SetScalarModeToUseCellFieldData() {
00202 this->SetScalarMode(
VTK_SCALAR_MODE_USE_CELL_FIELD_DATA);};
00204
00206
00209
void SelectColorArray(
int arrayNum);
00210
void SelectColorArray(
const char* arrayName);
00212
00214
00216
void ColorByArrayComponent(
int arrayNum,
int component);
00217
void ColorByArrayComponent(
const char* arrayName,
int component);
00219
00221
00222 char* GetArrayName() {
return this->ArrayName; }
00223 int GetArrayId() {
return this->ArrayId; }
00224 int GetArrayAccessMode() {
return this->ArrayAccessMode; }
00225 int GetArrayComponent() {
return this->ArrayComponent; }
00227
00229
const char *GetScalarModeAsString();
00230
00232
00242
static void SetResolveCoincidentTopology(
int val);
00243
static int GetResolveCoincidentTopology();
00244
static void SetResolveCoincidentTopologyToDefault();
00245 static void SetResolveCoincidentTopologyToOff()
00246 {SetResolveCoincidentTopology(
VTK_RESOLVE_OFF);}
00247 static void SetResolveCoincidentTopologyToPolygonOffset()
00248 {SetResolveCoincidentTopology(
VTK_RESOLVE_POLYGON_OFFSET);}
00249 static void SetResolveCoincidentTopologyToShiftZBuffer()
00250 {SetResolveCoincidentTopology(
VTK_RESOLVE_SHIFT_ZBUFFER);}
00252
00254
00257
static void SetResolveCoincidentTopologyPolygonOffsetParameters(
float factor,
00258
float units);
00259
static void GetResolveCoincidentTopologyPolygonOffsetParameters(
float& factor,
00260
float& units);
00262
00264
00266
static void SetResolveCoincidentTopologyZShift(
double val);
00267
static double GetResolveCoincidentTopologyZShift();
00269
00271
00273
virtual float *
GetBounds();
00274 virtual void GetBounds(
float bounds[6])
00275 {this->
vtkAbstractMapper3D::GetBounds(bounds);};
00277
00279
00282 void SetRenderTime(
float time) {this->RenderTime = time;}
00283 vtkGetMacro(RenderTime,
float);
00285
00286
00288
00290
vtkDataSet *GetInput();
00291
00293
00295
00299 vtkDataSet *GetInputAsDataSet()
00300 {
return this->GetInput();}
00302
00308
vtkUnsignedCharArray *MapScalars(
float alpha);
00309
00311
virtual void Update();
00312
00313
protected:
00314 vtkMapper();
00315 ~vtkMapper();
00316
00317 vtkUnsignedCharArray *Colors;
00318
00319 vtkScalarsToColors *LookupTable;
00320 int ScalarVisibility;
00321 vtkTimeStamp BuildTime;
00322 float ScalarRange[2];
00323 int UseLookupTableScalarRange;
00324 int ImmediateModeRendering;
00325 int ColorMode;
00326 int ScalarMode;
00327
00328 float RenderTime;
00329
00330
00331 int ArrayId;
00332 char ArrayName[256];
00333 int ArrayComponent;
00334 int ArrayAccessMode;
00335
private:
00336 vtkMapper(
const vtkMapper&);
00337
void operator=(
const vtkMapper&);
00338 };
00339
00340
#endif