11#ifndef vtkWebGPUBatchedPolyDataMapper_h
12#define vtkWebGPUBatchedPolyDataMapper_h
16#include "vtkRenderingWebGPUModule.h"
22VTK_ABI_NAMESPACE_BEGIN
80 bool LastBlockVisibility =
true;
81 bool LastUseNanColor =
false;
85 vtkTypeUInt32 ApplyOverrideColors = 0;
86 vtkTypeFloat32 Opacity = 0;
87 vtkTypeUInt32 CompositeId = 0;
88 vtkTypeUInt32 Pickable = 1;
89 vtkTypeFloat32 Ambient[3] = {};
90 vtkTypeUInt32 Pad = 0;
91 vtkTypeFloat32 Diffuse[3] = {};
99 bool applyOverrides,
double overrideOpacity,
const vtkColor3d& overrideAmbientColor,
100 const vtkColor3d& overrideDiffuseColor, vtkTypeUInt32 compositeId,
bool pickable);
represents an object (geometry & properties) in a rendered scene
a class that renders hierarchical polygonal data
a simple class to control print indentation
concrete dataset represents vertices, lines, polygons, and triangle strips
abstract specification for renderers
Hold a reference to a vtkObjectBase instance.
record modification and/or execution time
A WebGPU mapper for batched rendering of vtkPolyData.
void ReplaceShaderCustomDef(GraphicsPipelineType pipelineType, std::string &vss, std::string &fss) override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void RenderPiece(vtkRenderer *renderer, vtkActor *actor) override
Implemented by sub classes.
vtkWebGPUBatchedPolyDataMapper()
BatchElement * GetBatchElement(vtkPolyData *polydata)
API to add and query a BatchElement instance per vtkPolyData.
void UnmarkBatchElements()
std::map< std::uintptr_t, std::unique_ptr< BatchElement > > VTKPolyDataToBatchElement
vtkTimeStamp OverrideColorUploadTimestamp
void ReplaceFragmentShaderColors(GraphicsPipelineType pipelineType, std::string &fss) override
void ClearUnmarkedBatchElements()
std::vector< vtkPolyData * > GetRenderedList() const
Accessor to the ordered list of PolyData that we last drew.
void ReplaceVertexShaderPicking(GraphicsPipelineType pipelineType, std::string &vss) override
wgpu::Buffer CompositeDataPropertiesBuffer
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.
std::vector< wgpu::BindGroupEntry > GetMeshBindGroupEntries() override
vtkMTimeType GetMTime() override
Returns the maximum of our and Parent vtkCompositePolyDataMapper's MTime.
~vtkWebGPUBatchedPolyDataMapper() override
static vtkWebGPUBatchedPolyDataMapper * New()
std::vector< wgpu::BindGroupLayoutEntry > GetMeshBindGroupLayoutEntries() override
void UploadCompositeDataProperties(vtkSmartPointer< vtkWebGPUConfiguration > wgpuConfiguration, bool applyOverrides, double overrideOpacity, const vtkColor3d &overrideAmbientColor, const vtkColor3d &overrideDiffuseColor, vtkTypeUInt32 compositeId, bool pickable)
void ReplaceFragmentShaderPicking(GraphicsPipelineType pipelineType, std::string &fss) override
std::map< unsigned int, std::uintptr_t > FlatIndexToPolyData
void ClearBatchElements()
API to add and query a BatchElement instance per vtkPolyData.
void AddBatchElement(unsigned int flatIndex, BatchElement &&batchElement)
API to add and query a BatchElement instance per vtkPolyData.
void SetParent(vtkCompositePolyDataMapper *parent)
void ReplaceShaderCustomBindings(GraphicsPipelineType pipelineType, std::string &vss, std::string &fss) override
vtkCompositePolyDataMapperDelegator::BatchElement BatchElement
GraphicsPipelineType
This mapper uses different wgpu::RenderPipeline to render a list of primitives.
window superclass for vtkRenderWindow
vtkTypeUInt32 vtkMTimeType