工具介绍
一个通用编程头的 C++ 库,用于处理多边形和多面体网格
CinoLib 是一个用于处理多边形和多面体网格的 C++ 库。它支持由三角形、四边形或一般多边形组成的曲面网格,以及由四面体、六面体或一般多面体组成的体积网格。该库的一个特点是,所有支持的网格都继承于一个独特的基类,该基类实现了它们的共同特征,从而允许部署在任何上述网格上运行的抽象网格的算法。这使得可以仅仅实现一次算法,并在任何可能的网格上运行相同的代码,从而避免代码重复并减少调试工作量。
:boom:CinoLib 在 2024 年获得了 几何处理软件奖:boom:
定位 GitHub 托管了各种优秀的学术图形库,用于网格处理。如果您主要处理三角网格的几何数据,那么 libigl、GeometryCentral 或 VCG 等工具可能是您所需要的。如果您对渲染感兴趣,Yocto/GL 速度极快,并实现了许多相关算法。OpenMesh、CGoGN2 和 PMP 的范围稍大,可以处理一般的多边面。对于体积,libigl 和 GeometryCentral 的极小部分提供了对特定实体(例如四面体或六面体)的基本支持,但大部分库都专注于面。相反,OpenVolumeMesh 和 CGoGN3 专注于体积,可以处理一般的多面体元素,但它们不支持面网格。据我所知,只有 Geogram 拥有可以同时托管面和体积元素的统一数据结构,但它只支持六面体、四面体、锥体和金字塔作为体积单元。