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
27class vtkBitArray;
28
29class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLGlyph3DHelper : public vtkOpenGLPolyDataMapper
30{
31public:
34 void PrintSelf(ostream& os, vtkIndent indent);
35
36 void SetModelTransform(float *matrix)
37 {
38 this->ModelTransformMatrix = matrix;
39 }
40
41 void SetModelNormalTransform(float *matrix)
42 {
43 this->ModelNormalMatrix = matrix;
44 }
45
46 void SetModelColor(unsigned char *color)
47 {
48 this->ModelColor = color;
49 }
50
51 void SetUseFastPath(bool fastpath)
52 {
53 this->UseFastPath = fastpath;
54 this->UsingInstancing = false;
55 }
56
60 void GlyphRender(vtkRenderer* ren, vtkActor* actor, vtkIdType numPts,
61 std::vector<unsigned char> &colors, std::vector<float> &matrices,
62 std::vector<float> &normalMatrices, std::vector<vtkIdType> &pickIds,
63 vtkMTimeType pointMTime);
64
70 virtual void ReleaseGraphicsResources(vtkWindow *window);
71
72protected:
75
76 // special opengl 32 version that uses instances
77#if GL_ES_VERSION_2_0 != 1 || GL_ES_VERSION_3_0 == 1
79 std::vector<unsigned char> &colors, std::vector<float> &matrices,
80 std::vector<float> &normalMatrices,
81 vtkMTimeType pointMTime);
82#endif
83
87 virtual void GetShaderTemplate(
88 std::map<vtkShader::Type, vtkShader *> shaders,
89 vtkRenderer *ren, vtkActor *act);
90
92
96 std::map<vtkShader::Type, vtkShader *> shaders,
97 vtkRenderer *ren, vtkActor *act);
98 virtual void ReplaceShaderColor(
99 std::map<vtkShader::Type, vtkShader *> shaders,
100 vtkRenderer *ren, vtkActor *act);
102 std::map<vtkShader::Type, vtkShader *> shaders,
103 vtkRenderer *ren, vtkActor *act);
104 virtual void ReplaceShaderClip(
105 std::map<vtkShader::Type, vtkShader *> shaders,
106 vtkRenderer *ren, vtkActor *act);
108 std::map<vtkShader::Type, vtkShader *> shaders,
109 vtkRenderer *ren, vtkActor *act);
111
116 vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act);
117
122 vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act);
123
128 vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act);
129
132
135 unsigned char* ModelColor;
136
141
142
143private:
144 vtkOpenGLGlyph3DHelper(const vtkOpenGLGlyph3DHelper&) VTK_DELETE_FUNCTION;
145 void operator=(const vtkOpenGLGlyph3DHelper&) VTK_DELETE_FUNCTION;
146};
147
148#endif
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:52
dynamic, self-adjusting array of bits
Definition: vtkBitArray.h:37
a simple class to control print indentation
Definition: vtkIndent.h:40
OpenGL buffer object.
PolyDataMapper using OpenGL to render.
virtual void SetPropertyShaderParameters(vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act)
Set the shader parameteres related to the property.
virtual void ReplaceShaderPositionVC(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
virtual void SetCameraShaderParameters(vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act)
Set the shader parameteres related to the Camera.
void GlyphRender(vtkRenderer *ren, vtkActor *actor, vtkIdType numPts, std::vector< unsigned char > &colors, std::vector< float > &matrices, std::vector< float > &normalMatrices, std::vector< vtkIdType > &pickIds, vtkMTimeType pointMTime)
Fast path for rendering glyphs comprised of only one type of primative.
virtual void GetShaderTemplate(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Create the basic shaders before replacement.
vtkOpenGLBufferObject * ColorBuffer
virtual void SetMapperShaderParameters(vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act)
Set the shader parameteres related to the actor/mapper.
void GlyphRenderInstances(vtkRenderer *ren, vtkActor *actor, vtkIdType numPts, std::vector< unsigned char > &colors, std::vector< float > &matrices, std::vector< float > &normalMatrices, vtkMTimeType pointMTime)
vtkOpenGLBufferObject * MatrixBuffer
static vtkOpenGLGlyph3DHelper * New()
void SetModelColor(unsigned char *color)
vtkOpenGLBufferObject * NormalMatrixBuffer
void SetUseFastPath(bool fastpath)
virtual void ReplaceShaderNormal(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
virtual void ReplaceShaderClip(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
void SetModelNormalTransform(float *matrix)
virtual void ReplaceShaderColor(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
virtual void ReplaceShaderPicking(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacments on the shader templates.
virtual void ReleaseGraphicsResources(vtkWindow *window)
Release any graphics resources that are being consumed by this mapper.
a PolyDataMapper for the OpenGL library
abstract specification for renderers
Definition: vtkRenderer.h:64
record modification and/or execution time
Definition: vtkTimeStamp.h:36
window superclass for vtkRenderWindow
Definition: vtkWindow.h:35
@ color
Definition: vtkX3D.h:221
int vtkIdType
Definition: vtkType.h:287
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248