11#ifndef vtkWebGPUBatchedPolyDataMapper_h
12#define vtkWebGPUBatchedPolyDataMapper_h
16#include "vtkRenderingWebGPUModule.h"
22VTK_ABI_NAMESPACE_BEGIN
90 vtkTypeUInt32
Pad = 0;
99 bool applyOverrides,
double overrideOpacity,
const vtkColor3d& overrideAmbientColor,
100 const vtkColor3d& overrideDiffuseColor, vtkTypeUInt32 compositeId,
bool pickable);
103 vtkWebGPUActor* wgpuActor, std::string& vss, std::string& fss)
override;
106 std::string& fss)
override;
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
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()
void ReplaceVertexShaderPicking(GraphicsPipelineType pipelineType, vtkWebGPURenderer *wgpuRenderer, vtkWebGPUActor *wgpuActor, std::string &vss) override
void ReplaceFragmentShaderColors(GraphicsPipelineType pipelineType, vtkWebGPURenderer *wgpuRenderer, vtkWebGPUActor *wgpuActor, std::string &fss) override
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
vtkCompositePolyDataMapper * Parent
vtkWebGPUCompositePolyDataMapperDelegator::BatchElement BatchElement
API to add and query a BatchElement instance per vtkPolyData.
void ReplaceShaderCustomBindings(GraphicsPipelineType pipelineType, vtkWebGPURenderer *wgpuRenderer, vtkWebGPUActor *wgpuActor, std::string &vss, std::string &fss) override
void ClearUnmarkedBatchElements()
std::vector< vtkPolyData * > GetRenderedList() const
Accessor to the ordered list of PolyData that we last drew.
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.
void ReplaceFragmentShaderPicking(GraphicsPipelineType pipelineType, vtkWebGPURenderer *wgpuRenderer, vtkWebGPUActor *wgpuActor, std::string &fss) override
void ReplaceShaderCustomDef(GraphicsPipelineType pipelineType, vtkWebGPURenderer *wgpuRenderer, vtkWebGPUActor *wgpuActor, std::string &vss, std::string &fss) override
~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)
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)
vtkCompositePolyDataMapperDelegator::BatchElement BatchElement
friend class vtkWebGPURenderer
vtkWebGPUPolyDataMapper()
GraphicsPipelineType
This mapper uses different wgpu::RenderPipeline to render a list of primitives.
window superclass for vtkRenderWindow
vtkTypeUInt32 CompositeId
vtkTypeFloat32 Diffuse[3]
vtkTypeFloat32 Ambient[3]
vtkTypeUInt32 ApplyOverrideColors
vtkTypeUInt32 vtkMTimeType