VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkOpenGLGlyph3DMapper.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 =========================================================================*/ 00027 #ifndef __vtkOpenGLGlyph3DMapper_h 00028 #define __vtkOpenGLGlyph3DMapper_h 00029 00030 #include "vtkRenderingOpenGLModule.h" // For export macro 00031 #include "vtkGlyph3DMapper.h" 00032 #include "vtkGlyph3D.h" // for the constants (VTK_SCALE_BY_SCALAR, ...). 00033 #include "vtkWeakPointer.h" // needed for vtkWeakPointer. 00034 00035 class vtkOpenGLGlyph3DMapperArray; // pimp 00036 class vtkPainterPolyDataMapper; 00037 class vtkScalarsToColorsPainter; 00038 00039 class VTKRENDERINGOPENGL_EXPORT vtkOpenGLGlyph3DMapper : public vtkGlyph3DMapper 00040 { 00041 public: 00042 static vtkOpenGLGlyph3DMapper* New(); 00043 vtkTypeMacro(vtkOpenGLGlyph3DMapper, vtkGlyph3DMapper); 00044 void PrintSelf(ostream& os, vtkIndent indent); 00045 00049 virtual void Render(vtkRenderer *ren, vtkActor *a); 00050 00054 virtual void ReleaseGraphicsResources(vtkWindow *window); 00055 00056 protected: 00057 //BTX 00058 vtkOpenGLGlyph3DMapper(); 00059 ~vtkOpenGLGlyph3DMapper(); 00060 00062 virtual void ReportReferences(vtkGarbageCollector*); 00063 00065 void CopyInformationToSubMapper(vtkPainterPolyDataMapper*); 00066 00068 void ReleaseList(); 00069 00072 virtual void UpdatePainterInformation(); 00073 00074 vtkOpenGLGlyph3DMapperArray *SourceMappers; // array of mappers 00075 00076 vtkWeakPointer<vtkWindow> LastWindow; // Window used for previous render. 00077 00078 unsigned int DisplayListId; // GLuint 00079 00080 vtkScalarsToColorsPainter* ScalarsToColorsPainter; 00081 vtkInformation* PainterInformation; 00082 vtkTimeStamp PainterUpdateTime; 00083 00084 private: 00085 vtkOpenGLGlyph3DMapper(const vtkOpenGLGlyph3DMapper&); // Not implemented. 00086 void operator=(const vtkOpenGLGlyph3DMapper&); // Not implemented. 00087 00088 virtual void Render(vtkRenderer*, vtkActor*, vtkDataSet*); 00089 //ETX 00090 }; 00091 00092 #endif