首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CGAL edge_collapse断言失败

CGAL edge_collapse断言失败
EN

Stack Overflow用户
提问于 2021-02-05 11:14:46
回答 1查看 92关注 0票数 0

我使用CGAL5.1,内核类型为typedef CGAL::Simple_cartesian<float> Kernel;,曲面网格类型为typedef CGAL::Surface_mesh<Kernel::Point_3> Mesh;

我通过Assimp加载网格,一切看起来都很好。但是当我运行一个edge_collapse时,我得到了一个断言失败的CGAL_assertion(resulting_vertex_count == vertices(m_tm).size());,可以肯定的是,对顶点总数减去删除的顶点计数的数学结果表明,不管我设置的比率如何,它都是1。

有关守则是:

代码语言:javascript
复制
            if(!CGAL::is_triangle_mesh(*node->mesh_info.mesh))
            {
                std::cerr << "Input geometry is not triangulated." << std::endl;
                return;
            }
            if(!is_valid_polygon_mesh(*node->mesh_info.mesh))
            {
                std::cerr << "Input geometry is not valid." << std::endl;
                return;
            }

            SMS::Count_ratio_stop_predicate<Mesh> stop(reduction);
            SMS::edge_collapse(*node->mesh_info.mesh, stop);

这两次测试都通过了,我有什么明显的遗漏吗?我还没有尝试其他算法,也没有设置任何可选属性。我已经使用Assimp的工具清除了网格,删除了退化的面和边,并合并了一致的顶点,但是我没有尝试过CGAL的任何工具。

我在每个顶点上都有一个"v:uv“属性,但是无论默认值是什么,位置属性都是。

如果有人能给我一个健全的检查,我会很感激的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-08 19:21:35

当我试图把这个问题隔离到这里的时候,我开始四处游玩,发现因为我的网格很嘈杂,而且不完整--这是摄影测量扫描--标准的简化策略在我的边界上被破坏了。无视断言刚刚产生了一只海星。

因此,我遵循了用户手册中的例子,并将我的边界标记为不可移动的,现在它要高兴得多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66062263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档