Filtering out the insertion of repeated weighted points, allowing

is_valid to return true...
This commit is contained in:
Camille Wormser 2007-07-04 12:08:20 +00:00
parent cac2d4b037
commit 90028cb645
1 changed files with 18 additions and 10 deletions

View File

@ -1068,16 +1068,24 @@ insert(const Weighted_point &p, Locate_type lt, Face_handle loc, int li)
} }
Vertex_handle vv = loc->vertex(li); Vertex_handle vv = loc->vertex(li);
if (power_test (vv->point(), p) < 0) { CGAL::Oriented_side side = power_test (vv->point(), p);
return hide_new_vertex (loc, p);
}
switch(side) {
case ON_NEGATIVE_SIDE:
return hide_new_vertex (loc, p);
case ON_POSITIVE_SIDE:
v = this->_tds.create_vertex(); v = this->_tds.create_vertex();
v->set_point(p); v->set_point(p);
exchange_incidences(v,vv); exchange_incidences(v,vv);
hide_vertex(loc, vv); hide_vertex(loc, vv);
regularize (v); regularize (v);
return v; return v;
case ON_ORIENTED_BOUNDARY:
return vv;
}
} }
case Base::EDGE: case Base::EDGE:
{ {