Я пытаюсь использовать CGAL для триангуляции Delaunay. Я использовал один из образцов CGAL для вычисления триангуляции, которая включает атрибут поля высоты.
Проблема, с которой я сталкиваюсь, заключается в том, что я понятия не имею, как получить полученную триангуляцию. Я понял, как получить face_iterator, но я не знаю, что делать дальше. То, что я надеюсь получить, - это индекс в массив точек для каждого из трех точек на каждом треугольнике.
У меня возникают проблемы с использованием всех вложенных шаблонов:
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Triangulation_euclidean_traits_xy_3.h>
#include <CGAL/Delaunay_triangulation_2.h>
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Triangulation_euclidean_traits_xy_3<K> Gt;
typedef CGAL::Delaunay_triangulation_2<Gt> Delaunay;
typedef K::Point_3 Point;
int main()
{
//initialize the points with some trivial data
std::vector<Point> pts;
pts.push_back(Point(1., 2., 3.));
pts.push_back(Point(2., 2., 3.));
pts.push_back(Point(1., 3., 3.));
pts.push_back(Point(4., 2., 3.));
//create a delaunay triangulation
Delaunay dt;
dt.insert(pts.begin(), pts.end());
//iterate through the faces
Delaunay::Finite_faces_iterator it;
for (it = dt.finite_faces_begin(); it != dt.finite_faces_end(); it++)
{
//What do I do here??
}
return 0;
}