@ue-too/board
Version:
45 lines (44 loc) • 1.67 kB
TypeScript
import type { Point } from "@ue-too/math";
import { RawUserInputPublisher } from "../raw-input-publisher";
import { BaseContext } from "@ue-too/being";
import { CanvasOperator } from "./kmt-input-context";
/**
* @description The touch points.
*
* @category Input State Machine
*/
export type TouchPoints = {
ident: number;
x: number;
y: number;
};
export interface TouchContext extends BaseContext {
addTouchPoints: (points: TouchPoints[]) => void;
removeTouchPoints: (idents: number[]) => void;
getCurrentTouchPointsCount: () => number;
getInitialTouchPointsPositions: (idents: number[]) => TouchPoints[];
updateTouchPoints: (pointsMoved: TouchPoints[]) => void;
notifyOnPan: (delta: Point) => void;
notifyOnZoom: (zoomAmount: number, anchorPoint: Point) => void;
alignCoordinateSystem: boolean;
canvas: CanvasOperator;
}
export declare class TouchInputTracker implements TouchContext {
private _inputPublisher;
private _touchPointsMap;
private _canvas;
private _alignCoordinateSystem;
constructor(canvas: CanvasOperator, inputPublisher: RawUserInputPublisher);
addTouchPoints(points: TouchPoints[]): void;
removeTouchPoints(identifiers: number[]): void;
getCurrentTouchPointsCount(): number;
getInitialTouchPointsPositions(idents: number[]): TouchPoints[];
updateTouchPoints(pointsMoved: TouchPoints[]): void;
notifyOnPan(delta: Point): void;
notifyOnZoom(zoomAmount: number, anchorPoint: Point): void;
get alignCoordinateSystem(): boolean;
set alignCoordinateSystem(value: boolean);
get canvas(): CanvasOperator;
cleanup(): void;
setup(): void;
}