UNPKG

@ue-too/board

Version:
45 lines (44 loc) 1.67 kB
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; }