Browse Source

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.
rdb 5 years ago
parent
commit
ed73394275
1 changed files with 2 additions and 2 deletions
  1. 2 2
      panda/src/collide/collisionPolygon.cxx

+ 2 - 2
panda/src/collide/collisionPolygon.cxx

@@ -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;
   }