VTK  9.3.1
vtkSurfaceLICMapper.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
44 #ifndef vtkSurfaceLICMapper_h
45 #define vtkSurfaceLICMapper_h
46 
48 #include "vtkRenderingLICOpenGL2Module.h" // For export macro
49 
50 VTK_ABI_NAMESPACE_BEGIN
53 
54 class VTKRENDERINGLICOPENGL2_EXPORT vtkSurfaceLICMapper : public vtkOpenGLPolyDataMapper
55 {
56 public:
57  static vtkSurfaceLICMapper* New();
59  void PrintSelf(ostream& os, vtkIndent indent) override;
60 
66  void ReleaseGraphicsResources(vtkWindow* win) override;
67 
71  void RenderPiece(vtkRenderer* ren, vtkActor* act) override;
72 
76  void ShallowCopy(vtkAbstractMapper*) override;
77 
79 
82  vtkGetObjectMacro(LICInterface, vtkSurfaceLICInterface);
84 
85 protected:
87  ~vtkSurfaceLICMapper() override;
88 
95  virtual void StartTimerEvent(const char*) {}
96  virtual void EndTimerEvent(const char*) {}
97 
101  void BuildBufferObjects(vtkRenderer* ren, vtkActor* act) override;
102 
106  void SetMapperShaderParameters(vtkOpenGLHelper& cellBO, vtkRenderer* ren, vtkActor* act) override;
107 
111  void ReplaceShaderValues(
112  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer* ren, vtkActor* act) override;
113 
115 
116 private:
117  vtkSurfaceLICMapper(const vtkSurfaceLICMapper&) = delete;
118  void operator=(const vtkSurfaceLICMapper&) = delete;
119 };
120 
121 VTK_ABI_NAMESPACE_END
122 #endif
PolyDataMapper using OpenGL to render.
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:40
static vtkOpenGLPolyDataMapper * New()
mapper that performs LIC on the surface of arbitrary geometry.
abstract specification for renderers
Definition: vtkRenderer.h:61
window superclass for vtkRenderWindow
Definition: vtkWindow.h:27
virtual void StartTimerEvent(const char *)
Methods used for parallel benchmarks.
void ShallowCopy(vtkAbstractMapper *m) override
Make a shallow copy of this mapper.
a simple class to control print indentation
Definition: vtkIndent.h:28
vtkSurfaceLICInterface * LICInterface
void RenderPiece(vtkRenderer *ren, vtkActor *act) override
Implemented by sub classes.
virtual void SetMapperShaderParameters(vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act)
Set the shader parameters related to the mapper/input data, called by UpdateShader.
abstract class specifies interface to map data
virtual void EndTimerEvent(const char *)
public API for surface lic parameters arbitrary geometry.
virtual void BuildBufferObjects(vtkRenderer *ren, vtkActor *act)
Build the VBO/IBO, called by UpdateBufferObjects.
A communicator that can safely be used inside a painter.
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.
virtual void ReplaceShaderValues(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacements on the shader templates.