@thi.ng/geom-accel
Version:
n-D spatial indexing data structures with a shared ES6 Map/Set-like API
39 lines • 1.86 kB
TypeScript
import type { Fn, Nullable, Pair } from "@thi.ng/api";
import type { Heap } from "@thi.ng/heaps";
import type { ReadonlyVec, VecOpRoVV } from "@thi.ng/vectors";
import type { IRegionQuery, ISpatialMap } from "./api.js";
/**
* Common base class for {@link SpatialGrid2} and {@link SpatialGrid3}.
*
* @internal
*/
export declare abstract class ASpatialGrid<K extends ReadonlyVec, V> implements IRegionQuery<K, V, number>, ISpatialMap<K, V> {
protected _min: ReadonlyVec;
protected _size: ReadonlyVec;
protected _res: ReadonlyVec;
protected _cells: Nullable<Pair<K, V>[]>[];
protected _num: number;
protected _invSize: ReadonlyVec;
protected _res1: ReadonlyVec;
constructor(_min: ReadonlyVec, _size: ReadonlyVec, _res: ReadonlyVec);
get size(): number;
[Symbol.iterator](): IterableIterator<Pair<K, V>>;
keys(): IterableIterator<K>;
values(): IterableIterator<V>;
copy(): ASpatialGrid<K, V>;
abstract empty(): ASpatialGrid<K, V>;
clear(): void;
has(k: K, eps?: number): boolean;
get(k: K, eps?: number): V | undefined;
set(k: K, v: V, eps?: number): boolean;
into(pairs: Iterable<Pair<K, V>>, eps?: number): boolean;
remove(k: K): boolean;
query(q: K, radius: number, limit?: number, acc?: Pair<K, V>[]): Pair<K, V>[];
queryKeys(q: K, radius: number, limit?: number, acc?: K[]): K[];
queryValues(q: K, radius: number, limit?: number, acc?: V[]): V[];
protected abstract doQuery<T>(fn: Fn<Pair<K, V>, T>, k: K, r: number, limit?: number, acc?: T[]): T[];
protected queryCell(dist: VecOpRoVV<number>, heap: Heap<[number, Nullable<Pair<K, V>>?]>, c: Pair<K, V>[], k: K, limit: number): void;
protected find(k: K, eps: number): Pair<K, V> | undefined;
protected abstract findIndex(k: ReadonlyVec): number;
}
//# sourceMappingURL=aspatial-grid.d.ts.map