3 #ifndef vtkWebGPUPolyDataMapper_h
4 #define vtkWebGPUPolyDataMapper_h
8 #include "vtkRenderingWebGPUModule.h"
12 VTK_ABI_NAMESPACE_BEGIN
14 class vtkTypeFloat32Array;
28 void EncodeRenderCommands(
30 void EncodeRenderCommands(
65 int fieldAssociation,
int componentno = -1)
override;
73 int fieldAssociation,
int componentno = -1)
override;
106 void SetupPipelineLayout(
const wgpu::Device& device,
vtkRenderer* renderer,
vtkActor* actor);
112 void SetupBindGroups(
const wgpu::Device& device,
vtkRenderer* renderer);
119 unsigned long GetExactPointBufferSize();
120 unsigned long GetExactCellBufferSize();
121 std::vector<unsigned long> GetExactConnecitivityBufferSizes();
122 bool UpdateMeshGeometryBuffers(
const wgpu::Device& device,
vtkActor* actor);
123 bool UpdateMeshIndexBuffers(
const wgpu::Device& device);
124 vtkTypeFloat32Array* ComputeEdgeArray(
vtkCellArray* polys);
129 void SetupGraphicsPipeline(
const wgpu::Device& device,
vtkRenderer* renderer,
vtkActor* actor);
152 vtkTypeUInt32 Start = 0;
153 vtkTypeUInt32 NumTuples = 0;
154 vtkTypeUInt32 NumComponents = 0;
155 vtkTypeUInt32 Pad = 0;
173 bool InitializedPipeline =
false;
174 bool UpdatedPrimitiveSizes =
false;
175 bool HasPointColors =
false;
176 bool HasPointNormals =
false;
177 bool HasPointTangents =
false;
178 bool HasPointUVs =
false;
179 bool HasCellColors =
false;
180 bool HasCellNormals =
false;
207 vtkTypeUInt32 VertexCount = 0;
215 unsigned long EdgeArrayCount = 0;
227 VTK_ABI_NAMESPACE_END
abstract superclass for all actors, volumes and annotations
MeshAttributeBuffers MeshSSBO
wgpu::BindGroup MeshAttributeBindGroup
bool LastScalarVisibility
void ShallowCopy(vtkAbstractMapper *m) override
Make a shallow copy of this mapper.
represents an object (geometry & properties) in a rendered scene
wgpu::Buffer AttributeDescriptorBuffer
virtual void MapDataArrayToMultiTextureAttribute(const char *textureName, const char *dataArrayName, int fieldAssociation, int componentno=-1)
vtkTimeStamp PointCellAttributesBuildTimestamp
virtual void RemoveAllVertexAttributeMappings()
Remove all vertex attributes.
AttributeDescriptor Colors
AttributeDescriptor Normals
AttributeDescriptor Positions
record modification and/or execution time
abstract specification for renderers
virtual void RenderPiece(vtkRenderer *, vtkActor *)
Implemented by sub classes.
virtual void ProcessSelectorPixelBuffers(vtkHardwareSelector *, std::vector< unsigned int > &, vtkProp *)
allows a mapper to update a selections color buffers Called from a prop which in turn is called from ...
concrete dataset represents vertices, lines, polygons, and triangle strips
virtual void RemoveVertexAttributeMapping(const char *vertexAttributeName)
Remove a vertex attribute mapping.
AttributeDescriptor CellColors
wgpu::BindGroupLayout PrimitiveBindGroupLayout
window superclass for vtkRenderWindow
wgpu::BindGroupLayout MeshAttributeBindGroupLayout
a simple class to control print indentation
abstract superclass for arrays of numeric data
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
PrimitiveBindGroupInfo TrianglePrimitiveBGInfo
virtual void ComputeBounds()
Called in GetBounds().
PrimitiveBindGroupInfo PointPrimitiveBGInfo
abstract class specifies interface to map data
virtual void MapDataArrayToVertexAttribute(const char *vertexAttributeName, const char *dataArrayName, int fieldAssociation, int componentno=-1)
Select a data array from the point/cell data and map it to a generic vertex attribute.
map vtkPolyData to graphics primitives
object to represent cell connectivity
bool GetSupportsSelection() override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
wgpu::BindGroup BindGroup
static vtkPolyDataMapper * New()
vtkTimeStamp Primitive2CellIDsBuildTimestamp
wgpu::Buffer PrimitiveSizeBuffer
AttributeDescriptor CellEdgeArray
AttributeDescriptor CellNormals
PrimitiveBindGroupInfo LinePrimitiveBGInfo
wgpu::ShaderModule Shader
AttributeDescriptor Tangents
wgpu::PipelineLayout PipelineLayout
wgpu::RenderPipeline Pipeline
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.