Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Rendering/vtkMapper.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkMapper.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00058 #ifndef __vtkMapper_h 00059 #define __vtkMapper_h 00060 00061 #include "vtkAbstractMapper3D.h" 00062 #include "vtkScalarsToColors.h" // For VTK_COLOR_MODE_DEFAULT and _MAP_SCALARS 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 //BTX 00288 00290 vtkDataSet *GetInput(); 00291 //ETX 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 // for coloring by a component of a field data array 00331 int ArrayId; 00332 char ArrayName[256]; 00333 int ArrayComponent; 00334 int ArrayAccessMode; 00335 private: 00336 vtkMapper(const vtkMapper&); // Not implemented. 00337 void operator=(const vtkMapper&); // Not implemented. 00338 }; 00339 00340 #endif