@thi.ng/geom-accel
Version:
n-D spatial indexing data structures with a shared ES6 Map/Set-like API
36 lines • 1.77 kB
TypeScript
import type { ICopy, IEmpty, Pair } from "@thi.ng/api";
import type { DistanceFn, ReadonlyVec } from "@thi.ng/vectors";
import type { IRegionQuery, ISpatialSet } from "./api.js";
import { NdQuadtreeMap } from "./nd-quadtree-map.js";
export declare class NdQuadtreeSet<K extends ReadonlyVec> implements ICopy<NdQuadtreeSet<K>>, IEmpty<NdQuadtreeSet<K>>, IRegionQuery<K, K, number>, ISpatialSet<K> {
/**
* Returns a new point-based `NdQuadtreeSet` for nD keys in given
* region defined by `min` / `max` coordinates. The dimensionality
* of the tree is implicitly defined by the provided coordinates.
* Only points within that region can be indexed.
*
* @remarks
* Due to exponentially growing lookup tables, currently only
* supports up to 16 dimensions.
*/
static fromMinMax<K extends ReadonlyVec>(min: ReadonlyVec, max: ReadonlyVec): NdQuadtreeSet<K>;
protected tree: NdQuadtreeMap<K, K>;
protected _size: number;
constructor(pos: ReadonlyVec, ext: ReadonlyVec, keys?: Iterable<K>, distanceFn?: DistanceFn);
[Symbol.iterator](): IterableIterator<K>;
keys(): IterableIterator<K>;
values(): IterableIterator<K>;
get size(): number;
copy(): NdQuadtreeSet<K>;
clear(): void;
empty(): NdQuadtreeSet<K>;
add(key: K, eps?: number): boolean;
into(keys: Iterable<K>, eps?: number): boolean;
remove(key: K): boolean;
has(key: K, eps?: number): boolean;
get(key: K, eps?: number): K | undefined;
query(q: K, maxDist: number, limit?: number, acc?: Pair<K, K>[]): Pair<K, K>[];
queryKeys(q: K, maxDist: number, limit: number, acc?: K[]): K[];
queryValues(q: K, maxDist: number, limit: number, acc?: K[]): K[];
}
//# sourceMappingURL=nd-quadtree-set.d.ts.map