From caae6db52b8a8b9a0d29a4590e31405f2e19ff1c Mon Sep 17 00:00:00 2001 From: Jane Tournois Date: Mon, 23 May 2016 16:15:22 +0200 Subject: [PATCH] deal with boundaries --- .../demo/Polyhedron/Scene_polyhedron_selection_item.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.h b/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.h index 14d379a69f8..4118a1af8cd 100644 --- a/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.h +++ b/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.h @@ -660,8 +660,13 @@ public: for (Selection_set_edge::iterator eit = selected_edges.begin(); eit != selected_edges.end();) { - if (selected_facets.find(eit->halfedge()->face()) != selected_facets.end() - && selected_facets.find(eit->halfedge()->opposite()->face()) != selected_facets.end()) + if(//both incident faces will be erased + (selected_facets.find(eit->halfedge()->face()) != selected_facets.end() + && selected_facets.find(eit->halfedge()->opposite()->face()) != selected_facets.end()) + //OR eit is a boundary edge and its incident face will be erased + || (eit->halfedge()->is_border_edge() + && (selected_facets.find(eit->halfedge()->face()) != selected_facets.end() + || selected_facets.find(eit->halfedge()->opposite()->face()) != selected_facets.end()))) { edge_descriptor tmp = *eit; ++eit;