123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import { VectorArray } from 'zrender/lib/core/vector.js';
- declare type KDTreePoint = {
- array: VectorArray;
- };
- declare class KDTreeNode<T> {
- left: KDTreeNode<T>;
- right: KDTreeNode<T>;
- axis: number;
- data: T;
- constructor(axis: number, data: T);
- }
- /**
- * @constructor
- * @alias module:echarts/data/KDTree
- * @param {Array} points List of points.
- * each point needs an array property to repesent the actual data
- * @param {Number} [dimension]
- * Point dimension.
- * Default will use the first point's length as dimensiont
- */
- declare class KDTree<T extends KDTreePoint> {
- dimension: number;
- root: KDTreeNode<T>;
- private _stack;
- private _nearstNList;
- constructor(points: T[], dimension?: number);
- /**
- * Resursively build the tree
- */
- private _buildTree;
- /**
- * Find nearest point
- * @param target Target point
- * @param squaredDistance Squared distance function
- * @return Nearest point
- */
- nearest(target: T, squaredDistance: (a: T, b: T) => number): T;
- _addNearest(found: number, dist: number, node: KDTreeNode<T>): void;
- /**
- * Find nearest N points
- * @param target Target point
- * @param N
- * @param squaredDistance Squared distance function
- * @param output Output nearest N points
- */
- nearestN(target: T, N: number, squaredDistance: (a: T, b: T) => number, output: T[]): T[];
- }
- export default KDTree;
|