bug fix in point_update: boundary_items of sfaces were not set correctly

This commit is contained in:
Peter Hachenberger 2010-05-04 16:44:30 +00:00
parent 067c462173
commit 64d5ca0a64
1 changed files with 23 additions and 19 deletions

View File

@ -1467,25 +1467,29 @@ pointer_update(const SNC_structure<Kernel,Items,Mark>& D)
} }
CGAL_forall_sfaces(sf,*this) { CGAL_forall_sfaces(sf,*this) {
sf->center_vertex() = VM[sf->center_vertex()]; sf->center_vertex() = VM[sf->center_vertex()];
sf->volume() = CM[sf->volume()]; sf->volume() = CM[sf->volume()];
SFace_cycle_iterator sfc; SFace_cycle_iterator sfc;
for(sfc = sf->sface_cycles_begin(); for(sfc = sf->sface_cycles_begin();
sfc != sf->sface_cycles_end(); ++sfc) { sfc != sf->sface_cycles_end(); ++sfc)
if (sfc.is_svertex()) { {
SVertex_handle sv(sfc); if (sfc.is_svertex()) {
*sfc = make_object(EM[sv]); SVertex_handle sv(sfc);
store_sm_boundary_item(sv,sfc); sv = EM[sv];
} else if (sfc.is_shalfedge()) { *sfc = make_object(sv);
se = SHalfedge_handle(sfc); store_sm_boundary_item(sv,sfc);
*sfc = make_object(SEM[se]); } else if (sfc.is_shalfedge()) {
store_sm_boundary_item(se,sfc); se = SHalfedge_handle(sfc);
} else if (sfc.is_shalfloop()) { se = SEM[se];
sl = SHalfloop_handle(sfc); *sfc = make_object(se);
*sfc = make_object(SLM[sl]); store_sm_boundary_item(se,sfc);
store_sm_boundary_item(sl,sfc); } else if (sfc.is_shalfloop()) {
} else CGAL_error_msg("damn wrong boundary item in sface."); sl = SHalfloop_handle(sfc);
} sl = SLM[sl];
*sfc = make_object(sl);
store_sm_boundary_item(sl,sfc);
} else CGAL_error_msg("damn wrong boundary item in sface.");
}
} }
} }