Skip to content
On this page

module KDTree.ts

type KDTreeNode

ts
export type KDTreeNode = {
  depth: number; 
  dataPoint: Point; 
  screenPoint: NumericPoint; 
  originalIndex: number; 
};

An entry in the KDTree, should probably be made more generic to support indexing more information, as these nodes are returned on queries as well

  • depth number
  • dataPoint Point
  • screenPoint NumericPoint
  • originalIndex number

type KDTree

ts
export type KDTree = {
  node: KDTreeNode;
  left: KDTree | null;
  right: KDTree | null;
};

Binary space parition of KDTreeNodes which are used to index dataSet points for mouse over detection

  • node KDTreeNode
  • left KDTree
  • right KDTree

type KDTreeSearchResult

ts
export type KDTreeSearchResult = {
  node: KDTreeNode;
  screenDistanceSq: number;
};

the result type for search, returns the closest Node that matches as well as the squared screen distance to it

  • node KDTreeNode
  • screenDistanceSq number

function buildIndex

ts
(nodes: KDTreeNode[], depth?: number, xSorter?: NodeSorter,
ySorter?: NodeSorter) => KDTree

Parameters

  • nodes KDTreeNode
  • depth number
  • xSorter NodeSorter
  • ySorter NodeSorter

Returns KDTree

function dumpIndex

ts
(tree: KDTree, depth?: number) => void

Parameters

Returns void

function nearestNeighbor

ts
(queryPoint: NumericPoint, index: KDTree, maxDistance?: number,
depth?: number, bestMatch?: KDTreeSearchResult, ignoreX?:
boolean, ignoreY?: boolean) => KDTreeSearchResult

Parameters

Returns KDTreeSearchResult

Released under the MIT License.