Хм, получается хранить 4 точки для ноды - top-left, top-right, bottom-left, bottom-right.
И потом проверять вот это -
https://stackoverflow.com/questions/401847/circle-rectangle-collision-detection-intersection.
Выглядит немного сложно в реализации разве что, потому что сейчас я строю k-d дерево прям на входном массиве, не выделяя доп памяти...
Ок, спасибо. А на практике что лучше реализовать для такой задачи - vantage-point tree?