Частично отвечая на ваши вопросы:
3 / Вы можете использовать библиотеку openmesh для построения сетки ваших очков.Это позволяет очень быстро достичь первого кольца соседей, как объяснено здесь , а также всех ребер и граней.Я не могу быть уверен, что именно структура данных обеспечивает самый быстрый доступ к этой информации.Чтобы дать вам подсказку о том, какую скорость ожидать, в своей работе я использую openmesh: выполнение 30 циклов for, каждый цикл проходит по первому кольцу соседей 500 000 вершин моей сетки и вычисляет некоторую арифметику (обычно центр тяжести).), в общей сложности занимает менее 100 мс.
1 / С помощью openmesh вы можете в любое время сбросить позицию точки без изменения ее связности (она не удалит уже определенные ребра и грани).
2 / Чтобы проверить, нужно ли повторное смешивание, вы должны проверить, выполняется ли условие Делоне в каждой точке вашей сетки.Если это не так, снимите целые или поменяйте местами подходящие края.
Надеюсь, это поможет!