VTK  9.3.1
vtkOpenGLSphereMapper.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
11 #ifndef vtkOpenGLSphereMapper_h
12 #define vtkOpenGLSphereMapper_h
13 
15 #include "vtkRenderingOpenGL2Module.h" // For export macro
16 
17 VTK_ABI_NAMESPACE_BEGIN
18 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLSphereMapper : public vtkOpenGLPolyDataMapper
19 {
20 public:
21  static vtkOpenGLSphereMapper* New();
23  void PrintSelf(ostream& os, vtkIndent indent) override;
24 
26 
29  vtkSetStringMacro(ScaleArray);
31 
33 
37  vtkSetMacro(Radius, float);
38  vtkGetMacro(Radius, float);
39 
43  void Render(vtkRenderer* ren, vtkActor* act) override;
44 
49  // void ProcessSelectorPixelBuffers(vtkHardwareSelector *sel,
50  // int propid, vtkProp *prop) override;
51 
52 protected:
54  ~vtkOpenGLSphereMapper() override;
55 
59  void GetShaderTemplate(
60  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer* ren, vtkActor* act) override;
61 
66  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer* ren, vtkActor* act) override;
67 
71  void SetCameraShaderParameters(vtkOpenGLHelper& cellBO, vtkRenderer* ren, vtkActor* act) override;
72 
76  void SetMapperShaderParameters(vtkOpenGLHelper& cellBO, vtkRenderer* ren, vtkActor* act) override;
77 
78  const char* ScaleArray;
79 
83  void BuildBufferObjects(vtkRenderer* ren, vtkActor* act) override;
84 
85  void RenderPieceDraw(vtkRenderer* ren, vtkActor* act) override;
86 
87  virtual void CreateVBO(vtkPolyData* poly, vtkIdType numPts, unsigned char* colors,
88  int colorComponents, vtkIdType nc, float* sizes, vtkIdType ns, vtkRenderer* ren);
89 
90  // used for transparency
91  bool Invert;
92  float Radius;
93 
94 private:
96  void operator=(const vtkOpenGLSphereMapper&) = delete;
97 };
98 
99 VTK_ABI_NAMESPACE_END
100 #endif
virtual void RenderPieceDraw(vtkRenderer *ren, vtkActor *act)
Implemented by sub classes.
PolyDataMapper using OpenGL to render.
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:40
const char * ScaleArray
This value will be used for the radius is the scale array is not provided.
static vtkOpenGLPolyDataMapper * New()
float Radius
This value will be used for the radius is the scale array is not provided.
abstract specification for renderers
Definition: vtkRenderer.h:61
int vtkIdType
Definition: vtkType.h:315
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:79
a simple class to control print indentation
Definition: vtkIndent.h:28
bool Invert
This value will be used for the radius is the scale array is not provided.
void Render(vtkRenderer *ren, vtkActor *act) override
This calls RenderPiece (in a for loop if streaming is necessary).
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.
draw spheres using imposters
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.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void ReplaceShaderValues(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacements on the shader templates.