mirror of https://github.com/CGAL/cgal
Fix failing to detect that some gates are zombies
See comment in the code.
This commit is contained in:
parent
9a9f5b996d
commit
84dcbc389c
|
|
@ -1227,6 +1227,20 @@ private:
|
||||||
{
|
{
|
||||||
// std::cout << "new face has time stamp " << new_fh->time_stamp() << std::endl;
|
// std::cout << "new face has time stamp " << new_fh->time_stamp() << std::endl;
|
||||||
new_fh->set_label(m_tr.is_infinite(new_fh) ? Face_label::OUTSIDE : Face_label::INSIDE);
|
new_fh->set_label(m_tr.is_infinite(new_fh) ? Face_label::OUTSIDE : Face_label::INSIDE);
|
||||||
|
|
||||||
|
#ifndef CGAL_AW2_USE_SORTED_PRIORITY_QUEUE
|
||||||
|
// In DT2, the Bowyer-Watson algorithm is not used (at the moment): the Steiner point
|
||||||
|
// is inserted in a face, and then Delaunay is restored with a propagation of edge flips.
|
||||||
|
// That's an issue for the zombie strategy because a single face gets erased (and
|
||||||
|
// re-used), and the TDS2 (rightfully) does not mark faces being flipped as being
|
||||||
|
// erased, and thus we do not see the face as having changed in the AW2 zombie checks.
|
||||||
|
//
|
||||||
|
// So, we force an increment here to make sure that gates in the queue are correctly
|
||||||
|
// detected as zombies when popped.
|
||||||
|
//
|
||||||
|
// @todo it's not very clean to abuse the erase counter like that...
|
||||||
|
new_fh->increment_erase_counter();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
while(++new_fh != done);
|
while(++new_fh != done);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue