00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkOpenGLProjectedPolyDataRayBounder.h 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 =========================================================================*/ 00032 #ifndef __vtkOpenGLProjectedPolyDataRayBounder_h 00033 #define __vtkOpenGLProjectedPolyDataRayBounder_h 00034 00035 #include "vtkProjectedPolyDataRayBounder.h" 00036 #ifndef VTK_IMPLEMENT_MESA_CXX 00037 #ifdef __APPLE__ 00038 #include <OpenGL/gl.h> //Needed for GLUint 00039 #else 00040 #include <GL/gl.h> //Needed for GLUint 00041 #endif 00042 #endif 00043 00044 class vtkWindow; 00045 00046 class VTK_RENDERING_EXPORT vtkOpenGLProjectedPolyDataRayBounder : public vtkProjectedPolyDataRayBounder 00047 { 00048 public: 00049 vtkTypeMacro(vtkOpenGLProjectedPolyDataRayBounder,vtkProjectedPolyDataRayBounder); 00050 void PrintSelf(ostream& os, vtkIndent indent); 00051 00054 static vtkOpenGLProjectedPolyDataRayBounder *New(); 00055 00059 void ReleaseGraphicsResources(vtkWindow *); 00060 00061 00062 protected: 00063 vtkOpenGLProjectedPolyDataRayBounder(); 00064 ~vtkOpenGLProjectedPolyDataRayBounder(); 00065 00066 GLuint DisplayList; 00067 float *DepthRangeBuffer; 00068 00070 void Build( vtkPolyData *pdata ); 00071 00073 float *Draw( vtkRenderer *ren, vtkMatrix4x4 *matrix ); 00074 00075 private: 00076 vtkOpenGLProjectedPolyDataRayBounder(const vtkOpenGLProjectedPolyDataRayBounder&); // Not implemented. 00077 void operator=(const vtkOpenGLProjectedPolyDataRayBounder&); // Not implemented. 00078 }; 00079 00080 #endif