void CollapseVertex uVertex v Collapse the edge uv by moving vertex u onto v Actually remove tris on uv then update tris that have u to have v and then remove u if!v u is a vertex all by itself
该函数用于将边uv合并,即将顶点u移动到顶点v上。具体操作如下:
- 判断顶点v是否存在,如果不存在,则顶点u是一个单独的顶点,直接删除顶点u,并返回。
- 创建一个临时数组tmp,用于存储顶点u的所有邻居顶点。
- 删除边uv上的三角形:
- 遍历顶点u的所有三角形,如果该三角形包含顶点v,则删除该三角形。
- 更新剩余三角形的顶点,将顶点u替换为顶点v:
- 遍历顶点u的所有三角形,将其中的顶点u替换为顶点v。
- 删除顶点u。
- 重新计算邻居顶点的边合并成本:
- 遍历临时数组tmp中的所有顶点,重新计算其边合并成本。
- 函数结束。
注:该函数依赖于其他函数ComputeEdgeCostAtVertex和ReplaceVertex的实现。
原文地址: https://www.cveoy.top/t/topic/hQsP 著作权归作者所有。请勿转载和采集!