Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkOpenGLProjectedPolyDataRayBounder.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkOpenGLProjectedPolyDataRayBounder.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 =========================================================================*/
00046 #ifndef __vtkOpenGLProjectedPolyDataRayBounder_h
00047 #define __vtkOpenGLProjectedPolyDataRayBounder_h
00048 
00049 #include "vtkProjectedPolyDataRayBounder.h"
00050 #ifndef VTK_IMPLEMENT_MESA_CXX
00051   #ifdef __APPLE__
00052     #include <OpenGL/gl.h> //Needed for GLUint
00053   #else
00054     #include <GL/gl.h> //Needed for GLUint
00055   #endif
00056 #endif
00057 
00058 class vtkWindow;
00059 
00060 class VTK_RENDERING_EXPORT vtkOpenGLProjectedPolyDataRayBounder : public vtkProjectedPolyDataRayBounder
00061 {
00062 public:
00063   vtkTypeRevisionMacro(vtkOpenGLProjectedPolyDataRayBounder,vtkProjectedPolyDataRayBounder);    
00064   void PrintSelf(ostream& os, vtkIndent indent);
00065 
00068   static vtkOpenGLProjectedPolyDataRayBounder *New();
00069 
00073   void ReleaseGraphicsResources(vtkWindow *);
00074 
00075 
00076 protected:
00077   vtkOpenGLProjectedPolyDataRayBounder();
00078   ~vtkOpenGLProjectedPolyDataRayBounder();
00079 
00080   GLuint    DisplayList;
00081   float     *DepthRangeBuffer;
00082 
00084   void Build( vtkPolyData *pdata );
00085 
00087   float *Draw( vtkRenderer *ren, vtkMatrix4x4 *matrix );
00088 
00089 private:
00090   vtkOpenGLProjectedPolyDataRayBounder(const vtkOpenGLProjectedPolyDataRayBounder&);  // Not implemented.
00091   void operator=(const vtkOpenGLProjectedPolyDataRayBounder&);  // Not implemented.
00092 };
00093 
00094 #endif