js-quadtree
Version:
A simple quadtree implementation for javascript (nodejs or browser with module bundler).
26 lines • 923 B
TypeScript
import { Point } from "./Point";
import { Box } from "./Box";
declare type PointsComparator = <T extends Point>(point1: T, point2: T) => boolean;
interface QuadTreeConfig {
capacity?: number;
removeEmptyNodes?: boolean;
maximumDepth?: number | -1;
arePointsEqual?: PointsComparator;
}
interface Shape {
contains(point: Point): boolean;
intersects(range: Box): boolean;
}
declare type DeepRequired<T> = T extends Function ? T : (T extends object ? {
[P in keyof Required<T>]: DeepRequired<T[P]>;
} : NonNullable<Required<T>>);
declare type QuadTreeConfigComplete = DeepRequired<QuadTreeConfig>;
declare type Tree = number | {
ne: number | Tree;
nw: number | Tree;
se: number | Tree;
sw: number | Tree;
};
declare type UserCustomData = any;
export { QuadTreeConfig, QuadTreeConfigComplete, Shape, Tree, UserCustomData };
//# sourceMappingURL=types.d.ts.map