00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkMesaRenderer.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 =========================================================================*/ 00045 #ifndef __vtkMesaRenderer_h 00046 #define __vtkMesaRenderer_h 00047 00048 #include "vtkRenderer.h" 00049 00050 class VTK_RENDERING_EXPORT vtkMesaRenderer : public vtkRenderer 00051 { 00052 protected: 00053 int NumberOfLightsBound; 00054 00055 public: 00056 static vtkMesaRenderer *New(); 00057 vtkTypeRevisionMacro(vtkMesaRenderer,vtkRenderer); 00058 void PrintSelf(ostream& os, vtkIndent indent); 00059 00061 void DeviceRender(void); 00062 00065 void ClearLights(void); 00066 00067 void Clear(void); 00068 00070 int UpdateLights(void); 00071 00072 00073 00074 // Create a vtkMesaCamera, will be used by the super class 00075 // to create the correct camera object. 00076 virtual vtkCamera* MakeCamera(); 00077 00078 // Create a vtkMesaLight, will be used by the super class 00079 // to create the correct light object. 00080 virtual vtkLight* MakeLight(); 00081 00082 protected: 00083 vtkMesaRenderer(); 00084 ~vtkMesaRenderer(); 00085 00086 //BTX 00087 // Picking functions to be implemented by sub-classes 00088 virtual void DevicePickRender(); 00089 virtual void StartPick(unsigned int pickFromSize); 00090 virtual void UpdatePickId(); 00091 virtual void DonePick(); 00092 virtual unsigned int GetPickedId(); 00093 virtual float GetPickedZ(); 00094 // Ivars used in picking 00095 class vtkGLPickInfo* PickInfo; 00096 //ETX 00097 float PickedZ; 00098 private: 00099 vtkMesaRenderer(const vtkMesaRenderer&); // Not implemented. 00100 void operator=(const vtkMesaRenderer&); // Not implemented. 00101 }; 00102 00103 #endif