Skip to content

@tmrw-realityos/charm / Exports / WebGPUMeshPicker

Class: WebGPUMeshPicker

Class for picking a mesh on click events

Example

Setup

typescript
 const renderer = new WebGPURenderer(device, canvas)
 const picker = new WebGPUMeshPicker(renderer)

 renderer.onRenderInFinalBuffer = (outputTexture: GPUTexture, encoder: GPUCommandEncoder) => {
     picker.renderOutlineOverlay(outputTexture, encoder)
 }

Table of contents

Constructors

Accessors

Methods

Constructors

constructor

new WebGPUMeshPicker(renderer): WebGPUMeshPicker

Parameters

NameTypeDescription
rendererWebGPURendererRendering context containing renderables and camera uniforms

Returns

WebGPUMeshPicker

Defined in

packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:72

Accessors

highlightColor

set highlightColor(color): void

Parameters

NameType
colorReadonlyVec4

Returns

void

Defined in

packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:347


outlineColor

set outlineColor(color): void

Parameters

NameType
colorReadonlyVec4

Returns

void

Defined in

packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:340

Methods

destroy

destroy(): void

Remove event listeners and free GPU resources.

Returns

void

Defined in

packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:725


isWithinShortDistanceOfPointerDown

isWithinShortDistanceOfPointerDown(ev): boolean

Parameters

NameType
evPointerEvent

Returns

boolean

Defined in

packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:330


pickRenderable

pickRenderable(x, y): Promise<number>

Pick mesh from screen pixel coordinates

Parameters

NameTypeDescription
xnumberPixel x coordinate
ynumberPixel y coordinate

Returns

Promise<number>

Renderable ID

Defined in

packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:474


renderOutlineOverlay

renderOutlineOverlay(outputTexture, existingCommandEncoder?): void

Render outline of the selected mesh. By default a separate command encoder is created for recording draw commands.

Parameters

NameTypeDescription
outputTextureGPUTextureTexture to draw to. Must be view compatible with rgba8unorm-srgb.
existingCommandEncoder?GPUCommandEncoderOptional existing command encoder to record to.

Returns

void

Defined in

packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:642


reset

reset(): void

Clear the current selection

Returns

void

Defined in

packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:599


resize

resize(width, height): void

Resize picking framebuffers. Must be called whenever the canvas is resized.

Parameters

NameType
widthnumber
heightnumber

Returns

void

Defined in

packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:608


setObjectPickedCallback

setObjectPickedCallback(callback): void

Parameters

NameTypeDescription
callback(renderable: RenderableDescriptor, clipPos: vec3) => voidCallback to be executed when a mesh was picked

Returns

void

Defined in

packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:581


setSelectionClearedCallback

setSelectionClearedCallback(callback): void

Parameters

NameTypeDescription
callback() => voidCallback to be executed when the user clicked outside a mesh, clearing any prior selection

Returns

void

Defined in

packages/charm/src/graphics/WebGPU/WebGPUMeshPicker.ts:592