Skip to content

Class: MultiPointer

Defined in: packages/xr-input/src/pointer/multi-pointer.ts:62

MultiPointer orchestrates multiple pointer types using priority-based selection.

Remarks

  • Priority order: Touch > Grab > Ray
  • Uses state machine: DISABLED ↔ NORMAL ↔ HOVER ↔ SELECT
  • Selection lock: Once a pointer starts selecting, it stays locked until release
  • Hysteresis: Touch pointer uses separate enter/exit thresholds to prevent flickering

Constructors

Constructor

new MultiPointer(handedness, scene, camera, xrOrigin): MultiPointer

Defined in: packages/xr-input/src/pointer/multi-pointer.ts:94

Parameters

handedness

"left" | "right"

scene

Object3D

camera

PerspectiveCamera

xrOrigin

XROrigin

Returns

MultiPointer

Methods

dispose()

dispose(): void

Defined in: packages/xr-input/src/pointer/multi-pointer.ts:703

Dispose of all pointer resources. Call this when the MultiPointer is no longer needed.

Returns

void


getActiveKind()

getActiveKind(): PointerKind

Defined in: packages/xr-input/src/pointer/multi-pointer.ts:602

Get the currently active pointer kind

Returns

PointerKind


getActivePointer()

getActivePointer(): Pointer

Defined in: packages/xr-input/src/pointer/multi-pointer.ts:609

Get the currently active pointer

Returns

Pointer


getPointer()

getPointer(kind): Pointer

Defined in: packages/xr-input/src/pointer/multi-pointer.ts:619

Get a specific pointer by kind

Parameters

kind

PointerKind

Returns

Pointer


getPolicyForRay()

getPolicyForRay(): object

Defined in: packages/xr-input/src/pointer/multi-pointer.ts:556

Get the policy for ray visual rendering

Returns

object

forceHideRay

forceHideRay: boolean = hideRay


getRayBusy()

getRayBusy(): boolean

Defined in: packages/xr-input/src/pointer/multi-pointer.ts:566

Check if ray is busy (has intersection)

Returns

boolean


getSubPointerState()

getSubPointerState(kind): object

Defined in: packages/xr-input/src/pointer/multi-pointer.ts:594

Get the registration state of a sub-pointer

Parameters

kind

PointerKind

Returns

object

registered

registered: boolean


routeDown()

routeDown(kind, target, nativeEvent): void

Defined in: packages/xr-input/src/pointer/multi-pointer.ts:627

Route a down event to a specific pointer target. Used by grab-system for hand pinch gestures.

Parameters

kind

"select" | "squeeze" | "custom"

target

"active" | "ray" | "grab"

nativeEvent
timeStamp

number

Returns

void


routeUp()

routeUp(kind, target, nativeEvent): void

Defined in: packages/xr-input/src/pointer/multi-pointer.ts:644

Route an up event to a specific pointer target. Used by grab-system for hand pinch gestures.

Parameters

kind

"select" | "squeeze" | "custom"

target

"active" | "ray" | "grab"

nativeEvent
timeStamp

number

Returns

void


toggleSubPointer()

toggleSubPointer(kind, enabled): boolean

Defined in: packages/xr-input/src/pointer/multi-pointer.ts:573

Toggle a sub-pointer on/off

Parameters

kind

PointerKind

enabled

boolean

Returns

boolean


update()

update(connected, delta, time, input?): void

Defined in: packages/xr-input/src/pointer/multi-pointer.ts:155

Main update loop - implements priority-based pointer selection

Parameters

connected

boolean

delta

number

time

number

input?
selectEnd?

boolean

selectStart?

boolean

squeezeEnd?

boolean

squeezeStart?

boolean

Returns

void

Privacy | Terms