UNPKG

modern-canvas

Version:

A JavaScript WebGL rendering engine. only the ESM.

156 lines (155 loc) 6.26 kB
import type { CoreObjectEvents, GlRenderer, InputEvent, InputEventKey, InputEvents, MaskLike } from '../../core'; import type { SceneTree } from './SceneTree'; import type { Viewport } from './Viewport'; import type { Window } from './Window'; import { CoreObject } from '../../core'; import { Children } from './Children'; import { Meta } from './Meta'; export interface NodeEvents extends CoreObjectEvents, InputEvents { treeEnter: [tree: SceneTree]; treeEntered: [tree: SceneTree]; treePostEnter: [tree: SceneTree]; treeExit: [oldTree: SceneTree]; treeExiting: [oldTree: SceneTree]; treeExited: [oldTree: SceneTree]; childExitingTree: [node: Node]; childEnteredTree: [node: Node]; ready: []; parented: [parent: Node]; unparented: [oldParent: Node]; processing: [delta?: number]; process: [delta?: number]; processed: [delta?: number]; addChild: [child: Node, newIndex: number]; removeChild: [child: Node, oldIndex: number]; } export interface Node { on: <K extends keyof NodeEvents & string>(event: K, listener: (...args: NodeEvents[K]) => void) => this; once: <K extends keyof NodeEvents & string>(event: K, listener: (...args: NodeEvents[K]) => void) => this; off: <K extends keyof NodeEvents & string>(event: K, listener: (...args: NodeEvents[K]) => void) => this; emit: <K extends keyof NodeEvents & string>(event: K, ...args: NodeEvents[K]) => this; } export type ProcessMode = 'inherit' | 'pausable' | 'when-paused' | 'always' | 'disabled'; export type ProcessSortMode = 'default' | 'parent-before'; export type RenderMode = 'inherit' | 'always' | 'disabled'; export type InputMode = 'inherit' | 'always' | 'disabled'; export type InternalMode = 'default' | 'front' | 'back'; export interface NodeProperties { id: string; name: string; mask: MaskLike; processMode: ProcessMode; processSortMode: ProcessSortMode; renderMode: RenderMode; internalMode: InternalMode; meta: Record<string, any>; } export interface SerializedNode { [key: string]: any; is?: string; children?: SerializedNode[]; meta?: { [key: string]: any; inCanvasIs?: string; }; } export declare class Node extends CoreObject { readonly is: string; id: string; name: string; processMode: ProcessMode; processSortMode: ProcessSortMode; renderMode: RenderMode; inputMode: InputMode; internalMode: InternalMode; mask?: MaskLike; protected _meta: Meta; get meta(): Meta; set meta(value: Record<string, any>); needsRender: boolean; protected _processable: boolean; get processable(): boolean; protected _renderable: boolean; get renderable(): boolean; protected _readyed: boolean; constructor(properties?: Partial<NodeProperties>, nodes?: Node[]); setProperties(properties?: Record<string, any>): this; /** Name */ getName(): string; setName(value: string): this; /** Tree */ protected _tree?: SceneTree; get tree(): SceneTree | undefined; set tree(tree: SceneTree | undefined); getTree(): SceneTree | undefined; getViewport(): Viewport | undefined; getWindow(): Window | undefined; isInsideTree(): boolean; setTree(tree: SceneTree | undefined): this; /** Parent */ protected _parent?: Node; get parent(): Node | undefined; set parent(parent: Node | undefined); hasParent(): boolean; getParent<T extends Node = Node>(): T | undefined; setParent<T extends Node = Node>(parent: T | undefined): this; /** Children */ protected _children: Children<Node>; get children(): Node[]; set children(value: Node[]); getChildren(internalMode?: InternalMode | true): Node[]; getChild<T extends Node = Node>(index?: number): T | undefined; get siblingIndex(): number; set siblingIndex(toIndex: number); get previousSibling(): Node | undefined; get nextSibling(): Node | undefined; get firstSibling(): Node | undefined; get lastSibling(): Node | undefined; canInput(): boolean; private _onTreeEnter; private _onTreeExit; private _onParented; private _onUnparented; private _onReady; protected _onProcess(delta?: number): void; requestRender(): void; updateProcessable(): void; updateRenderable(): void; protected _updateProperty(key: string, newValue: any, oldValue: any): void; render(renderer: GlRenderer, next?: () => void): void; input(event: InputEvent, key: InputEventKey): void; getIndex(): number; getNode<T extends Node>(path: string): T | undefined; removeNode(path: string): void; addSibling(sibling: Node): this; prepend<T extends Node>(nodes: T[]): void; prepend<T extends Node>(...nodes: T[]): void; append<T extends Node | SerializedNode>(nodes: T[]): void; append<T extends Node | SerializedNode>(...nodes: T[]): void; before<T extends Node>(nodes: T[]): void; before<T extends Node>(...nodes: T[]): void; after<T extends Node>(nodes: T[]): void; after<T extends Node>(...nodes: T[]): void; insertBefore<T extends Node>(node: T, child: Node): T; appendChild<T extends Node>(node: T, internalMode?: InternalMode): T; moveChild(node: Node, toIndex: number, internalMode?: InternalMode): this; removeChild<T extends Node>(child: T): T; removeChildren(): void; remove(): void; findOne<T extends Node = Node>(callbackfn: (value: Node) => boolean): T | undefined; findAll<T extends Node = Node>(callbackfn: (value: Node) => boolean): T[]; findAncestor<T extends Node = Node>(callbackfn: (value: Node) => boolean): T | undefined; /** override */ protected _ready(): void; protected _treeEnter(tree: SceneTree): void; protected _treeExit(oldTree: SceneTree): void; protected _parented(parent: Node): void; protected _unparented(oldParent: Node): void; protected _process(delta: number): void; protected _input(event: InputEvent, key: InputEventKey): void; protected _render(renderer: GlRenderer): void; destroy(): void; clone(): this; toJSON(): Record<string, any>; static parse(value: SerializedNode | SerializedNode[], defaultInCanvasIs?: string): any; }