Options
All
  • Public
  • Public/Protected
  • All
Menu

Class NdQuadtreeMap<K, V>

Point-based quadtree for nD keys and optional value association. Supports radial range queries and key removal with tree pruning. See {@link ndQuadtreeFromMinMax}.

remarks

Partially ported from Clojure version of http://thi.ng/geom.

Type parameters

  • K: ReadonlyVec

  • V

Hierarchy

  • NdQuadtreeMap

Implements

Index

Constructors

constructor

  • new NdQuadtreeMap<K, V>(pos: ReadonlyVec, ext: ReadonlyVec, pairs?: Iterable<Pair<K, V>>): NdQuadtreeMap<K, V>
  • Type parameters

    • K: ArrayLike<number, K> & Iterable<number, K>

    • V

    Parameters

    • pos: ReadonlyVec
    • ext: ReadonlyVec
    • Optional pairs: Iterable<Pair<K, V>>

    Returns NdQuadtreeMap<K, V>

Properties

Protected _size

_size: number

root

root: NdQtNode<K, V>

Readonly Static MAX_DIM

MAX_DIM: 16 = 16

Accessors

size

  • get size(): number

Methods

[Symbol.iterator]

  • [Symbol.iterator](): IterableIterator<Pair<K, V>>

clear

  • clear(): void

containsPoint

  • containsPoint(p: K): boolean

copy

empty

get

  • get(p: K, eps?: number): undefined | V

has

  • has(p: K, eps?: number): boolean

into

  • into(pairs: Iterable<Pair<K, V>>, eps?: number): boolean

keys

  • keys(): IterableIterator<K>

nodeForPoint

  • nodeForPoint(p: K): undefined | NdQtNode<K, V>

nodes

  • nodes(all?: boolean): Generator<NdQtNode<K, V>, void, unknown>

query

  • query(p: K, r: number, max?: number, acc?: Pair<K, V>[]): Pair<K, V>[]
  • Parameters

    • p: K
    • r: number
    • max: number = 1
    • acc: Pair<K, V>[] = ...

    Returns Pair<K, V>[]

queryKeys

  • queryKeys(p: K, r: number, max?: number, acc?: K[]): K[]

queryValues

  • queryValues(p: K, r: number, max?: number, acc?: V[]): V[]

remove

  • remove(p: K): boolean

set

  • set(key: K, val: V, eps?: number): boolean

values

  • values(): IterableIterator<V>

Static fromMinMax

  • fromMinMax<K, V>(min: ReadonlyVec, max: ReadonlyVec): NdQuadtreeMap<K, V>
  • Returns a new point-based NdQuadtreeMap 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.

    Type parameters

    • K: ArrayLike<number, K> & Iterable<number, K>

    • V

    Parameters

    • min: ReadonlyVec
    • max: ReadonlyVec

    Returns NdQuadtreeMap<K, V>

Generated using TypeDoc