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