Voici un code:CGAL 3.4: Comment obtenir des coordonnées de vertex finies à partir d'un 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
}
De l'manual:
« Les bords ne sont pas explicitement représentés, ils ne sont représentés implicitement par les relations de contiguïté de deux faces Chaque arête a deux représentations implicites.: le bord d'une face f qui est opposée au sommet indexé i, peut être représenté ainsi qu'un bord du voisin (i) de f. "
Cela me va bien ... mais comment obtenir les sommets de fin du bord en utilisant un CT::Finite_edges_iterator
dans le code donné ci-dessus?
Mise à jour: J'ai réussi à trouver cette solution:
Segment s = ct.segment(eit);
const Point& p1 = s.point(0);
const Point& p2 = s.point(1);
Je cherche toujours une meilleure façon de le faire.
Je pense que la façon dont vous le faites est très bien. – tixxit