Само kd-дерево предназначено для точек объектов. Даже для коробок, сфер или чего-то подобного. Я верю, что вы можете каким-то образом использовать дерево 6d, в котором хранится minx, maxx, miny, maxy, minz, maxz
; но я не совсем уверен, как правильно его запросить.
R * -дерево (Википедия) может быть лучшим выбором здесь. Он действительно предназначен для объектов с пространственным расширением. Если вы посмотрите соответствующие публикации, они даже экспериментировали с различными приближениями сложных объектов; например, окупится ли их триангуляция, использование окружности, ограничительной рамки и, что интересно, 5-угловой многоугольник IIRC в некоторых случаях показал наилучшую производительность.
В любом случае, семейство R * -деревьев может быть интересным выбором.