@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
147 lines • 3.94 kB
TypeScript
/**
* @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