VTK  9.3.1
vtkOpenGLES30PolyDataMapper.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
13 #ifndef vtkOpenGLES30PolyDataMapper_h
14 #define vtkOpenGLES30PolyDataMapper_h
15 
17 
18 #include "vtkNew.h" // for ivar
19 #include "vtkRenderingOpenGL2Module.h" // For export macro
20 
21 #include <vector> // for ivar
22 
23 VTK_ABI_NAMESPACE_BEGIN
25 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLES30PolyDataMapper : public vtkOpenGLPolyDataMapper
26 {
27 public:
30  void PrintSelf(ostream& os, vtkIndent indent) override;
31 
32  void RenderPieceStart(vtkRenderer* ren, vtkActor* act) override;
33  void RenderPieceDraw(vtkRenderer* ren, vtkActor* act) override;
34  void RenderPieceFinish(vtkRenderer* ren, vtkActor* act) override;
35 
41  void ReleaseGraphicsResources(vtkWindow*) override;
42 
43 protected:
45  ~vtkOpenGLES30PolyDataMapper() override;
46 
50  void GetShaderTemplate(
51  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer* ren, vtkActor* act) override;
52 
54 
59  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer* ren, vtkActor* act) override;
60  void ReplaceShaderColor(
61  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer* ren, vtkActor* act) override;
63  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer* ren, vtkActor* act) override;
65  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer* ren, vtkActor* act) override;
66  void ReplaceShaderEdges(
67  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer* ren, vtkActor* act) override;
69  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer* ren, vtkActor* act) override;
73  void ReplaceShaderPointSize(
74  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer* ren, vtkActor* act);
79  void ReplaceShaderWideLines(
80  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer* ren, vtkActor* act);
82 
86  void SetMapperShaderParameters(vtkOpenGLHelper& cellBO, vtkRenderer* ren, vtkActor* act) override;
87 
92  vtkOpenGLHelper& cellBO, vtkRenderer* ren, vtkActor* act) override;
93 
97  void BuildBufferObjects(vtkRenderer* ren, vtkActor* act) override;
98  void AppendOneBufferObject(vtkRenderer* ren, vtkActor* act, vtkPolyData* polydata,
99  vtkOpenGLCellToVTKCellMap* prim2cellMap, vtkIdType& voffset);
100 
104  void UpdateMaximumPointCellIds(vtkRenderer* ren, vtkActor* actor) override;
105 
110  static void BuildIndexArrays(std::vector<unsigned int> (&indexArrays)[PrimitiveEnd],
111  std::vector<unsigned char>& edgeArray, vtkCellArray* prims[4], vtkPoints* points,
112  int representation, bool draw_surf_with_edges = false, bool vertex_visibility = false,
113  vtkDataArray* ef = nullptr);
114 
115  bool DrawingPoints(vtkActor* actor);
116  bool DrawingLines(vtkActor* actor);
117 
119  std::vector<unsigned int> PrimitiveIndexArrays[PrimitiveEnd];
120 
121 private:
123  void operator=(const vtkOpenGLES30PolyDataMapper&) = delete;
124 };
125 
126 VTK_ABI_NAMESPACE_END
127 #endif // vtkOpenGLES30PolyDataMapper_h
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
virtual void RenderPieceFinish(vtkRenderer *ren, vtkActor *act)
Implemented by sub classes.
static vtkOpenGLPolyDataMapper * New()
OpenGL rendering utility functions.
abstract specification for renderers
Definition: vtkRenderer.h:61
virtual void SetPropertyShaderParameters(vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act)
Set the shader parameters related to the property, called by UpdateShader.
int vtkIdType
Definition: vtkType.h:315
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:79
window superclass for vtkRenderWindow
Definition: vtkWindow.h:27
virtual void UpdateMaximumPointCellIds(vtkRenderer *ren, vtkActor *actor)
a simple class to control print indentation
Definition: vtkIndent.h:28
virtual void ReplaceShaderNormal(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacements on the shader templates, called from ReplaceShaderValues.
virtual void ReplaceShaderEdges(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacements on the shader templates, called from ReplaceShaderValues.
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:44
virtual void ReplaceShaderPicking(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacements on the shader templates, called from ReplaceShaderValues.
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.
object to represent cell connectivity
Definition: vtkCellArray.h:175
virtual void ReplaceShaderCoincidentOffset(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacements on the shader templates, called from ReplaceShaderValues.
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 RenderPieceStart(vtkRenderer *ren, vtkActor *act)
Implemented by sub classes.
virtual void BuildBufferObjects(vtkRenderer *ren, vtkActor *act)
Build the VBO/IBO, called by UpdateBufferObjects.
PolyDataMapper using OpenGLES30 to render surface meshes.
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.
represent and manipulate 3D points
Definition: vtkPoints.h:28
virtual void ReplaceShaderValues(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacements on the shader templates.