Skip to content

@tmrw-realityos/charm


@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

WebGPURenderContext

canvasElement?

HTMLCanvasElement

skipBinding?

boolean = false

Returns

WebGPUMeshPicker

Properties

lastViewRenderData?

optional lastViewRenderData: 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

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

Renderable[]

layers

number

rayOrigin

vec3

rayDir

vec3

Returns

Renderable[]


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