CGAL: Как создать сетку поверхности, которая заполняет граничную кривую?

У меня есть вектор сегментов, который является результатом 2D-альфа-формы, и я хочу сначала создать триангуляцию 2D-поверхности, охватывающей эту форму. В конечном итоге я хотел бы выдавить полученную поверхность.

Существуют ли какие-либо примеры или функции, созданные для этой цели?


person James    schedule 16.10.2018    source источник


Ответы (1)


Если у вас есть 2D-контуры, которые вы хотите триангулировать, вы можете использовать триангуляцию Делоне с ограничениями для триангуляции. См. этот пример, который используется для триангуляции многоугольников (с отверстиями).

Что касается экструзии, вам нужно преобразовать свою точку в 3D-точки, а затем вы можете использовать функцию extrude_mesh().

person sloriot    schedule 16.10.2018
comment
Разве мне не нужно будет делать больше, чем просто конвертировать мои 2D-точки в 3D-точки? Мне нужно сохранить треугольники двумерной триангуляции. - person James; 17.10.2018
comment
Существует способ использования Face_filtered_graph для прямого использования CDT, но самое простое решение — скопировать/вставить/адаптировать код cdt2_to_face_graph() из этот плагин, чтобы создать Surface_mesh и использовать его для экструзии. - person sloriot; 17.10.2018
comment
Что вы пробовали и что не сработало? Функция довольно проста. Это вопрос типов, которые вы использовали? - person sloriot; 28.08.2019