mesh — библиотека C ++ для получения регулярных сеток из 3D-файлов, таких как STL

Кажется, есть некоторые библиотеки, включая CGAL, для создания сеток из 2D или 3D модели.

Вопрос: В среде C ++, каков наилучший способ получить набор регулярных узлов для представления объекта, заданного в формате 3D-файла, таком как STL?

Чтобы объяснить вопрос, позвольте мне привести пример. В 2D-случае квадрат может быть представлен набором «1», а пустое пространство может быть набором «0».

Есть ли библиотека C ++, которая может справиться с этой задачей?

00000000000000
00000111000000
00000111000000
00000111000000
00000000000000

Заранее спасибо.

0

Решение

CGAL Само по себе это уже очень хороший вариант, если вы можете соответствовать лицензии (многие модули являются GPL или должны платить за использование в личных целях). Этот ответ показывает пример использования.

Еще одна полная библиотека Библиотека точечных облаков (PCL) (лицензия совместима с коммерческой). Если ваши входные данные упорядочены (как показано в вопросе), вы можете использовать pcl::OrganizedFastMesh учебный класс.
Если ваши данные не упорядочены,
затем pcl::GreedyProjectionTriangulation может быть лучше.

Наконец, если вы используете PCL, вы можете сохранить вашу треугольную сетку в STL, используя [pcl::io::savePolygonFileSTL] (http://docs.pointclouds.org/1.7.0/group__io.html#ga3223bdca3003262efbd8c475d4ab7cc6].

В заключение, лучше, чем пытаться найти библиотеку, которая точно соответствует вашему формату ввода, найти библиотеку, которая может генерировать желаемый результат, а затем приспособить ваш ввод и вывод к нему через конвертеры. Конечно, если ваши данные не содержат требуемых данных, таких как нормали, вы должны либо вычислить их ранее, либо искать другой метод;).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]