Skip to content

@ue-too/board / index / TouchInputTracker

類別: TouchInputTracker ​

定義於: packages/board/src/input-interpretation/input-state-machine/touch-input-context.ts:99

Production implementation of TouchContext that tracks multi-touch state.

備註 ​

This class maintains a map of active touch points, storing their initial positions to enable gesture recognition. The state machine uses this context to:

  • Calculate pan deltas (difference between initial and current midpoint)
  • Calculate zoom factors (change in distance between two touch points)
  • Determine gesture type (pan vs zoom based on relative magnitudes)

Touch Point Lifecycle:

  1. addTouchPoints: Called on touchstart to register new touches
  2. updateTouchPoints: Called on touchmove to update current positions
  3. removeTouchPoints: Called on touchend/touchcancel to unregister touches

The initial positions are preserved until the touch ends, allowing continuous calculation of deltas throughout the gesture.

範例 ​

typescript
const canvasProxy = new CanvasProxy(canvasElement);
const context = new TouchInputTracker(canvasProxy);
const stateMachine = createTouchInputStateMachine(context);

// When a two-finger touch starts
context.addTouchPoints([
  {ident: 0, x: 100, y: 200},
  {ident: 1, x: 300, y: 200}
]);
console.log(context.getCurrentTouchPointsCount()); // 2

實作 ​

建構函式 ​

建構函式 ​

new TouchInputTracker(canvas): TouchInputTracker

定義於: packages/board/src/input-interpretation/input-state-machine/touch-input-context.ts:107

參數 ​

canvas ​

Canvas

回傳 ​

TouchInputTracker

存取器 ​

alignCoordinateSystem ​

Getter 簽章 ​

get alignCoordinateSystem(): boolean

定義於: packages/board/src/input-interpretation/input-state-machine/touch-input-context.ts:151

Whether to use standard screen coordinate system (vs inverted Y-axis)

回傳 ​

boolean

Setter 簽章 ​

set alignCoordinateSystem(value): void

定義於: packages/board/src/input-interpretation/input-state-machine/touch-input-context.ts:155

Whether to use standard screen coordinate system (vs inverted Y-axis)

參數 ​
value ​

boolean

回傳 ​

void

Whether to use standard screen coordinate system (vs inverted Y-axis)

實作了 ​

TouchContext.alignCoordinateSystem


canvas ​

Getter 簽章 ​

get canvas(): Canvas

定義於: packages/board/src/input-interpretation/input-state-machine/touch-input-context.ts:159

Canvas accessor for dimensions and coordinate transformations

回傳 ​

Canvas

Canvas accessor for dimensions and coordinate transformations

實作了 ​

TouchContext.canvas

方法 ​

addTouchPoints() ​

addTouchPoints(points): void

定義於: packages/board/src/input-interpretation/input-state-machine/touch-input-context.ts:112

Adds new touch points to tracking

參數 ​

points ​

TouchPoints[]

回傳 ​

void

實作了 ​

TouchContext.addTouchPoints


cleanup() ​

cleanup(): void

定義於: packages/board/src/input-interpretation/input-state-machine/touch-input-context.ts:163

回傳 ​

void

實作了 ​

TouchContext.cleanup


getCurrentTouchPointsCount() ​

getCurrentTouchPointsCount(): number

定義於: packages/board/src/input-interpretation/input-state-machine/touch-input-context.ts:126

Returns the current number of active touch points

回傳 ​

number

實作了 ​

TouchContext.getCurrentTouchPointsCount


getInitialTouchPointsPositions() ​

getInitialTouchPointsPositions(idents): TouchPoints[]

定義於: packages/board/src/input-interpretation/input-state-machine/touch-input-context.ts:130

Retrieves the initial positions of specific touch points

參數 ​

idents ​

number[]

回傳 ​

TouchPoints[]

實作了 ​

TouchContext.getInitialTouchPointsPositions


removeTouchPoints() ​

removeTouchPoints(identifiers): void

定義於: packages/board/src/input-interpretation/input-state-machine/touch-input-context.ts:118

Removes touch points from tracking by identifier

參數 ​

identifiers ​

number[]

回傳 ​

void

實作了 ​

TouchContext.removeTouchPoints


setup() ​

setup(): void

定義於: packages/board/src/input-interpretation/input-state-machine/touch-input-context.ts:165

回傳 ​

void

實作了 ​

TouchContext.setup


updateTouchPoints() ​

updateTouchPoints(pointsMoved): void

定義於: packages/board/src/input-interpretation/input-state-machine/touch-input-context.ts:143

Updates the current positions of touch points

參數 ​

pointsMoved ​

TouchPoints[]

回傳 ​

void

實作了 ​

TouchContext.updateTouchPoints