00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00057 #ifndef __vtkMapper_h
00058 #define __vtkMapper_h
00059
00060 #include "vtkAbstractMapper3D.h"
00061 #include "vtkScalarsToColors.h"
00062
00063 #define VTK_RESOLVE_OFF 0
00064 #define VTK_RESOLVE_POLYGON_OFFSET 1
00065 #define VTK_RESOLVE_SHIFT_ZBUFFER 2
00066
00067 #define VTK_GET_ARRAY_BY_ID 0
00068 #define VTK_GET_ARRAY_BY_NAME 1
00069
00070 #define VTK_MATERIALMODE_DEFAULT 0
00071 #define VTK_MATERIALMODE_AMBIENT 1
00072 #define VTK_MATERIALMODE_DIFFUSE 2
00073 #define VTK_MATERIALMODE_AMBIENT_AND_DIFFUSE 3
00074
00075 class vtkWindow;
00076 class vtkRenderer;
00077 class vtkActor;
00078 class vtkDataSet;
00079 class vtkFloatArray;
00080 class vtkImageData;
00081
00082 class VTK_RENDERING_EXPORT vtkMapper : public vtkAbstractMapper3D
00083 {
00084 public:
00085 vtkTypeRevisionMacro(vtkMapper,vtkAbstractMapper3D);
00086 void PrintSelf(ostream& os, vtkIndent indent);
00087
00089 void ShallowCopy(vtkAbstractMapper *m);
00090
00093 unsigned long GetMTime();
00094
00097 virtual void Render(vtkRenderer *ren, vtkActor *a) = 0;
00098
00102 virtual void ReleaseGraphicsResources(vtkWindow *) {};
00103
00105
00106 void SetLookupTable(vtkScalarsToColors *lut);
00107 vtkScalarsToColors *GetLookupTable();
00109
00112 virtual void CreateDefaultLookupTable();
00113
00115
00117 vtkSetMacro(ScalarVisibility,int);
00118 vtkGetMacro(ScalarVisibility,int);
00119 vtkBooleanMacro(ScalarVisibility,int);
00121
00123
00127 vtkSetMacro(Static,int);
00128 vtkGetMacro(Static,int);
00129 vtkBooleanMacro(Static,int);
00131
00133
00140 vtkSetMacro(ColorMode,int);
00141 vtkGetMacro(ColorMode,int);
00142 void SetColorModeToDefault()
00143 {this->SetColorMode(VTK_COLOR_MODE_DEFAULT);};
00144 void SetColorModeToMapScalars()
00145 {this->SetColorMode(VTK_COLOR_MODE_MAP_SCALARS);};
00147
00149 const char *GetColorModeAsString();
00150
00152
00155 vtkSetMacro(InterpolateScalarsBeforeMapping,int);
00156 vtkGetMacro(InterpolateScalarsBeforeMapping,int);
00157 vtkBooleanMacro(InterpolateScalarsBeforeMapping,int);
00159
00161
00167 vtkSetMacro(UseLookupTableScalarRange,int);
00168 vtkGetMacro(UseLookupTableScalarRange,int);
00169 vtkBooleanMacro(UseLookupTableScalarRange,int);
00171
00173
00176 vtkSetVector2Macro(ScalarRange,double);
00177 vtkGetVectorMacro(ScalarRange,double,2);
00179
00181
00186 vtkSetMacro(ImmediateModeRendering,int);
00187 vtkGetMacro(ImmediateModeRendering,int);
00188 vtkBooleanMacro(ImmediateModeRendering,int);
00190
00192
00197 static void SetGlobalImmediateModeRendering(int val);
00198 static void GlobalImmediateModeRenderingOn()
00199 {vtkMapper::SetGlobalImmediateModeRendering(1);};
00200 static void GlobalImmediateModeRenderingOff()
00201 {vtkMapper::SetGlobalImmediateModeRendering(0);};
00202 static int GetGlobalImmediateModeRendering();
00204
00205
00207
00214 vtkGetMacro(ForceCompileOnly,int);
00215 void SetForceCompileOnly(int value);
00216
00218
00220
00235 vtkSetMacro(ScalarMode,int);
00236 vtkGetMacro(ScalarMode,int);
00237 void SetScalarModeToDefault() {
00238 this->SetScalarMode(VTK_SCALAR_MODE_DEFAULT);};
00239 void SetScalarModeToUsePointData() {
00240 this->SetScalarMode(VTK_SCALAR_MODE_USE_POINT_DATA);};
00241 void SetScalarModeToUseCellData() {
00242 this->SetScalarMode(VTK_SCALAR_MODE_USE_CELL_DATA);};
00243 void SetScalarModeToUsePointFieldData() {
00244 this->SetScalarMode(VTK_SCALAR_MODE_USE_POINT_FIELD_DATA);};
00245 void SetScalarModeToUseCellFieldData() {
00246 this->SetScalarMode(VTK_SCALAR_MODE_USE_CELL_FIELD_DATA);};
00247 void SetScalarModeToUseFieldData() {
00248 this->SetScalarMode(VTK_SCALAR_MODE_USE_FIELD_DATA); }
00250
00252
00255 void SelectColorArray(int arrayNum);
00256 void SelectColorArray(const char* arrayName);
00258
00260
00262 void ColorByArrayComponent(int arrayNum, int component);
00263 void ColorByArrayComponent(const char* arrayName, int component);
00265
00267
00268 char* GetArrayName() { return this->ArrayName; }
00269 int GetArrayId() { return this->ArrayId; }
00270 int GetArrayAccessMode() { return this->ArrayAccessMode; }
00271 int GetArrayComponent() { return this->ArrayComponent; }
00273
00275 const char *GetScalarModeAsString();
00276
00278
00288 static void SetResolveCoincidentTopology(int val);
00289 static int GetResolveCoincidentTopology();
00290 static void SetResolveCoincidentTopologyToDefault();
00291 static void SetResolveCoincidentTopologyToOff()
00292 {SetResolveCoincidentTopology(VTK_RESOLVE_OFF);}
00293 static void SetResolveCoincidentTopologyToPolygonOffset()
00294 {SetResolveCoincidentTopology(VTK_RESOLVE_POLYGON_OFFSET);}
00295 static void SetResolveCoincidentTopologyToShiftZBuffer()
00296 {SetResolveCoincidentTopology(VTK_RESOLVE_SHIFT_ZBUFFER);}
00298
00300
00303 static void SetResolveCoincidentTopologyPolygonOffsetParameters(
00304 double factor, double units);
00305 static void GetResolveCoincidentTopologyPolygonOffsetParameters(
00306 double& factor, double& units);
00308
00310
00315 static void SetResolveCoincidentTopologyPolygonOffsetFaces(int faces);
00316 static int GetResolveCoincidentTopologyPolygonOffsetFaces();
00318
00320
00322 static void SetResolveCoincidentTopologyZShift(double val);
00323 static double GetResolveCoincidentTopologyZShift();
00325
00327
00329 virtual double *GetBounds();
00330 virtual void GetBounds(double bounds[6])
00331 {this->vtkAbstractMapper3D::GetBounds(bounds);};
00333
00335
00338 void SetRenderTime(double time) {this->RenderTime = time;}
00339 vtkGetMacro(RenderTime, double);
00341
00342
00344
00346 vtkDataSet *GetInput();
00347
00349
00351
00355 vtkDataSet *GetInputAsDataSet()
00356 {return this->GetInput();}
00358
00364 vtkUnsignedCharArray *MapScalars(double alpha);
00365
00367
00368 vtkSetMacro(ScalarMaterialMode,int);
00369 vtkGetMacro(ScalarMaterialMode,int);
00370 void SetScalarMaterialModeToDefault()
00371 {this->SetScalarMaterialMode(VTK_MATERIALMODE_DEFAULT);};
00372 void SetScalarMaterialModeToAmbient()
00373 {this->SetScalarMaterialMode(VTK_MATERIALMODE_AMBIENT);};
00374 void SetScalarMaterialModeToDiffuse()
00375 {this->SetScalarMaterialMode(VTK_MATERIALMODE_DIFFUSE);};
00376 void SetScalarMaterialModeToAmbientAndDiffuse()
00377 {this->SetScalarMaterialMode(VTK_MATERIALMODE_AMBIENT_AND_DIFFUSE);};
00379
00381 const char *GetScalarMaterialModeAsString();
00382
00384
00388 virtual bool GetSupportsSelection()
00389 { return false; }
00391 protected:
00392 vtkMapper();
00393 ~vtkMapper();
00394
00395 vtkUnsignedCharArray *Colors;
00396
00397
00398 int InterpolateScalarsBeforeMapping;
00399
00400 vtkFloatArray *ColorCoordinates;
00401
00402 vtkImageData* ColorTextureMap;
00403 void MapScalarsToTexture(vtkDataArray* scalars, double alpha);
00404
00405 vtkScalarsToColors *LookupTable;
00406 int ScalarVisibility;
00407 vtkTimeStamp BuildTime;
00408 double ScalarRange[2];
00409 int UseLookupTableScalarRange;
00410 int ImmediateModeRendering;
00411 int ColorMode;
00412 int ScalarMode;
00413 int ScalarMaterialMode;
00414
00415 double RenderTime;
00416
00417
00418 int ArrayId;
00419 char ArrayName[256];
00420 int ArrayComponent;
00421 int ArrayAccessMode;
00422
00423 int Static;
00424
00425 int ForceCompileOnly;
00426
00427 private:
00428 vtkMapper(const vtkMapper&);
00429 void operator=(const vtkMapper&);
00430 };
00431
00432 #endif