InputFusion class

Fuses the joystick-free input channels of the engine into a single action stream with priority and conflict resolution:

  • Hand pinch (camera tracking) is the primary click and overrides an in-progress gaze dwell on the same frame.
  • Gaze dwell is the always-available fallback click.
  • Ultrasonic push/pull map to confirm/back when the camera is occluded (headset cover closed, darkness).
  • Walk-in-place cadence maps to continuous MoveActions.

Wire the channels you have; all are optional.

Constructors

InputFusion({GazePointer? gazePointer, HandGestureRecognizer? gestureRecognizer, WalkInPlaceDetector? walkInPlace, UltrasonicGestureChannel? ultrasonic, Duration selectCooldown = const Duration(milliseconds: 400), double minMoveCadence = 30})

Properties

gazePointer GazePointer?
final
gestureRecognizer HandGestureRecognizer?
final
hashCode int
The hash code for this object.
no setterinherited
minMoveCadence double
Cadence (steps/min) below which no MoveAction is emitted.
getter/setter pair
onAction Stream<VrInputAction>
Unified stream of high-level VR actions.
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
selectCooldown Duration
Minimum interval between two SelectActions regardless of source.
getter/setter pair
ultrasonic UltrasonicGestureChannel?
final
walkInPlace WalkInPlaceDetector?
final

Methods

dispose() → void
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited
update(double dt) → void
Call each frame to translate walk-in-place cadence into movement.

Operators

operator ==(Object other) bool
The equality operator.
inherited