mirror of https://github.com/CGAL/cgal
bug in simplify in case a sloop is created when an edge is simplified.
For details see comments added
This commit is contained in:
parent
8460d82726
commit
a8b69a49cd
|
|
@ -590,7 +590,22 @@ class SNC_simplify_base : public SNC_decorator<SNC_structure> {
|
||||||
SHalfloop_handle sl;
|
SHalfloop_handle sl;
|
||||||
CGAL_forall_shalfloops(sl, *this->sncp()) {
|
CGAL_forall_shalfloops(sl, *this->sncp()) {
|
||||||
SM_decorator SD(&*sl->incident_sface()->center_vertex());
|
SM_decorator SD(&*sl->incident_sface()->center_vertex());
|
||||||
SD.store_sm_boundary_object( sl, sl->incident_sface());
|
//I added the following 'if' because even if the map has been cleared, when merging edges
|
||||||
|
//if one sloop is created and the vertex not simplified, then the map is updated.
|
||||||
|
//In the example below, the edge e is removed and a sloop is create on the sphere map
|
||||||
|
//of a vertex v. But since three edges are still incident to v, v is not simplified.
|
||||||
|
//There is one point where the distance between two non-edge-adjacent facets is 0.
|
||||||
|
//
|
||||||
|
// | |
|
||||||
|
// | | \ | / | |
|
||||||
|
// | / \ | / | /
|
||||||
|
// | / \|/ | /
|
||||||
|
// | / / | /
|
||||||
|
// | / / e | /
|
||||||
|
// |/______/_______|/
|
||||||
|
//
|
||||||
|
if (!SD.map()->is_sm_boundary_object(sl))
|
||||||
|
SD.store_sm_boundary_object( sl, sl->incident_sface());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue