VTK  9.7.1
vtkOpenGLPointGaussianMapperHelper.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
3 
4 #ifndef vtkOpenGLPointGaussianMapperHelper_h
5 #define vtkOpenGLPointGaussianMapperHelper_h
6 
8 
9 VTK_ABI_NAMESPACE_BEGIN
10 
12 
13 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLPointGaussianMapperHelper : public vtkOpenGLPolyDataMapper
14 {
15 public:
18  void PrintSelf(ostream& os, vtkIndent indent) override;
19 
21 
22  // set from parent
23  float* OpacityTable; // the table
24  double OpacityScale; // used for quick lookups
25  double OpacityOffset; // used for quick lookups
26  float* ScaleTable; // the table
27  double ScaleScale; // used for quick lookups
28  double ScaleOffset; // used for quick lookups
29 
31 
33  double BoundScale;
34 
35  // called by our Owner skips some stuff
36  void GaussianRender(vtkRenderer* ren, vtkActor* act);
37 
38 protected:
41 
42  // Description:
43  // Create the basic shaders before replacement
44  void GetShaderTemplate(
45  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer*, vtkActor*) override;
46 
47  // Description:
48  // Perform string replacements on the shader templates
49  void ReplaceShaderColor(
50  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer*, vtkActor*) override;
52  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer*, vtkActor*) override;
53 
54  // Description:
55  // Set the shader parameters related to the Camera
56  void SetCameraShaderParameters(vtkOpenGLHelper& cellBO, vtkRenderer* ren, vtkActor* act) override;
57 
58  // Description:
59  // Set the shader parameters related to the actor/mapper
60  void SetMapperShaderParameters(vtkOpenGLHelper& cellBO, vtkRenderer* ren, vtkActor* act) override;
61 
62  // Description:
63  // Does the VBO/IBO need to be rebuilt
64  bool GetNeedToRebuildBufferObjects(vtkRenderer* ren, vtkActor* act) override;
65 
66  // Description:
67  // Update the VBO to contain point based values
68  void BuildBufferObjects(vtkRenderer* ren, vtkActor* act) override;
69 
70  void RenderPieceDraw(vtkRenderer* ren, vtkActor* act) override;
71 
72  // Description:
73  // Does the shader source need to be recomputed
74  bool GetNeedToRebuildShaders(vtkOpenGLHelper& cellBO, vtkRenderer* ren, vtkActor* act) override;
75 
76 private:
78  void operator=(const vtkOpenGLPointGaussianMapperHelper&) = delete;
79 };
80 
81 VTK_ABI_NAMESPACE_END
82 #endif
virtual void RenderPieceDraw(vtkRenderer *ren, vtkActor *act)
Implemented by sub classes.
PolyDataMapper using OpenGL to render.
virtual void ReplaceShaderPositionVC(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacements on the shader templates, called from ReplaceShaderValues.
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:41
static vtkOpenGLPolyDataMapper * New()
abstract specification for renderers
Definition: vtkRenderer.h:63
int vtkIdType
Definition: vtkType.h:363
virtual bool GetNeedToRebuildBufferObjects(vtkRenderer *ren, vtkActor *act)
Does the VBO/IBO need to be rebuilt.
a simple class to control print indentation
Definition: vtkIndent.h:28
virtual bool GetNeedToRebuildShaders(vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act)
Does the shader source need to be recomputed.
virtual void GetShaderTemplate(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Create the basic shaders before replacement.
virtual void SetMapperShaderParameters(vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act)
Set the shader parameters related to the mapper/input data, called by UpdateShader.
virtual void ReplaceShaderColor(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacements on the shader templates, called from ReplaceShaderValues.
virtual void BuildBufferObjects(vtkRenderer *ren, vtkActor *act)
Build the VBO/IBO, called by UpdateBufferObjects.
virtual void SetCameraShaderParameters(vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act)
Set the shader parameters related to the Camera, called by UpdateShader.
draw PointGaussians using imposters
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.