From 354959972cd1eebf75683095c66e8eff25ca3af8 Mon Sep 17 00:00:00 2001 From: Jane Tournois Date: Mon, 29 Sep 2014 16:39:55 +0200 Subject: [PATCH] bug fix in restoration of Cell data after revert_move we still don't backup infinite cells because the infinite vertex does not have a proper vertex ID (i.e. meshing_info()) However the facet data should be restored in Delaunay-restricted facets that belong to an infinite cell (i.e. mirror facets of restricted facets that belong to the convex hull) --- Mesh_3/include/CGAL/Mesh_3/C3T3_helpers.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Mesh_3/include/CGAL/Mesh_3/C3T3_helpers.h b/Mesh_3/include/CGAL/Mesh_3/C3T3_helpers.h index ef7e7a5b96c..c46fb2bcee1 100644 --- a/Mesh_3/include/CGAL/Mesh_3/C3T3_helpers.h +++ b/Mesh_3/include/CGAL/Mesh_3/C3T3_helpers.h @@ -1477,8 +1477,16 @@ private: c->set_facet_surface_center(i, facet_surface_center_[old_i]); c->set_facet_surface_center_index(i, surface_center_index_table_[old_i]); - //here we don't need to update mirror_facet because it's been either - //backuped, or unchanged + + //we need to update mirror_facet when the i-th neighbor is + // an infinite cell + Cell_handle c2 = c->neighbor(i); + if(c3t3.triangulation().is_infinite(c2)) + { + const int i2 = c2->index(c); + c2->set_facet_surface_center(i2, facet_surface_center_[old_i]); + c2->set_facet_surface_center_index(i2, surface_center_index_table_[old_i]); + } } }