diff options
author | Andrea Catania <info@andreacatania.com> | 2018-04-12 07:59:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-12 07:59:12 +0200 |
commit | f0abdf06ad6dfc2ff4d403ff237281a4d5db46a6 (patch) | |
tree | ea9690df717ce6f53f2faa3fb49f5ec31824f245 | |
parent | d87307d850186d27d2c27c5916ec8c4744c14979 (diff) |
Rigidbody wake up when hitten by a kinematic body
-rw-r--r-- | modules/bullet/space_bullet.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/modules/bullet/space_bullet.cpp b/modules/bullet/space_bullet.cpp index 51a76ff8c5..9a88b4692b 100644 --- a/modules/bullet/space_bullet.cpp +++ b/modules/bullet/space_bullet.cpp @@ -1031,7 +1031,10 @@ bool SpaceBullet::recover_from_penetration(RigidBodyBullet *p_body, const btTran for (int i = recover_broad_result.result_collision_objects.size() - 1; 0 <= i; --i) { btCollisionObject *otherObject = recover_broad_result.result_collision_objects[i]; - if (!p_body->get_bt_collision_object()->checkCollideWith(otherObject) || !otherObject->checkCollideWith(p_body->get_bt_collision_object()) || (p_infinite_inertia && !otherObject->isStaticOrKinematicObject())) + if (p_infinite_inertia && !otherObject->isStaticOrKinematicObject()) { + otherObject->activate(); // Force activation of hitten rigid, soft body + continue; + } else if (!p_body->get_bt_collision_object()->checkCollideWith(otherObject) || !otherObject->checkCollideWith(p_body->get_bt_collision_object())) continue; if (otherObject->getCollisionShape()->isCompound()) { |