ここにいくつかのコードがあります:
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
}
マニュアルから:
「エッジは明示的に表現されず、2 つの面の隣接関係を通じて暗黙的に表現されるだけです。各エッジには 2 つの暗黙的な表現があります。インデックス i の頂点に対向する面 f のエッジは、 f の隣接 (i) のエッジ。"
CT::Finite_edges_iterator
それは私には問題ありません...しかし、上記のコードでa を使用してエッジの終了頂点を取得するにはどうすればよいですか?
更新: 私はこの解決策を思い付くことができました:
Segment s = ct.segment(eit);
const Point& p1 = s.point(0);
const Point& p2 = s.point(1);
私はまだこれを行うためのより良い方法を探しています。