2014-10-07 67 views
0

使用CGAL,使用任何內核,但最好是Epeck,我怎樣才能安全地合併Polyhedron_3的兩個共面(任何角度)的面?這兩個方面都在相同的 Polyhedron_3表面上並且已經共享一個或多個邊緣。期望的結果是共同邊緣全部被去除,兩個面成爲單個面,並且在操作之後沒有天線或未連接的頂點保留。作爲一個例子,我想合併下圖所示的小平面F1和F2,並刪除由HE1,HE2和HE3表示的邊。CGAL:如何合併具有多個公共邊的兩個(共面)多面體構面?

merge example diagram

我想達到相同的結果CGAL的join_facet,但(我相信)join_facet僅用於連接方面它只有一個共同的優勢是有用的。如果更多,join_facet可能會創建天線,導致多面體上的後續操作失敗。

計算方面是否共面不是問題的一部分,我可以自己處理。

最終目標是合併共面的三角多面體的所有面。我假設這樣做的最好方法是迭代合併多面體的觸摸共面面。因此,我也會接受解釋替代方法來達到預期結果的答案。

回答

0

如果您的構面具有邊數,則可以調用函數join_loop

+0

'join_loop'的幫助指出:「兩個構面和沿着由g表示的構面的頂點都被移除」。我認爲這意味着如果他們感動,在手術後會有一個洞。該圖還意味着這是用於連接兩個不連接的方面。你能否提供一個在這方面使用的小例子? – crobar 2014-10-07 12:54:37

+0

如果您有兩個四面體具有一個共面的小平面,這將允許將其去除,然後多面體將只綁定一個體積。 – sloriot 2014-10-08 08:42:08

+0

我已經澄清了這個問題,我不想合併不同多面體的兩個方面,我想合併* same *多面體的兩個方面,就像使用'join_facet'一樣,除了'join_facet'只是用於連接僅具有單個公共邊的刻面。如果還有更多,'join_facet'可能會創建天線。最終目標是合併共面的三角多面體的所有面。 – crobar 2014-10-08 09:16:20