Estoy intentando usar CGAL para hacer algo de triangulación de Delaunay. Usé una de las muestras de CGAL para calcular una triangulación que incluye un atributo de campo de altura.Cómo iterar sobre las caras en CGAL
El problema que tengo es que no tengo idea de cómo obtener la triangulación resultante. Descubrí cómo obtener el face_iterator, pero no sé qué hacer desde allí. Lo que espero obtener es un índice en la matriz de puntos para cada uno de los 3 puntos en cada triángulo.
Tengo problemas para vadear a través de todas las plantillas anidadas:
#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;
}
it.something ... sí ayuda finalización de código en absoluto? –
Visual Studio 2008 no puede realizar el código completo en este código :( –
Resalte Delaunay :: Finite_faces_iterator y vaya a la definición. Rastree el archivo .h y vea qué funciones están disponibles. Lo será. –