Skip to content

Commit

Permalink
update status of border edges when removing a (degenerate) border face
Browse files Browse the repository at this point in the history
  • Loading branch information
janetournois committed Jan 13, 2025
1 parent 5c8fdf6 commit dd35cc7
Showing 1 changed file with 13 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1832,6 +1832,17 @@ namespace internal {
// else keep current status for en and eno
}

void remove_border_face(const halfedge_descriptor h)
{
CGAL_assertion(is_border(opposite(h, mesh_), mesh_));
for (halfedge_descriptor hf : halfedges_around_face(h, mesh_))
{
set_status(hf, MESH_BORDER); //only 1 or 2 of the listed halfedges
//will survive face removal, but status will be correct
}
CGAL::Euler::remove_face(h, mesh_);
}

template<typename Bimap, typename SizingFunction>
bool fix_degenerate_faces(const vertex_descriptor& v,
Bimap& short_edges,
Expand Down Expand Up @@ -1861,7 +1872,7 @@ namespace internal {

if(is_border(opposite(h, mesh_), mesh_))
{
CGAL::Euler::remove_face(h, mesh_);
remove_border_face(h);
continue;
}

Expand All @@ -1872,7 +1883,7 @@ namespace internal {

if(is_border(hfo, mesh_))
{
CGAL::Euler::remove_face(h, mesh_);
remove_border_face(h);
break;
}
vertex_descriptor vc = target(hf, mesh_);
Expand Down

0 comments on commit dd35cc7

Please sign in to comment.