VTK  9.7.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
47 #ifndef vtkSurfaceLICMapper_h
48 #define vtkSurfaceLICMapper_h
49 
51 #include "vtkRenderingLICOpenGL2Module.h" // For export macro
52 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
53 
54 VTK_ABI_NAMESPACE_BEGIN
57 
58 class VTKRENDERINGLICOPENGL2_EXPORT VTK_MARSHALAUTO vtkSurfaceLICMapper
60 {
61 public:
62  static vtkSurfaceLICMapper* New();
64  void PrintSelf(ostream& os, vtkIndent indent) override;
65 
71  void ReleaseGraphicsResources(vtkWindow* win) override;
72 
76  void RenderPiece(vtkRenderer* ren, vtkActor* act) override;
77 
81  void ShallowCopy(vtkAbstractMapper*) override;
82 
84 
87  vtkGetObjectMacro(LICInterface, vtkSurfaceLICInterface);
89 
90 protected:
92  ~vtkSurfaceLICMapper() override;
93 
100  virtual void StartTimerEvent(const char*) {}
101  virtual void EndTimerEvent(const char*) {}
102 
106  void BuildBufferObjects(vtkRenderer* ren, vtkActor* act) override;
107 
111  void SetMapperShaderParameters(vtkOpenGLHelper& cellBO, vtkRenderer* ren, vtkActor* act) override;
112 
116  void ReplaceShaderValues(
117  std::map<vtkShader::Type, vtkShader*> shaders, vtkRenderer* ren, vtkActor* act) override;
118 
120 
121 private:
122  vtkSurfaceLICMapper(const vtkSurfaceLICMapper&) = delete;
123  void operator=(const vtkSurfaceLICMapper&) = delete;
124 };
125 
126 VTK_ABI_NAMESPACE_END
127 #endif
PolyDataMapper using OpenGL to render.
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:41
static vtkOpenGLPolyDataMapper * New()
mapper that performs LIC on the surface of arbitrary geometry.
abstract specification for renderers
Definition: vtkRenderer.h:63
window superclass for vtkRenderWindow
Definition: vtkWindow.h:41
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.
#define VTK_MARSHALAUTO
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.