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 =========================================================================*/ 00026 #ifndef __vtkMesaRenderer_h 00027 #define __vtkMesaRenderer_h 00028 00029 #include "vtkRenderer.h" 00030 00031 class VTK_RENDERING_EXPORT vtkMesaRenderer : public vtkRenderer 00032 { 00033 protected: 00034 int NumberOfLightsBound; 00035 00036 public: 00037 static vtkMesaRenderer *New(); 00038 vtkTypeRevisionMacro(vtkMesaRenderer,vtkRenderer); 00039 void PrintSelf(ostream& os, vtkIndent indent); 00040 00042 void DeviceRender(void); 00043 00046 void ClearLights(void); 00047 00048 void Clear(void); 00049 00051 int UpdateLights(void); 00052 00053 00054 00055 // Create a vtkMesaCamera, will be used by the super class 00056 // to create the correct camera object. 00057 virtual vtkCamera* MakeCamera(); 00058 00059 // Create a vtkMesaLight, will be used by the super class 00060 // to create the correct light object. 00061 virtual vtkLight* MakeLight(); 00062 00063 protected: 00064 vtkMesaRenderer(); 00065 ~vtkMesaRenderer(); 00066 00067 //BTX 00068 // Picking functions to be implemented by sub-classes 00069 virtual void DevicePickRender(); 00070 virtual void StartPick(unsigned int pickFromSize); 00071 virtual void UpdatePickId(); 00072 virtual void DonePick(); 00073 virtual unsigned int GetPickedId(); 00074 virtual unsigned int GetNumPickedIds(); 00075 virtual int GetPickedIds(unsigned int atMost, unsigned int *callerBuffer); 00076 virtual double GetPickedZ(); 00077 // Ivars used in picking 00078 class vtkGLPickInfo* PickInfo; 00079 //ETX 00080 double PickedZ; 00081 private: 00082 vtkMesaRenderer(const vtkMesaRenderer&); // Not implemented. 00083 void operator=(const vtkMesaRenderer&); // Not implemented. 00084 }; 00085 00086 #endif