ue-too
Version:
pan, zoom, and rotate your html canvas
57 lines (56 loc) • 2.67 kB
TypeScript
import { Point } from "../utils/misc";
import { CameraEventMap, CameraState, UnSubscribe } from "../board-camera/camera-update-publisher";
import { CameraUpdatePublisher } from "../board-camera/camera-update-publisher";
import { Boundaries } from "./utils/position";
import { ZoomLevelLimits } from "./utils/zoom";
import { RotationLimits } from "./utils/rotation";
import { TransformationMatrix } from "./utils/matrix";
/**
* @description This is the context centric camera.
*
* The purpose of this kind of camera is to skip the transformation from view port space to world space when accepting user input.
* This is a work in progress class. This is included in the bundle for experimental purposes. Please do not use it in production.
*
* @category wip
*/
export declare class ContextCentricCamera {
private _contextPosition;
private _contextRotation;
private _zoomLevel;
private _viewPortWidth;
private _viewPortHeight;
private _observer;
private _boundaries;
private _zoomBoundaries;
private _rotationBoundaries;
constructor(position?: Point, rotation?: number, zoomLevel?: number, viewPortWidth?: number, viewPortHeight?: number, observer?: CameraUpdatePublisher, boundaries?: Boundaries, zoomLevelBoundaries?: ZoomLevelLimits, rotationBoundaries?: RotationLimits);
get position(): Point;
get contextTransform(): {
position: Point;
rotation: number;
zoomLevel: number;
};
setPosition(destination: Point): void;
setPositionByDelta(delta: Point): void;
setPositionWithUserInputDelta(delta: Point): void;
getCameraOriginInWindow(centerInWindow: Point): Point;
convertFromViewPort2WorldSpace(point: Point): Point;
setZoomLevel(zoomLevel: number): void;
setRotation(rotation: number): void;
get zoomLevel(): number;
get rotation(): number;
getTransform(canvasWidth: number, canvasHeight: number, devicePixelRatio: number, alignCoorindate: boolean): TransformationMatrix;
get viewPortWidth(): number;
get viewPortHeight(): number;
set viewportWidth(width: number);
set viewportHeight(height: number);
get zoomBoundaries(): ZoomLevelLimits;
get rotationBoundaries(): RotationLimits;
viewPortDelta2WorldDelta(delta: Point): Point;
setMinZoomLevel(minZoomLevel: number): boolean;
setHorizontalBoundaries(min: number, max: number): void;
setVerticalBoundaries(min: number, max: number): void;
on<K extends keyof CameraEventMap>(eventName: K, callback: (event: CameraEventMap[K], cameraState: CameraState) => void): UnSubscribe;
set viewPortWidth(width: number);
set viewPortHeight(height: number);
}