00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkMesaRenderer.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00029 #ifndef __vtkMesaRenderer_h 00030 #define __vtkMesaRenderer_h 00031 00032 #include "vtkRenderer.h" 00033 00034 class VTK_RENDERING_EXPORT vtkMesaRenderer : public vtkRenderer 00035 { 00036 protected: 00037 int NumberOfLightsBound; 00038 00039 public: 00040 static vtkMesaRenderer *New(); 00041 vtkTypeRevisionMacro(vtkMesaRenderer,vtkRenderer); 00042 void PrintSelf(ostream& os, vtkIndent indent); 00043 00045 void DeviceRender(void); 00046 00049 void ClearLights(void); 00050 00051 void Clear(void); 00052 00054 int UpdateLights(void); 00055 00056 00057 00058 // Create a vtkMesaCamera, will be used by the super class 00059 // to create the correct camera object. 00060 virtual vtkCamera* MakeCamera(); 00061 00062 // Create a vtkMesaLight, will be used by the super class 00063 // to create the correct light object. 00064 virtual vtkLight* MakeLight(); 00065 00066 protected: 00067 vtkMesaRenderer(); 00068 ~vtkMesaRenderer(); 00069 00070 //BTX 00071 // Picking functions to be implemented by sub-classes 00072 virtual void DevicePickRender(); 00073 virtual void StartPick(unsigned int pickFromSize); 00074 virtual void UpdatePickId(); 00075 virtual void DonePick(); 00076 virtual unsigned int GetPickedId(); 00077 virtual double GetPickedZ(); 00078 // Ivars used in picking 00079 class vtkGLPickInfo* PickInfo; 00080 //ETX 00081 double PickedZ; 00082 private: 00083 vtkMesaRenderer(const vtkMesaRenderer&); // Not implemented. 00084 void operator=(const vtkMesaRenderer&); // Not implemented. 00085 }; 00086 00087 #endif