将Nef多面体分裂为离散体积以转换为常规多面体

时间:2015-10-01 07:59:51

标签: cgal

我正在从常规多面体转换的Nef多面体上做一些布尔运算。在进行布尔运算后,我想将生成的Nef多面体转换为正多面体。然而,如果结果是单个体积,似乎Nef多面体仅支持。但是,一些布尔操作会导致多个卷。有没有办法将Nef多面体分成它包含的离散体积并将它们分别转换回常规多面体?或者有一些更合适的方法吗?

我找到了Nef_polyhedron_3 :: Volume和相应的迭代器,但是我无法找到利用这些来分割Nef多面体的方法。

修改:

我终于好好看看这个。提供的代码几乎开箱即用。我遇到了一些很容易解决的问题。首先,我在Nef_polyhedron类之外实现了BuildPolyhedronFromShell,因为我希望尽可能保持我的CGAl实现尽可能干净。但是必须公开Nef_polyhedron_3 :: Triangulation_handler2,因为它在BuildPolyhedronFromShell中使用。

此外,代码最初创建具有向内法线的壳。这是通过将Halffacet_const_handle f = opposite_facet->twin();更改为Halffacet_const_handle f = opposite_facet;来解决的。我不知道这是否解决了一般情况下的问题,但我适用于我尝试过的案例。

感谢您的帮助。

0 个答案:

没有答案