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

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