UNPKG

ue-too

Version:

pan, zoom, and rotate your html canvas

49 lines (48 loc) 1.84 kB
import { Point } from "../utils/misc"; import { UnSubscribe } from "../board-camera/camera-update-publisher"; import { RotationLimits } from "../board-camera/utils/rotation"; import { ZoomLevelLimits } from "../board-camera/utils/zoom"; import { Boundaries } from "../board-camera/utils/position"; import { CameraEventMap, CameraState } from "../board-camera/camera-update-publisher"; import { SubscriptionOptions } from "../utils/observable"; /** * @description The interface for the observable board camera. * * @category Camera */ export interface ObservableBoardCamera extends BoardCamera { on<K extends keyof CameraEventMap>(eventName: K, callback: (event: CameraEventMap[K], cameraState: CameraState) => void, options?: SubscriptionOptions): UnSubscribe; } /** * @description The interface for the board camera. * * @category Camera */ export interface BoardCamera { position: Point; rotation: number; zoomLevel: number; viewPortWidth: number; viewPortHeight: number; boundaries?: Boundaries; zoomBoundaries?: ZoomLevelLimits; rotationBoundaries?: RotationLimits; setPosition(destination: Point): boolean; setZoomLevel(zoomLevel: number): boolean; setRotation(rotation: number): boolean; setMinZoomLevel(minZoomLevel: number): void; setMaxZoomLevel(maxZoomLevel: number): void; setHorizontalBoundaries(min: number, max: number): void; setVerticalBoundaries(min: number, max: number): void; getCameraOriginInWindow(centerInWindow: Point): Point; convertFromViewPort2WorldSpace(point: Point): Point; convertFromWorld2ViewPort(point: Point): Point; getTransform(devicePixelRatio: number, alignCoordinateSystem: boolean): { a: number; b: number; c: number; d: number; e: number; f: number; }; }