OpenMesh多线程网格导入

OpenMesh multithreaded mesh import

我找不到任何关于 OpenMesh 操作线程安全的信息, 具体来说,我正在寻找多线程网格导入。目前我正在通过以下方式填充我的网格:

OpenMesh::IO::ImporterT

在单线程中。但如果可能的话——我不想在多线程中执行此操作,而不会阻塞:

meshImporter.add_face(faceHandle);
meshImporter.add_vertex(vertex);

但它比我想象的要慢一点(它消耗了下一个操作的一半以上时间 - 抽取相同的网格)。

None 的 OpenMesh 数据结构提供线程安全修改。 add_faceadd_vertex 等操作需要更新其他元素类型的索引,以保持数据结构处于一致状态。因此,在同一网格上同时调用这些方法可能会导致网格数据损坏。

由于 OpenMesh::IO::ImporterT 主要将其调用转发到底层网格,因此适用相同的限制:必须同步对 OpenMesh 的所有更新。