UNPKG

@thi.ng/geom-accel

Version:

n-D spatial indexing data structures with a shared ES6 Map/Set-like API

36 lines 1.77 kB
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