anchor.diff:        (push (cons cur-idx (cdr inter)) res))
       (reverse res)))
   
  -(defun ray-tree-intersection (tree origin dir &optional (depth 0))
  +(defun ray-tree-intersection (tree origin dir &optional (depth 0) (path (list tree)))
     "Search intersection of a ray with closest to the ORIGIN
  -   cuboid in TREE"
  +   cuboid in TREE. Returns point in which intersection is occured
  +   and path to a tree leaf in which intersected voxel is stored."
     (declare (optimize (speed 3))
              (type (integer 0 #.most-positive-fixnum) depth))
     (let* ((bb (node-bounding-box tree))
  
positive.code:                                               (sort plane-intersections #'get-closest-tagged)))))
  
             (dolist (subspace plane-intersections)
               (let ((inter (ray-tree-intersection (nth (car subspace)
                                                        (node-children tree))
                                                   (cdr subspace) dir (1+ depth))))
                 (if inter (return inter))))))))))
  
  
  ;; More precise but slower
  
negative.code:                         (if (< (calc-abs-metric dot1 origin)
                                 (calc-abs-metric dot2 origin))
                              dot1 dot2)))
                   (values
                    (reduce #'get-closest leaf-intersections)
                    path)))))
          
          (t
           (let ((center (node-dots tree))
  