VTK
|
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 "vtkRenderingOpenGLModule.h" // For export macro 00036 #include "vtkProjectedPolyDataRayBounder.h" 00037 #ifdef __APPLE__ 00038 # include <OpenGL/gl.h> //Needed for GLUint 00039 #else 00040 # include <GL/gl.h> //Needed for GLUint 00041 #endif 00042 00043 class vtkWindow; 00044 00045 class VTKRENDERINGOPENGL_EXPORT vtkOpenGLProjectedPolyDataRayBounder : public vtkProjectedPolyDataRayBounder 00046 { 00047 public: 00048 vtkTypeMacro(vtkOpenGLProjectedPolyDataRayBounder, vtkProjectedPolyDataRayBounder); 00049 void PrintSelf(ostream& os, vtkIndent indent); 00050 00053 static vtkOpenGLProjectedPolyDataRayBounder *New(); 00054 00058 void ReleaseGraphicsResources(vtkWindow *); 00059 00060 00061 protected: 00062 vtkOpenGLProjectedPolyDataRayBounder(); 00063 ~vtkOpenGLProjectedPolyDataRayBounder(); 00064 00065 GLuint DisplayList; 00066 float *DepthRangeBuffer; 00067 00069 void Build(vtkPolyData *pdata); 00070 00072 float *Draw(vtkRenderer *ren, vtkMatrix4x4 *matrix); 00073 00074 private: 00075 vtkOpenGLProjectedPolyDataRayBounder(const vtkOpenGLProjectedPolyDataRayBounder&); // Not implemented. 00076 void operator=(const vtkOpenGLProjectedPolyDataRayBounder&); // Not implemented. 00077 }; 00078 00079 #endif