import { ISceneSettings, IStreamArguments } from './types'; import { SceneChild } from './SceneChild'; /** * Container for all SceneChild. * The main purpose is to manage the drawing order and update the child buffers * * @order 1 * @category Scene * @class Scene */ declare class Scene { /** * Logical number, the drawer will take care of defining the unit of measure */ width: number; /** * Logical number, the drawer will take care of defining the unit of measure */ height: number; /** * Refers to the central point of the scene */ center: [number, number]; /** * Refers to the scene anchor point for shape translation */ anchor: [number, number]; /** * Settings refers to the scene anchor point for shape translation * * @private * @type {(['left' | 'right' | 'center' | number, 'top' | 'bottom' | 'center' | number])} */ private anchorSettings?; /** * Default background color (black) */ background: string; /** * Default ScenePrimitive stroke color (white) */ color: string; /** * Current time */ currentTime: number; /** * A list of children added to scene * * @ignore */ private children; /** * Creates an instance of Scene. * You can see the default values in the property definitions */ constructor(settings?: ISceneSettings); /** * set scene size, center and anchor * * @private * @param {number} width * @param {number} height * @param {(['left' | 'right' | 'center' | number, 'top' | 'bottom' | 'center' | number])} [anchor] */ private setSize; /** * Return width percentage * * @param {number} [percentage=100] * @returns {number} */ getWidth(percentage?: number): number; /** * Return height percentage * * @param {number} [percentage=100] * @returns {number} */ getHeight(percentage?: number): number; /** * Resize the scene size * * @param {number} width * @param {number} [height=width] * @memberof Scene */ resize(width: number, height?: number): void; /** * Update all children, generate a streamable buffer for drawing * * @param {number} [atTime] time in ms * @memberof Scene */ update(atTime?: number): void; /** * Traverse the child buffer and use it with callback * * @param {(streamArguments: IStreamArguments) => void} callback * @memberof Scene */ stream(callback: (streamArguments: IStreamArguments) => void): void; /** * Return a list of children * * @returns {Array} * @memberof Scene */ getChildren(): Array; /** * Add SceneChild to Scene, pass `order` as last parameter for drawing priorities * * @param {Array} items * @param {number} [order] * @memberof Scene */ add(...items: Array /**, order: number */): void; /** * Sort children by order * * @memberof Scene */ sortChildren(): void; /** * Find sceneChild from id or name in the whole scene * * @param {string | number} idOrName * @returns {(SceneChild | null)} * @memberof Scene */ find(idOrName: string | number): SceneChild | null; /** * Get shape by index * * @param {number} index * @returns {(SceneChild | null)} * @memberof Scene */ get(index: number): SceneChild | null; /** * Remove a shape by index * * @param {number} index * @memberof Scene */ remove(index: number): void; /** * Removes all children * * @memberof Scene */ removeChildren(): void; /** * Remove sceneChild by id or name * * @param {number | number} idOrName * @memberof Scene */ removeFromId(idOrName: number | string): void; /** * Return true if sceneChild is direct children * * @param {SceneChild} sceneChild * @returns {boolean} * @memberof Scene */ isFirstLevelChild(sceneChild: SceneChild): boolean; /** * Returns the list of sceneChild hierarchy starting from the scene * * @param {SceneChild} sceneChild * @returns {Array} * @memberof Scene */ getParentsOfSceneChild(sceneChild: SceneChild): Array; /** * Returns the list of sceneChild hierarchy starting from the scene * * @static * @param {(Scene | SceneChild)} current * @param {SceneChild} sceneChild * @param {(Array)} [parents=[]] * @returns {(Array | null)} * @memberof Scene */ static getParentsOfSceneChild(current: Scene | SceneChild, sceneChild: SceneChild, parents?: Array): Array | null; /** * Walk through the scene * * @static * @param {SceneChild} callbackk * @param {(Scene | SceneChild)} current * @memberof Scene */ static walk(callback: (sceneChild: SceneChild) => boolean | void, current: Scene | SceneChild): boolean | void; /** * Propagate scene to sceneChild (and children) * * @static * @param {SceneChild} sceneChild * @param {Scene} scene * @memberof Scene */ static propagateToChilden(sceneChild: SceneChild, scene: Scene): void; } export { Scene }; //# sourceMappingURL=Scene.d.ts.map