@ue-too/board / VanillaTouchEventParser
Class: VanillaTouchEventParser
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:84
DOM event parser for touch input.
Remarks
This parser converts raw DOM TouchEvents into state machine events and coordinates with the orchestrator to process outputs. It serves as the entry point for all touch input in the input interpretation pipeline.
Event Flow:
DOM TouchEvents → Parser → State Machine → Parser → Orchestrator → Camera/ObserversResponsibilities:
- Listen for DOM touch events (touchstart/move/end/cancel)
- Extract touch point data (identifier, x, y)
- Convert to state machine event format
- Send events to the state machine
- Forward state machine outputs to the orchestrator
Touch Point Extraction:
- touchstart/touchend: Uses
changedTouches(only new/removed touches) - touchmove: Uses
targetTouches(all touches on the canvas)
Gesture Control: Individual gesture types (pan, zoom, rotate) can be disabled independently, though currently the state machine outputs are filtered by the orchestrator rather than the parser.
The parser prevents default touch behavior to avoid browser scroll/zoom interfering with canvas gestures.
Example
const canvasElement = document.getElementById("canvas");
const stateMachine = createTouchInputStateMachine(context);
const orchestrator = new InputOrchestrator(cameraMux, cameraRig, publisher);
const parser = new VanillaTouchEventParser(stateMachine, orchestrator, canvasElement);
parser.setUp(); // Starts listening for touch events
// Disable zoom gestures temporarily
parser.zoomDisabled = true;
// Cleanup when done
parser.tearDown();Implements
Constructors
Constructor
new VanillaTouchEventParser(
touchInputStateMachine,orchestrator,canvas?):VanillaTouchEventParser
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:96
Parameters
touchInputStateMachine
orchestrator
canvas?
HTMLCanvasElement | SVGSVGElement
Returns
VanillaTouchEventParser
Accessors
disabled
Get Signature
get disabled():
boolean
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:164
Whether all touch input is disabled
Returns
boolean
Whether all touch input is disabled
Implementation of
orchestrator
Get Signature
get orchestrator():
InputOrchestrator
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:110
Returns
Methods
attach()
attach(
canvas):void
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:252
Attaches to a new canvas element
Parameters
canvas
HTMLCanvasElement
Returns
void
Implementation of
bindListeners()
bindListeners():
void
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:114
Returns
void
disable()
disable():
void
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:168
Disables the parser; the event listeners are still attached just not processing any events
Returns
void
Implementation of
disableStrategy()
disableStrategy():
void
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:125
Returns
void
enable()
enable():
void
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:172
Enables the parser
Returns
void
Implementation of
enableStrategy()
enableStrategy():
void
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:121
Returns
void
setUp()
setUp():
void
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:129
Initializes event listeners
Returns
void
Implementation of
tearDown()
tearDown():
void
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:158
Removes event listeners and cleans up
Returns
void
Implementation of
touchcancelHandler()
touchcancelHandler(
e):void
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:206
Parameters
e
TouchEvent
Returns
void
touchendHandler()
touchendHandler(
e):void
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:221
Parameters
e
TouchEvent
Returns
void
touchmoveHandler()
touchmoveHandler(
e):void
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:236
Parameters
e
TouchEvent
Returns
void
touchstartHandler()
touchstartHandler(
e):void
Defined in: packages/board/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts:189
Parameters
e
TouchEvent
Returns
void