18#ifndef vtkOpenGLCellGridRenderRequest_h
19#define vtkOpenGLCellGridRenderRequest_h
21#include "vtkRenderingCellGridModule.h"
25#include <unordered_map>
27VTK_ABI_NAMESPACE_BEGIN
61 SURFACE_WITH_EDGES = EDGES | FACES,
62 ALL = VERTICES | EDGES | FACES | VOLUMES
108 vtkGetMacro(ShapesToDraw,
char);
109 vtkSetClampMacro(ShapesToDraw,
char, 1, 9);
124 vtkGetMacro(IsReleasingResources,
bool);
125 vtkSetMacro(IsReleasingResources,
bool);
131 template <
typename StateType>
134 auto it = this->State.find(cellType);
135 if (it == this->State.end())
137 it = this->State.insert(std::make_pair(cellType, std::unique_ptr<StateBase>(
new StateType)))
140 return static_cast<StateType*
>(it->second.get());
151 bool IsReleasingResources{
false };
152 char ShapesToDraw{ RenderableGeometry::ALL };
153 std::unordered_map<vtkStringToken, std::unique_ptr<StateBase>>
State;
represents an object (geometry & properties) in a rendered scene
Perform an operation on cells in a vtkCellMetadata instance.
a simple class to control print indentation
CellGrid mapper using OpenGL to render exotic finite element fields and cells.
An empty base class that responders should inherit to store state using GetState<Subclass>().
virtual ~StateBase()=default
State used by vtkOpenGLCellGridMapper during rendering.
StateType * GetState(vtkStringToken cellType)
Return a state object of the given type.
static vtkOpenGLCellGridRenderRequest * New()
void PrintSelf(std::ostream &os, vtkIndent indent) override
virtual void SetWindow(vtkWindow *window)
Set/get a window (used when IsReleasingResources is true).
RenderableGeometry
An enumeration of which shapes to render.
virtual void SetMapper(vtkOpenGLCellGridMapper *mapper)
Set/get the mapper which owns this request (so responders can inspect its configuration).
virtual void SetRenderer(vtkRenderer *renderer)
Set/get the renderer responders should use to draw cells.
std::unordered_map< vtkStringToken, std::unique_ptr< StateBase > > State
void Initialize() override
This is invoked before processing any cell types during a render.
virtual void SetActor(vtkActor *actor)
Set/get the actor which responders should use to draw cells.
~vtkOpenGLCellGridRenderRequest() override
void Finalize() override
This is invoked after processing all cell types during a render.
vtkOpenGLCellGridRenderRequest()
abstract specification for renderers
Represent a string by its integer hash.
window superclass for vtkRenderWindow