CollisionEntrySorter: Check if entry has surface point

Fixes #435
This commit is contained in:
loblao 2018-10-30 12:13:58 -03:00 committed by rdb
parent 14411f592e
commit 604366aaa7

View File

@ -22,10 +22,15 @@ class CollisionEntrySorter {
public: public:
CollisionEntrySorter(CollisionEntry *entry) { CollisionEntrySorter(CollisionEntry *entry) {
_entry = entry; _entry = entry;
LVector3 vec = if (entry->has_surface_point()) {
entry->get_surface_point(entry->get_from_node_path()) - LVector3 vec =
entry->get_from()->get_collision_origin(); entry->get_surface_point(entry->get_from_node_path()) -
_dist2 = vec.length_squared(); entry->get_from()->get_collision_origin();
_dist2 = vec.length_squared();
}
else {
_dist2 = make_inf((PN_stdfloat)0);
}
} }
bool operator < (const CollisionEntrySorter &other) const { bool operator < (const CollisionEntrySorter &other) const {
return _dist2 < other._dist2; return _dist2 < other._dist2;