A simple quadtree implementation.
npm i @floorplanner/quadtree
QuadTree
The QuadTreeQuadTreeBoundary
A bounding box to be used withQuadTree::retreive
QuadTree.create(x, y, width, height, capacity, max_level)
Creates the quadtree.
insert(x, y, data = null)
Inserts an item at the specified coordinates.traverse(cb = null)
Traverses the tree, takes an optional callback method.query(bounds)
Retreives all data inside the specified bounds
new QuadTreeBoundary(x0, y0, x1, y1)
- Constructor
import {Quadtree, QuadTreeBoundary} from '@floorplanner/quadtree';
let width = 800; // width of the tree
let height = 600; // height of the tree
let capacity = 10; // capacity of a node
let max_level = 5; // maximum recursion depth
let tree = QuadTree.create(0, 0, width, height, capacity, max_level);
tree.insert(100, 100, {text: 'some data'});
tree.traverse(function (node) {
console.log(node.level, node.data);
});
let data = tree.query(new new QuadTreeBoundary(0, 0, 200, 200));
console.log(data);