bug in simplify in case a sloop is created when an edge is simplified.

For details see comments added
This commit is contained in:
Sébastien Loriot 2011-05-27 11:26:40 +00:00
parent 8460d82726
commit a8b69a49cd
1 changed files with 16 additions and 1 deletions

View File

@ -590,7 +590,22 @@ class SNC_simplify_base : public SNC_decorator<SNC_structure> {
SHalfloop_handle sl;
CGAL_forall_shalfloops(sl, *this->sncp()) {
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());
}
}