UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

147 lines 3.94 kB
/** * @template D * @extends AABB2 */ export class QuadTreeNode<D> extends AABB2 { constructor(x0: number, y0: number, x1: number, y1: number); constructor(); /** * * @type {QuadTreeNode|null} */ topLeft: QuadTreeNode<any> | null; /** * * @type {QuadTreeNode|null} */ topRight: QuadTreeNode<any> | null; /** * * @type {QuadTreeNode|null} */ bottomLeft: QuadTreeNode<any> | null; /** * * @type {QuadTreeNode|null} */ bottomRight: QuadTreeNode<any> | null; /** * * @type {QuadTreeNode|null} */ parentNode: QuadTreeNode<any> | null; /** * * @type {number} */ treeDataCount: number; /** * * @type {QuadTreeDatum<D>[]} */ data: QuadTreeDatum<D>[]; balance(): 0 | 1 | 2; balanceBubbleUp(): void; /** * * @param {number} x0 * @param {number} y0 * @param {number} x1 * @param {number} y1 */ resize(x0: number, y0: number, x1: number, y1: number): void; /** * @template T * @param {T} data * @param {number} x0 * @param {number} y0 * @param {number} x1 * @param {number} y1 * @returns {QuadTreeDatum} */ add<T>(data: T, x0: number, y0: number, x1: number, y1: number): QuadTreeDatum<any>; /** * * @param {QuadTreeDatum} datum */ insertDatum(datum: QuadTreeDatum<any>): void; /** * @private * @param {QuadTreeDatum} datum */ private addDatum; /** * * @return {boolean} */ isSplit(): boolean; split(): void; /** * Pull all data from descendants to this node */ pullDataUp(): void; /** * Move data from supplied node to this one * @param {QuadTreeNode} node */ absorbDataFrom(node: QuadTreeNode<any>): void; /** * Push data down to descendants as far as possible */ pushDataDown(): void; merge(): void; clear(): void; /** * @param {D[]} result */ getRawData(result: D[]): void; /** * * @param {function(QuadTreeDatum<D>)} visitor * @param {*} [thisArg] */ traverseData(visitor: (arg0: QuadTreeDatum<D>) => any, thisArg?: any): void; /** * * @param {function(QuadTreeNode<D>):boolean} visitor * @param {*} [thisArg] */ traversePreOrder(visitor: (arg0: QuadTreeNode<D>) => boolean, thisArg?: any): void; /** * @deprecated use {@link qt_collect_by_point} directly * @param {Array<QuadTreeDatum<D>>} result * @param {number} x * @param {number} y * @returns {number} number of intersecting objects added to the result */ requestDatumIntersectionsPoint(result: Array<QuadTreeDatum<D>>, x: number, y: number): number; /** * @deprecated use {@link qt_collect_by_box} instead * @param {Array<QuadTreeDatum<D>>} result * @param {number} x0 * @param {number} y0 * @param {number} x1 * @param {number} y1 * @returns {number} number of intersecting objects added to the result */ requestDatumIntersectionsRectangle(result: Array<QuadTreeDatum<D>>, x0: number, y0: number, x1: number, y1: number): number; /** * NOTE: touching is not counted as intersection * @deprecated use {@link qt_collect_by_box} instead * @param {number} x0 * @param {number} y0 * @param {number} x1 * @param {number} y1 * @param {function(QuadTreeDatum<D>)} visitor * @param {*} [thisArg] */ traverseRectangleIntersections(x0: number, y0: number, x1: number, y1: number, visitor: (arg0: QuadTreeDatum<D>) => any, thisArg?: any): void; /** * @readonly * @type {boolean} */ readonly isQuadTreeNode: boolean; } import AABB2 from "../../2d/aabb/AABB2.js"; import { QuadTreeDatum } from "./QuadTreeDatum.js"; //# sourceMappingURL=QuadTreeNode.d.ts.map