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 "vtkGlyph3DMapper.h" 00031 #include "vtkGlyph3D.h" // for the constants (VTK_SCALE_BY_SCALAR, ...). 00032 #include "vtkWeakPointer.h" // needed for vtkWeakPointer. 00033 00034 class vtkOpenGLGlyph3DMapperArray; // pimp 00035 class vtkPainterPolyDataMapper; 00036 class vtkScalarsToColorsPainter; 00037 00038 class VTK_RENDERING_EXPORT vtkOpenGLGlyph3DMapper : public vtkGlyph3DMapper 00039 { 00040 public: 00041 static vtkOpenGLGlyph3DMapper* New(); 00042 vtkTypeMacro(vtkOpenGLGlyph3DMapper, vtkGlyph3DMapper); 00043 00047 virtual void Render(vtkRenderer *ren, vtkActor *a); 00048 00052 virtual void ReleaseGraphicsResources(vtkWindow *window); 00053 00054 void PrintSelf(ostream& os, vtkIndent indent); 00055 00056 //BTX 00057 protected: 00058 vtkOpenGLGlyph3DMapper(); 00059 ~vtkOpenGLGlyph3DMapper(); 00060 00062 virtual void ReportReferences(vtkGarbageCollector *collector); 00063 00065 void CopyInformationToSubMapper(vtkPainterPolyDataMapper *mapper); 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 *ren, vtkActor *a, vtkDataSet* ds); 00089 //ETX 00090 }; 00091 00092 #endif