@niuee/board
Version:
<h1 align="center"> board </h1> <p align="center"> board supercharges your html canvas element giving it the capabilities to pan, zoom, rotate, and much more. </p> <p align="center"> <a href="https://www.npmjs.com/package/@niuee/board">
57 lines (56 loc) • 2.65 kB
TypeScript
import { Point } from "../../util/misc";
import { CameraEventMap, CameraState, UnSubscribe } from "../../camera-update-publisher";
import { CameraUpdatePublisher } from "../../camera-update-publisher";
import { Boundaries } from "../utils/position";
import { ZoomLevelLimits } from "../utils/zoom";
import { RotationLimits } from "../utils/rotation";
import { TransformMatrix } 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): TransformMatrix;
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);
}