Le package Polygon Mesh Processing fournit la fonction CGAL::Polygon_mesh_processing::triangulate_faces
avec plusieurs surcharges. La chose la plus simple à faire serait
typedef CGAL::Simple_cartesian<float> Kernel;
typedef CGAL::Polyhedron_3<Kernel> Polyhedron_3;
Polyhedron_3 polyhedron = load_my_polyhedron();
CGAL::Polygon_mesh_processing::triangulate_faces(polyhedron);
Après cela, tous les visages en polyhedron
sont des triangles.
La fonction modifie le modèle en place, il faut donc utiliser un HalfedgeDS
prenant en charge la suppression. C'est la valeur par défaut, mais, par exemple, HalfedgeDS_vector
ne le fera pas.
Voir aussi un exemple officiel qui utilise Surface_mesh
au lieu de Polyhedron_3
: Polygon_mesh_processing/triangulate_faces_example.cpp
travail de mon projet avec le noyau Simple_cartesian. Est-ce que je peux utiliser cette fonction avec ce noyau? Désolé, je suis nouveau à CGAL ... –
zync
Vous pouvez essayer, mais il n'y a aucune garantie sur le résultat. Voir http://www.cgal.org/FAQ.html#inexact_NT. – sloriot
Que puis-je faire pour convertir un polyèdre avec Simple_cartesian en un avec Exact_predicates_inexact_constructions_kernel? – zync