collide: fix erroneous collision if sphere is under edge of polygon

Reproducible by the code in #907, occurs if the sphere is close to the edge, but its center is off and under the polygon.
This commit is contained in:
rdb 2020-05-05 16:33:20 +02:00
parent 2ed4516cb2
commit ed73394275

View File

@ -508,8 +508,8 @@ test_intersection_from_sphere(const CollisionEntry &entry) const {
max_dist = csqrt(max_dist_2);
}
if (dist > max_dist) {
// There's no intersection: the sphere is hanging off the edge.
if (dist > max_dist || -dist > max_dist) {
// There's no intersection: the sphere is hanging above or under the edge.
return nullptr;
}