VTK
dox/Rendering/vtkOpenGLProjectedPolyDataRayBounder.h
Go to the documentation of this file.
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