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) 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) override;
51 
52 protected:
54  ~vtkOpenGLGlyph3DHelper() 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) override;
68 
70 
74  std::map<vtkShader::Type, vtkShader *> shaders,
75  vtkRenderer *ren, vtkActor *act) override;
76  void ReplaceShaderColor(
77  std::map<vtkShader::Type, vtkShader *> shaders,
78  vtkRenderer *ren, vtkActor *act) override;
80  std::map<vtkShader::Type, vtkShader *> shaders,
81  vtkRenderer *ren, vtkActor *act) override;
82  void ReplaceShaderClip(
83  std::map<vtkShader::Type, vtkShader *> shaders,
84  vtkRenderer *ren, vtkActor *act) override;
86  std::map<vtkShader::Type, vtkShader *> shaders,
87  vtkRenderer *ren, vtkActor *act) override;
89 
94  vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act) override;
95 
97 
103 
104 
105 private:
107  void operator=(const vtkOpenGLGlyph3DHelper&) = delete;
108 };
109 
110 #endif
a PolyDataMapper for the OpenGL library
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:51
static vtkOpenGLPolyDataMapper * New()
virtual void ReplaceShaderColor(std::map< vtkShader::Type, vtkShader *> shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacments on the shader templates, called from ReplaceShaderValues.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:300
record modification and/or execution time
Definition: vtkTimeStamp.h:35
virtual void GetShaderTemplate(std::map< vtkShader::Type, vtkShader *> shaders, vtkRenderer *ren, vtkActor *act)
Create the basic shaders before replacement.
abstract specification for renderers
Definition: vtkRenderer.h:63
int vtkIdType
Definition: vtkType.h:345
virtual void ReplaceShaderPositionVC(std::map< vtkShader::Type, vtkShader *> shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacments on the shader templates, called from ReplaceShaderValues.
virtual void ReplaceShaderClip(std::map< vtkShader::Type, vtkShader *> shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacments on the shader templates, called from ReplaceShaderValues.
vtkOpenGLBufferObject * NormalMatrixBuffer
window superclass for vtkRenderWindow
Definition: vtkWindow.h:37
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkOpenGLBufferObject * ColorBuffer
PolyDataMapper using OpenGL to render.
virtual void SetMapperShaderParameters(vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act)
Set the shader parameters related to the mapper/input data, called by UpdateShader.
vtkOpenGLBufferObject * MatrixBuffer
dynamic, self-adjusting array of bits
Definition: vtkBitArray.h:36
virtual void ReplaceShaderNormal(std::map< vtkShader::Type, vtkShader *> shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacments on the shader templates, called from ReplaceShaderValues.
virtual void ReplaceShaderPicking(std::map< vtkShader::Type, vtkShader *> shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacments on the shader templates, called from ReplaceShaderValues.
OpenGL buffer object.
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.