File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/node_modules/kdbush/src/index.js
import sort from './sort';
import range from './range';
import within from './within';
const defaultGetX = p => p[0];
const defaultGetY = p => p[1];
export default class KDBush {
constructor(points, getX = defaultGetX, getY = defaultGetY, nodeSize = 64, ArrayType = Float64Array) {
this.nodeSize = nodeSize;
this.points = points;
const IndexArrayType = points.length < 65536 ? Uint16Array : Uint32Array;
const ids = this.ids = new IndexArrayType(points.length);
const coords = this.coords = new ArrayType(points.length * 2);
for (let i = 0; i < points.length; i++) {
ids[i] = i;
coords[2 * i] = getX(points[i]);
coords[2 * i + 1] = getY(points[i]);
}
sort(ids, coords, nodeSize, 0, ids.length - 1, 0);
}
range(minX, minY, maxX, maxY) {
return range(this.ids, this.coords, minX, minY, maxX, maxY, this.nodeSize);
}
within(x, y, r) {
return within(this.ids, this.coords, x, y, r, this.nodeSize);
}
}