下面是一些代碼:CGAL 3.4:如何從Finite_edges_iterator獲取末端座標?
struct K : CGAL::Exact_predicates_inexact_constructions_kernel {};
typedef CGAL::Triangulation_vertex_base_2<K> Vb;
typedef CGAL::Constrained_triangulation_face_base_2<K> Fb;
typedef CGAL::Triangulation_data_structure_2<Vb,Fb> TDS;
typedef CGAL::Exact_predicates_tag Itag;
typedef CGAL::Constrained_triangulation_2<K, TDS, Itag> CT;
typedef CT::Point Point;
for (CT::Finite_edges_iterator eit = ct.finite_edges_begin();
eit != ct.finite_edges_end(); ++eit){
// TODO: list vertex co-ordinates here
}
從manual:
「邊緣沒有明確表示,他們只是含蓄地通過兩個面的鄰接關係來表示每個邊有兩個隱含的陳述:可以將與索引爲i的頂點相對的臉部f的邊緣以及f的鄰居(i)的邊緣表示爲「。
這對我來說很好......但是如何在上面給出的代碼中使用CT::Finite_edges_iterator
得到邊緣的頂點?
更新: 我設法想出了這個解決方案:
Segment s = ct.segment(eit);
const Point& p1 = s.point(0);
const Point& p2 = s.point(1);
我仍然在尋找一個更好的方式來做到這一點。
我認爲你這樣做的方式很好。 – tixxit