2013-08-01 28 views
1

我正在使用CGAL,並且我有一個用某些頂點創建的多邊形。CGAL - 從段2獲取邊緣

現在,我得到一個段,用:

Segment_2 segment = polygon.edge(i) 

其中i是指數從0polygon.size()

如何將Segment_2轉換爲Edge?就像有一個t.segment(Edge e)Edge得到Segment_2,我想要得到相反的結果(Segment_2Edge)。

現在我完全確定這個片段屬於Triangulation_2上的邊緣,我怎麼能得到它?也許有像triangulation.edge(Segment_2)之類的東西。

請幫忙。

回答

3

如果你一直保持兩個頂點處理對應程序段的兩個點,你可以使用這個功能:

bool 
CGAL::Triangulation_2< Traits, Tds >:: 
is_edge(Vertex_handle va, 
     Vertex_handle vb, 
     Face_handle & fr, 
     int & i 
) 

假設v1v2是頂點處理,並t您的三角對象:

Face_handle fh; 
int i; 
if(t.is_edge(v1, v2, fh, i)) { 
    Edge my_edge = Edge(fh, i); 
    // ... use your Edge 
} 
+0

This Works,thank you。 – eLRuLL