A simple quadtree implementation.
npm i @floorplanner/quadtree
QuadTreeThe QuadTreeQuadTreeBoundaryA 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';letwidth=800;// width of the treeletheight=600;// height of the treeletcapacity=10;// capacity of a nodeletmax_level=5;// maximum recursion depthlettree=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);});letdata=tree.query(newnewQuadTreeBoundary(0,0,200,200));console.log(data);