VTK
vtkOpenGLGlyph3DHelper.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4 
5  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
6  All rights reserved.
7  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notice for more information.
12 
13 =========================================================================*/
21 #ifndef vtkOpenGLGlyph3DHelper_h
22 #define vtkOpenGLGlyph3DHelper_h
23 
24 #include "vtkRenderingOpenGL2Module.h" // For export macro
26 
27 class vtkBitArray;
28 
29 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLGlyph3DHelper : public vtkOpenGLPolyDataMapper
30 {
31 public:
32  static vtkOpenGLGlyph3DHelper* New();
34  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
35 
40  void GlyphRender(vtkRenderer* ren, vtkActor* actor, vtkIdType numPts,
41  std::vector<unsigned char> &colors, std::vector<float> &matrices,
42  std::vector<float> &normalMatrices, std::vector<vtkIdType> &pickIds,
43  vtkMTimeType pointMTime);
44 
50  void ReleaseGraphicsResources(vtkWindow *window) VTK_OVERRIDE;
51 
52 protected:
54  ~vtkOpenGLGlyph3DHelper() VTK_OVERRIDE;
55 
56  // special opengl 32 version that uses instances
57  void GlyphRenderInstances(vtkRenderer* ren, vtkActor* actor, vtkIdType numPts,
58  std::vector<unsigned char> &colors, std::vector<float> &matrices,
59  std::vector<float> &normalMatrices,
60  vtkMTimeType pointMTime);
61 
65  void GetShaderTemplate(
66  std::map<vtkShader::Type, vtkShader *> shaders,
67  vtkRenderer *ren, vtkActor *act) VTK_OVERRIDE;
68 
70 
73  void ReplaceShaderPicking(
74  std::map<vtkShader::Type, vtkShader *> shaders,
75  vtkRenderer *ren, vtkActor *act) VTK_OVERRIDE;
76  void ReplaceShaderColor(
77  std::map<vtkShader::Type, vtkShader *> shaders,
78  vtkRenderer *ren, vtkActor *act) VTK_OVERRIDE;
79  void ReplaceShaderNormal(
80  std::map<vtkShader::Type, vtkShader *> shaders,
81  vtkRenderer *ren, vtkActor *act) VTK_OVERRIDE;
82  void ReplaceShaderClip(
83  std::map<vtkShader::Type, vtkShader *> shaders,
84  vtkRenderer *ren, vtkActor *act) VTK_OVERRIDE;
85  void ReplaceShaderPositionVC(
86  std::map<vtkShader::Type, vtkShader *> shaders,
87  vtkRenderer *ren, vtkActor *act) VTK_OVERRIDE;
89 
93  void SetMapperShaderParameters(
94  vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act) VTK_OVERRIDE;
95 
96  bool UsingInstancing;
97 
98  vtkOpenGLBufferObject *NormalMatrixBuffer;
99  vtkOpenGLBufferObject *MatrixBuffer;
100  vtkOpenGLBufferObject *ColorBuffer;
101  vtkTimeStamp InstanceBuffersBuildTime;
102  vtkTimeStamp InstanceBuffersLoadTime;
103 
104 
105 private:
106  vtkOpenGLGlyph3DHelper(const vtkOpenGLGlyph3DHelper&) VTK_DELETE_FUNCTION;
107  void operator=(const vtkOpenGLGlyph3DHelper&) VTK_DELETE_FUNCTION;
108 };
109 
110 #endif
a PolyDataMapper for the OpenGL library
represents an object (geometry &amp; properties) in a rendered scene
Definition: vtkActor.h:45
static vtkOpenGLPolyDataMapper * New()
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:300
record modification and/or execution time
Definition: vtkTimeStamp.h:32
abstract specification for renderers
Definition: vtkRenderer.h:57
int vtkIdType
Definition: vtkType.h:345
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
a simple class to control print indentation
Definition: vtkIndent.h:33
PolyDataMapper using OpenGL to render.
dynamic, self-adjusting array of bits
Definition: vtkBitArray.h:33
Vertex or Fragment shader, combined into a ShaderProgram.
Definition: vtkShader.h:37
OpenGL buffer object.