00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00026 #ifndef __vtkOpenGLPolyDataMapper_h
00027 #define __vtkOpenGLPolyDataMapper_h
00028
00029 #include "vtkPolyDataMapper.h"
00030
00031 #include "vtkOpenGL.h"
00032
00033 class vtkCellArray;
00034 class vtkPoints;
00035 class vtkProperty;
00036 class vtkRenderWindow;
00037 class vtkOpenGLRenderer;
00038 class vtkOpenGLTexture;
00039
00040 class VTK_RENDERING_EXPORT vtkOpenGLPolyDataMapper : public vtkPolyDataMapper
00041 {
00042 public:
00043 static vtkOpenGLPolyDataMapper *New();
00044 vtkTypeRevisionMacro(vtkOpenGLPolyDataMapper,vtkPolyDataMapper);
00045 virtual void PrintSelf(ostream& os, vtkIndent indent);
00046
00048 virtual void RenderPiece(vtkRenderer *ren, vtkActor *a);
00049
00053 void ReleaseGraphicsResources(vtkWindow *);
00054
00056 virtual int Draw(vtkRenderer *ren, vtkActor *a);
00057
00058 protected:
00059 vtkOpenGLPolyDataMapper();
00060 ~vtkOpenGLPolyDataMapper();
00061
00062 void DrawPoints(int idx,
00063 vtkPoints *p,
00064 vtkDataArray *n,
00065 vtkUnsignedCharArray *c,
00066 vtkDataArray *t,
00067 vtkIdType &cellNum,
00068 int &noAbort,
00069 vtkCellArray *ca,
00070 vtkRenderer *ren);
00071
00072 void DrawLines(int idx,
00073 vtkPoints *p,
00074 vtkDataArray *n,
00075 vtkUnsignedCharArray *c,
00076 vtkDataArray *t,
00077 vtkIdType &cellNum,
00078 int &noAbort,
00079 vtkCellArray *ca,
00080 vtkRenderer *ren);
00081
00082 void DrawPolygons(int idx,
00083 vtkPoints *p,
00084 vtkDataArray *n,
00085 vtkUnsignedCharArray *c,
00086 vtkDataArray *t,
00087 vtkIdType &cellNum,
00088 int &noAbort,
00089 GLenum rep,
00090 vtkCellArray *ca,
00091 vtkRenderer *ren);
00092
00093 void DrawTStrips(int idx,
00094 vtkPoints *p,
00095 vtkDataArray *n,
00096 vtkUnsignedCharArray *c,
00097 vtkDataArray *t,
00098 vtkIdType &cellNum,
00099 int &noAbort,
00100 GLenum rep,
00101 vtkCellArray *ca,
00102 vtkRenderer *ren);
00103
00104 vtkIdType TotalCells;
00105 int ListId;
00106 vtkOpenGLTexture* InternalColorTexture;
00107
00108 private:
00109 vtkOpenGLPolyDataMapper(const vtkOpenGLPolyDataMapper&);
00110 void operator=(const vtkOpenGLPolyDataMapper&);
00111 };
00112
00113 #endif