Я ищу хорошую библиотеку 3D Mesh
Я пробовал и CGAL, и OpenMesh, но оба с треском провалились в последнем пункте.
В частности, CGAL, за которым невозможно следовать даже с помощью самых продвинутых инструментов анализа кода.
Пока серьезно подумываю вытащить свою.
Я предпочитаю C++, но я открыт для других вариантов.





Могу я спросить, почему последний пункт является обязательным?
Библиотеки, написанные для общего пользования, должны быть как можно более универсальными, чтобы их могла использовать как можно более широкая аудитория. В C++ это часто лучше всего делать с помощью шаблонов. Было бы ужасно отстойно, если бы была найдена хорошая библиотека, только чтобы обнаружить, что она бесполезна для ваших целей, потому что в ней использовались числа с плавающей запятой вместо двойных.
CGAL, например, похоже, принял хорошо известную и хорошо протестированную парадигму STL для написания общих и расширяемых библиотек C++. Это действительно затрудняет использование инструментов анализа кода; Я сомневаюсь, что они хорошо разбираются в заголовках STL.
Но вы пытаетесь использовать библиотеку или изменить ее? В любом случае, похоже, у них есть очень качественная документация (например, Руководство по ядру), которая должна упростить понимание того, что вам нужно делать, без необходимости прибегать к чтению их кода.
Отказ от ответственности: я знаю, что вы не об этом просите. Но я не думаю, что то, что вы ищете, существует. Редко можно встретить необычайно с открытым исходным кодом с документацией, столь же хорошей, как то, что я видел при сканировании через CGAL. Я настоятельно рекомендую вам еще раз взглянуть на это.
Во-первых, несколько общих комментариев о ваших требованиях:
Насколько я понимаю ваш вопрос, мне кажется, что вы не совсем ясно понимаете смысл таких библиотек, как CGAL и OpenMesh. Такие библиотеки могут не предоставлять все необходимые инструменты более высокого уровня, но их цель - предоставить вам (особенно в случае CGAL) всю геометрическую структуру, на которой вы можете построить геометрическое приложение. Такие геометрические структуры очень сложно спроектировать, особенно из-за проблемы устойчивости, которая очень специфична для вычислительной геометрии. А без такой структуры создание надежного приложения - это ужасные усилия.
Если вы не можете найти библиотеку, которая соответствует вашим потребностям, вам следует серьезно подумать об использовании библиотеки, такой как CGAL, в качестве базовой структуры для вашей разработки. Это предотвратит появление проблем, связанных с надежностью, которые вы, как правило, начнете замечать только в конце процесса разработки, когда изменение базовой структуры будет болезненным. Кроме того, CGAL имеет обширную документацию и список рассылки очень активных пользователей.
Если вы не знаете о проблемах устойчивости программного обеспечения для работы с геометрией, загляните на эту страницу: проблемы устойчивости
Не знаю, может ли это быть вам полезно. Существует также другая библиотека, которая называется Mangrove TDS Library, свободно доступная по адресу http://mangrovetds.sourceforge.net. Она поддерживает любые типы форм (2d, 3d, любое измерение) с любыми доменами (многообразие, не многообразие, псевдомногообразия, комплексы iqm, симплициальные комплексы и т. д.). Возможно, он поддерживает нестандартные формы, то есть состоящие из частей разной размерности.
Его главное свойство - расширяемость в том смысле, что поддерживается любая топологическая структура данных. Это плагин, который можно изменять и загружать во время выполнения.
Его реализация основана на индексировании сущностей на основе массивов, закодированных в структуре данных, поддерживающих итераторы. Он также поддерживает динамические свойства.
Наконец, он поддерживает неявное представление сущностей, не закодированных напрямую в структуре данных (призрачные сущности), что повышает эффективность топологических запросов.
Я не знаю, удовлетворяет ли он вашим требованиям, но взгляните на VCG