3#ifndef vtkWebGPUActor_h
4#define vtkWebGPUActor_h
8#include "vtkRenderingWebGPUModule.h"
9#include "vtkTypeUInt32Array.h"
12VTK_ABI_NAMESPACE_BEGIN
68 RenderPostRasterization
89 PointNormals = 1 << 1,
90 PointTangents = 1 << 2,
98 this->MapperRenderPipelineOutdated = value;
104 this->CurrentMapperRenderType = mapperRenderType;
109 this->DynamicOffsets = offsets;
116 bool CachedMapperHasOpaqueGeometry =
false;
117 bool CachedMapperHasTranslucentPolygonalGeometry =
false;
125 vtkTypeFloat32 World[4][4] = {};
126 vtkTypeFloat32 Normal[3][4] = {};
132 vtkTypeUInt32 Representation = 0;
134 vtkTypeFloat32 PointSize = 0;
136 vtkTypeFloat32 LineWidth = 0;
138 vtkTypeUInt32 EdgeVisibility = 0;
144 vtkTypeFloat32 AmbientIntensity = 0;
146 vtkTypeFloat32 DiffuseIntensity = 0;
148 vtkTypeFloat32 SpecularIntensity = 0;
150 vtkTypeFloat32 SpecularPower = 0;
152 vtkTypeFloat32 Opacity = 0;
157 vtkTypeUInt32 ShadingType = 0;
160 vtkTypeUInt32 DirectionalMaskType = 0;
162 vtkTypeUInt8 Pad1[4] = {};
164 vtkTypeFloat32 AmbientColor[4] = {};
166 vtkTypeFloat32 DiffuseColor[4] = {};
168 vtkTypeFloat32 SpecularColor[4] = {};
170 vtkTypeFloat32 EdgeColor[4] = {};
185 bool MapperRenderPipelineOutdated =
false;
represents an object (geometry & properties) in a rendered scene
a simple class to control print indentation
abstract class specifies interface to map data to graphics primitives
represent and manipulate 3x3 transformation matrices
Allocate and hold a VTK object.
abstract specification for renderers
Hold a reference to a vtkObjectBase instance.
record modification and/or execution time
vtkNew< vtkTransform > NormalTransform
void SetMapperRenderPipelineOutdated(bool value)
wgpu::RenderBundleEncoder GetRenderBundleEncoder()
void SetMapperRenderType(MapperRenderType mapperRenderType)
vtkTimeStamp ShadingOptionsBuildTimestamp
vtkTimeStamp ModelTransformsBuildTimestamp
void SetShadingType(ShadingTypeEnum shadeType)
void CacheActorRenderOptions()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int Update(vtkRenderer *renderer, vtkMapper *mapper)
Request mapper to run the vtkAlgorithm pipeline (if needed) and consequently update device buffers co...
virtual bool UpdateKeyMatrices()
vtkTypeBool HasTranslucentPolygonalGeometry() override
Re-use cached values in between consecutive buffer update stages.
MapperRenderType GetMapperRenderType()
const void * GetCachedActorInformation()
wgpu::RenderBundle RenderToBundle(vtkRenderer *ren, vtkMapper *mapper)
~vtkWebGPUActor() override
vtkSmartPointer< vtkTypeUInt32Array > DynamicOffsets
void CacheActorTransforms()
vtkNew< vtkMatrix3x3 > NormalMatrix
void SetDirectionalMaskType(vtkTypeUInt32 directionalMask)
wgpu::RenderBundleEncoder CurrentBundler
void SetDynamicOffsets(vtkSmartPointer< vtkTypeUInt32Array > offsets)
vtkTimeStamp RenderOptionsBuildTimestamp
void CacheActorShadeOptions()
bool SupportRenderBundles()
Returns true if the actor supports rendering with render bundles, false otherwise.
static vtkWebGPUActor * New()
ActorBlock CachedActorInfo
static std::size_t GetCacheSizeBytes()
vtkNew< vtkMatrix4x4 > MCWCMatrix
vtkTypeBool HasOpaqueGeometry() override
Re-use cached values in between consecutive buffer update stages.
void Render(vtkRenderer *ren, vtkMapper *mapper) override
Actual actor render method.