Можно ли считать точки копланарными в триангуляции CGAL Делоне (или любой другой поддерживаемой триангуляции), даже если это не так?

#c #computational-geometry #cgal #delaunay #degenerate-dimension

#c #вычислительная геометрия #cgal #делоне #вырожденное измерение

Вопрос:

У меня есть многогранник, и точки граней (для каждой из граней) в основном копланарны, но CGAL утверждает, что это не так, это имеет смысл, поскольку точки считываются из файла, и в нем всего 14 значащих цифр, поэтому они не будут точно копланарными. Есть ли способ учесть допуск в предположении, что точки грани копланарны, чтобы не иметь мозаики с некоторыми объемами порядка 1e-17? Например, как сообщить CGAL, что, скажем, (0, 0.0000) и (1, 0.0001) находятся на одной линии? Возможно ли это вообще?

На данный момент я просто игнорирую фрагменты после вычисления объемов и получаю триангуляцию (конечно, результирующая оболочка не будет выпуклой по стандартам CGAL) приличных невырожденных tet, которые я использую в качестве раздела для интеграции функций на многограннике. Я доволен этим, если это самый быстрый способ сделать это, не так ли? Я использую ядро EPIC.

Любые советы или ссылки приветствуются, потому что я довольно новичок в CGAL. Спасибо.

Комментарии:

1. Похоже, что нет способа указать CGAL обрабатывать неплоские грани как плоские, однако вы можете изменить свои входные данные — этот процесс называется планаризацией . Реализовано ли это в CGAL? Я тоже хотел бы знать

2. Поскольку точки с числами с плавающей запятой находятся на дискретной сетке, вероятно, не всегда возможно найти для них позиции, чтобы они были копланарными с произвольной точностью. Мне интересно, помогут ли вам алгоритмы оптимизации сетки ( doc.cgal.org/latest/Mesh_3/index.html#Mesh_3OptimizationPhase ). Или, может быть, некоторые шаги тетраэдрической перекомпоновки ( doc.cgal.org/latest/Tetrahedral_remeshing /… ).