From 604366aaa74259d32d54d2530bac3810ad35d687 Mon Sep 17 00:00:00 2001 From: loblao Date: Tue, 30 Oct 2018 12:13:58 -0300 Subject: [PATCH] CollisionEntrySorter: Check if entry has surface point Fixes #435 --- panda/src/collide/collisionHandlerQueue.cxx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/panda/src/collide/collisionHandlerQueue.cxx b/panda/src/collide/collisionHandlerQueue.cxx index 75761362bd..0f6acaba52 100644 --- a/panda/src/collide/collisionHandlerQueue.cxx +++ b/panda/src/collide/collisionHandlerQueue.cxx @@ -22,10 +22,15 @@ class CollisionEntrySorter { public: CollisionEntrySorter(CollisionEntry *entry) { _entry = entry; - LVector3 vec = - entry->get_surface_point(entry->get_from_node_path()) - - entry->get_from()->get_collision_origin(); - _dist2 = vec.length_squared(); + if (entry->has_surface_point()) { + LVector3 vec = + entry->get_surface_point(entry->get_from_node_path()) - + entry->get_from()->get_collision_origin(); + _dist2 = vec.length_squared(); + } + else { + _dist2 = make_inf((PN_stdfloat)0); + } } bool operator < (const CollisionEntrySorter &other) const { return _dist2 < other._dist2;