Appearance
@tmrw-realityos/charm / WebGPUMeshPicker
Class: WebGPUMeshPicker
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:37
Class for picking a mesh on click events. Instantiated by Renderer.
Example
Setup
typescript
const node = await renderer.pickScene( x, y );Constructors
Constructor
new WebGPUMeshPicker(
renderContext,canvasElement?,skipBinding?):WebGPUMeshPicker
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:70
Parameters
renderContext
canvasElement?
HTMLCanvasElement
skipBinding?
boolean = false
Returns
WebGPUMeshPicker
Properties
lastViewRenderData?
optionallastViewRenderData:iViewRenderData
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:60
materialDoubleSided
materialDoubleSided:
Material
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:63
materialSingleSided
materialSingleSided:
Material
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:62
ready
ready:
boolean=true
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:56
renderContext
renderContext:
WebGPURenderContext
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:39
shaderBuilder
shaderBuilder:
MeshIDShaderBuilder
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:41
Methods
addToGraph()
addToGraph(
framegraph,viewRenderData):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:372
Parameters
framegraph
viewRenderData
iViewRenderData
Returns
void
bindEvents()
bindEvents(
target):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:112
Parameters
target
HTMLCanvasElement
Returns
void
computeValidRenderables()
computeValidRenderables(
renderables,layers,rayOrigin,rayDir):Renderable[]
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|Renderable
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:319
Parameters
info
iPickingRequestInfo
colorBytes
ArrayBuffer
depthBytes
ArrayBuffer
width
number
height
number
Returns
undefined | Renderable
destroy()
destroy():
void
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:514
Remove event listeners and free GPU resources.
Returns
void
isWithinShortDistanceOfPointerDown()
isWithinShortDistanceOfPointerDown(
ev):boolean
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:125
Parameters
ev
PointerEvent
Returns
boolean
pickRenderable()
pickRenderable(
x,y,layers,pos?,clipPos?):Promise<undefined|Renderable>
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:149
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 | Renderable>
Renderable ID: index inside the renderables array
renderRenderables()
renderRenderables(
viewRenderData,renderPass,output):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:180
Parameters
viewRenderData
iViewRenderData
renderPass
GPURenderPassEncoder
output
GPUTexture
Returns
void
setObjectPickedCallback()
setObjectPickedCallback(
callback):void
Defined in: packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:496
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:507
Parameters
callback
() => void
Callback to be executed when the user clicked outside a mesh, clearing any prior selection
Returns
void