UNPKG

modern-canvas

Version:

A JavaScript WebGL rendering engine. only the ESM.

52 lines (51 loc) 2.22 kB
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>; }