CGAL:如何合并两个(共面的)多面体面和一个以上的公共边? [英] CGAL: How to merge two (coplanar) polyhedron facets with more than one common edge?

查看:438
本文介绍了CGAL:如何合并两个(共面的)多面体面和一个以上的公共边?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用CGAL,使用任何内核,但最好使用Epeck,如何安全地合并Polyhedron_3的两个(任意角度)共面的小面?两个面都在相同 Polyhedron_3曲面上,并且已经共享一个或多个边。理想的结果是,所有的公共边缘都被除去,两个小平面成为一个小平面,并且在手术后没有触角或未连接的顶点。例如,我想合并下图中所示的构面F1和F2,并删除由HE1,HE2和HE3表示的边。

With CGAL, Using any kernal, but preferably the Epeck, how can I safely merge two coplanar facets (of any degree) of a Polyhedron_3? Both facets are on the same Polyhedron_3 surface and already sharing one or more edges. The desired result is that the common edges are all removed, the two facets become a single facet, and no antennae or unconnected vertices remain after the operation. As an example, I would like to merge facets F1 and F2 shown in the diagram below, and have the edges denoted by HE1, HE2 and HE3 removed.

我想获得与CGAL相同的结果 join_facet ,除了(我相信) join_facet 仅用于连接仅具有一个公共边的小平面。如果还有更多内容,则 join_facet 可能会创建触角,从而导致多面体上的后续操作失败。

I want to achieve the same result as CGAL's join_facet, except that (I believe) join_facet is only useful for joining facets which only have a single common edge. If there are more, join_facet may create antennae, which causes subsequent operations on the polyhedron to fail.

计算是否这些面不是共面的,我自己可以解决。

Calculating whether the facets are coplanar is not part of the question, I can handle this myself.

最终目的是合并三角多面体的所有面,这些面是共面的。我认为最好的方法是迭代合并多面体的接触共面。因此,我也将接受回答,以解释达到预期结果的替代方法。

The ultimate aim is to merge all facets of a triangulated polyhedron which are coplanar. I am assuming the best way to do this is to iteratively merge touching coplanar facets of the polyhedron. I will therefore also accept answers which explain alternative means to achieve the desired result.

推荐答案

您可以调用函数 join_loop 边数。

You can call the function join_loop if your facets have the number of edges.

这篇关于CGAL:如何合并两个(共面的)多面体面和一个以上的公共边?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆