modern-canvas
Version:
A JavaScript WebGL rendering engine. only the ESM.
52 lines (51 loc) • 2.22 kB
TypeScript
import type { InputEvent, InputEventKey, Vector2Like, WheelInputEvent } from '../../core';
import type { Node, SceneTree } from '../main';
import type { Node2DEvents, Node2DProperties } from './Node2D';
import { Transform2D, Vector2 } from '../../core';
import { Node2D } from './Node2D';
export interface Camera2DProperties extends Node2DProperties {
zoom?: Vector2Like;
minZoom?: Vector2Like;
maxZoom?: Vector2Like;
}
export interface Camera2DEvents extends Node2DEvents {
updateCanvasTransform: [];
}
export interface Camera2D {
on: <K extends keyof Camera2DEvents & string>(event: K, listener: (...args: Camera2DEvents[K]) => void) => this;
once: <K extends keyof Camera2DEvents & string>(event: K, listener: (...args: Camera2DEvents[K]) => void) => this;
off: <K extends keyof Camera2DEvents & string>(event: K, listener: (...args: Camera2DEvents[K]) => void) => this;
emit: <K extends keyof Camera2DEvents & string>(event: K, ...args: Camera2DEvents[K]) => this;
}
export declare class Camera2D extends Node2D {
spaceKey: boolean;
grabbing: boolean;
readonly canvasTransform: Transform2D;
protected _screenOffset: {
x: number;
y: number;
};
protected _zoom: Vector2;
get zoom(): Vector2;
set zoom(val: Vector2Like);
protected _minZoom: Vector2;
get minZoom(): Vector2;
set minZoom(val: Vector2Like);
protected _maxZoom: Vector2;
get maxZoom(): Vector2;
set maxZoom(val: Vector2Like);
constructor(properties?: Partial<Camera2DProperties>, nodes?: Node[]);
setProperties(properties?: Record<string, any>): this;
addZoom(x: number, y?: number): this;
setZoom(x: number, y?: number): this;
protected _input(event: InputEvent, key: InputEventKey): void;
protected _onWheel(e: WheelInputEvent): void;
zoomWithWheel(delta: number): void;
updateTransform(): void;
updateCanvasTransform(): void;
syncCanvasTransform(): void;
protected _treeEnter(tree: SceneTree): void;
toGlobal<P extends Vector2Like = Vector2>(screenPos: Vector2Like, newPos?: P): P;
toScreen<P extends Vector2Like = Vector2>(globalPos: Vector2Like, newPos?: P): P;
toJSON(): Record<string, any>;
}