OpenMesh 有它的跳过迭代器,它跳过标记为删除的元素。循环器中是否有等价物?我正在考虑将标记为已删除的网格元素视为不再存在的循环器。请注意,这并不像使用现有循环器并测试元素是否被标记为删除那么简单,因为这没有考虑到删除可能导致的拓扑变化(相邻元素、连接元素等)。
问问题
52 次
2 回答
2
循环器使用网格连通性(如此处所述)在元素附近行走。当使用通常的 API(例如delete_vertex
、delete_edge
、delete_face
)删除网格元素时,这些元素将被标记为已删除,并且连接性会更新,以使已删除的元素不再可访问。通过构造,循环器无法到达已删除的元素,因此不需要区分跳过/非跳过循环器。
与循环器相比,迭代器不使用网格连接,而是简单地迭代所有元素的列表(在被调用之前可以包含已删除的元素)。garbage_collection
因此,存在迭代器的跳过/非跳过变体,它们可以排除或包含已删除的元素。
于 2020-10-23T07:41:34.687 回答
0
实际上,OpenMesh 在默认情况下似乎正是这样做的。标记为删除的元素被视为好像它们不存在于循环器中。
于 2020-10-22T18:05:52.347 回答