@ue-too/board / index / ObservableInputTracker
クラス: ObservableInputTracker
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:716
Production implementation of KmtInputContext that tracks input state for the state machine.
Remarks
This class provides the concrete implementation of the KMT input context, maintaining all state required by the state machine to recognize and track gestures:
State Tracking:
- Initial cursor position for calculating pan deltas
- Input modality score to distinguish mouse vs trackpad
- Determined input mode (kmt/trackpad/TBD)
- Coordinate system alignment preference
Input Modality Detection: The kmtTrackpadTrackScore accumulates evidence about the input device:
- Positive values indicate mouse behavior (middle-click, no horizontal scroll)
- Negative values indicate trackpad behavior (horizontal scroll, two-finger gestures)
- Score is used to determine zoom behavior (Ctrl+Scroll for mouse vs Scroll for trackpad)
Design Pattern: This class follows the Context pattern from the @ue-too/being state machine library, providing stateful data and operations that states can access and modify during transitions.
例
const canvasProxy = new CanvasProxy(canvasElement);
const context = new ObservableInputTracker(canvasProxy);
const stateMachine = createKmtInputStateMachine(context);
// Context tracks state as the state machine processes events
stateMachine.happens("leftPointerDown", {x: 100, y: 200});
console.log(context.initialCursorPosition); // {x: 100, y: 200}実装
コンストラクター
コンストラクター
new ObservableInputTracker(
canvasOperator):ObservableInputTracker
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:724
パラメータ
canvasOperator
戻り値
ObservableInputTracker
アクセッサー
alignCoordinateSystem
署名を取得する
get alignCoordinateSystem():
boolean
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:772
Whether to use standard screen coordinate system (vs inverted Y-axis)
戻り値
boolean
署名を設定する
set alignCoordinateSystem(
value):void
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:784
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)
の実装
KmtInputContext.alignCoordinateSystem
canvas
署名を取得する
get canvas():
Canvas
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:776
Canvas accessor for dimensions and cursor control
戻り値
Canvas accessor for dimensions and cursor control
の実装
initialCursorPosition
署名を取得する
get initialCursorPosition():
Point
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:780
The cursor position when a pan gesture started
戻り値
Point
The cursor position when a pan gesture started
の実装
KmtInputContext.initialCursorPosition
kmtTrackpadTrackScore
署名を取得する
get kmtTrackpadTrackScore():
number
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:746
Score tracking input modality: >0 for mouse, <0 for trackpad, 0 for undetermined
戻り値
number
Score tracking input modality: >0 for mouse, <0 for trackpad, 0 for undetermined
の実装
KmtInputContext.kmtTrackpadTrackScore
mode
署名を取得する
get mode():
"kmt"|"trackpad"|"TBD"
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:732
The current input modality: 'kmt' (mouse), 'trackpad', or 'TBD' (to be determined)
戻り値
"kmt" | "trackpad" | "TBD"
The current input modality: 'kmt' (mouse), 'trackpad', or 'TBD' (to be determined)
の実装
メソッド
addKmtTrackpadTrackScore()
addKmtTrackpadTrackScore():
void
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:761
Increases the score toward mouse
戻り値
void
の実装
KmtInputContext.addKmtTrackpadTrackScore
cancelCurrentAction()
cancelCurrentAction():
void
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:788
Cancels the current action and resets cursor position
戻り値
void
の実装
KmtInputContext.cancelCurrentAction
cleanup()
cleanup():
void
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:796
戻り値
void
の実装
enableInputModeDetection()
enableInputModeDetection():
void
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:741
戻り値
void
setInitialCursorPosition()
setInitialCursorPosition(
position):void
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:792
Sets the initial cursor position when starting a pan gesture
パラメータ
position
Point
戻り値
void
の実装
KmtInputContext.setInitialCursorPosition
setMode()
setMode(
mode):void
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:736
Sets the determined input modality
パラメータ
mode
"kmt" | "trackpad" | "TBD"
戻り値
void
の実装
setup()
setup():
void
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:798
戻り値
void
の実装
subtractKmtTrackpadTrackScore()
subtractKmtTrackpadTrackScore():
void
定義: packages/board/src/input-interpretation/input-state-machine/kmt-input-context.ts:750
Decreases the score toward trackpad
戻り値
void