 (def o (time (reduce add-point (octree 0 0 0 100 100 100) [[55 10 25] [25 10 55] [55 11 25]])))
 
 
-(let [points [[55 10] [25 10] [55 11] [52 11]]
+(let [points [[55 10] [55 11] [52 11] [25 10]]
       q (reduce add-point (quadtree 0 0 100 100) points)]
   (pprint q)
   (reduce

(def ^{:const true :private true} qt-children [nil nil nil nil])
(def ^{:const true :private true} ot-children [nil nil nil nil nil nil nil nil])

(defrecord QuadtreeNode [x y w h children data]
  TreeOps
  (child-index-for-point [this [px py]]
    (if (< px (+ x w))

  [this p path]
  (if (:children this)
    (let [[c i] (make-child-for-point this p false)]
      (recur c p (conj path [this i])))
    (let [data (:data this)]
      (if data
        (if (m/delta= data p)
