Appearance
@tmrw-realityos/charm / WebGPUMeshPicker
Class: WebGPUMeshPicker
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:36
Class for picking a mesh on click events. Instantiated by Renderer.
Example
Setup
typescript
const node = await renderer.pickScene( x, y );Constructors
new WebGPUMeshPicker()
new WebGPUMeshPicker(
renderContext,canvasElement?,skipBinding?):WebGPUMeshPicker
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:69
Parameters
renderContext
canvasElement?
HTMLCanvasElement
skipBinding?
boolean = false
Returns
Properties
lastViewRenderData?
optionallastViewRenderData:iViewRenderData
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:59
materialDoubleSided
materialDoubleSided:
Material
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:62
materialSingleSided
materialSingleSided:
Material
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:61
ready
ready:
boolean=true
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:55
renderContext
renderContext:
WebGPURenderContext
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:38
shaderBuilder
shaderBuilder:
MeshIDShaderBuilder
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:40
Methods
addToGraph()
addToGraph(
framegraph,viewRenderData):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:370
Parameters
framegraph
viewRenderData
iViewRenderData
Returns
void
bindEvents()
bindEvents(
target):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:111
Parameters
target
HTMLCanvasElement
Returns
void
computeValidRenderables()
computeValidRenderables(
renderables,layers,rayOrigin,rayDir):RenderableDescriptor[]
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:277
checks which renderables would intersect the ray
Parameters
renderables
layers
number
rayOrigin
vec3
rayDir
vec3
Returns
decodeRenderableFromColor()
decodeRenderableFromColor(
info,colorBytes,depthBytes,width,height):undefined|RenderableDescriptor
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:317
Parameters
info
iPickingRequestInfo
colorBytes
ArrayBuffer
depthBytes
ArrayBuffer
width
number
height
number
Returns
undefined | RenderableDescriptor
destroy()
destroy():
void
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:512
Remove event listeners and free GPU resources.
Returns
void
isWithinShortDistanceOfPointerDown()
isWithinShortDistanceOfPointerDown(
ev):boolean
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:124
Parameters
ev
PointerEvent
Returns
boolean
pickRenderable()
pickRenderable(
x,y,layers,pos?,clipPos?):Promise<undefined|RenderableDescriptor>
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:148
Pick mesh from screen pixel coordinates
Parameters
x
number
Pixel x CSS coordinate
y
number
Pixel y CSS coordinate
layers
number = 0xff
pos?
vec3
clipPos?
vec3
Returns
Promise<undefined | RenderableDescriptor>
Renderable ID: index inside the renderables array
renderRenderables()
renderRenderables(
viewRenderData,renderPass,output):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:181
Parameters
viewRenderData
iViewRenderData
renderPass
GPURenderPassEncoder
output
GPUTexture
Returns
void
setObjectPickedCallback()
setObjectPickedCallback(
callback):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:494
Parameters
callback
(renderable, clipPos) => void
Callback to be executed when a mesh was picked
Returns
void
setSelectionClearedCallback()
setSelectionClearedCallback(
callback):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:505
Parameters
callback
() => void
Callback to be executed when the user clicked outside a mesh, clearing any prior selection
Returns
void