Appearance
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
- tree
KDTree
- depth
number
Returns void
function nearestNeighbor
ts
(queryPoint: NumericPoint, index: KDTree, maxDistance?: number,
depth?: number, bestMatch?: KDTreeSearchResult, ignoreX?:
boolean, ignoreY?: boolean) => KDTreeSearchResult
Parameters
- queryPoint
NumericPoint
- index
KDTree
- maxDistance
number
- depth
number
- bestMatch
KDTreeSearchResult
- ignoreX
boolean
- ignoreY
boolean