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
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
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
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
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
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