На самом деле проблема такая (сформулировать это кратко не смог):
Есть трехмерная система координат с осями X, Y, Z
Нужно быстро находить точки, попадающие в заданный прямоугольник (x1, y1, x2, y2) и находящиеся "выше" некой заданной плоскости (z1).
Есть ли какие нибудь алгоритмы построения каких нибудь "деревьев" или еще чего нибудь, что позволит быстро искать эти точки? Время, которое уйдет на построение такого "дерева" не играет роли, важна скорость поиска, а так же (это уже опционально) возможность расширения алгоритма для n-мерного пространства.
Спасибо.