diff options
Diffstat (limited to 'intern/rigidbody/rb_bullet_api.cpp')
-rw-r--r-- | intern/rigidbody/rb_bullet_api.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/intern/rigidbody/rb_bullet_api.cpp b/intern/rigidbody/rb_bullet_api.cpp index a0f22a23b01..ef8a75665d2 100644 --- a/intern/rigidbody/rb_bullet_api.cpp +++ b/intern/rigidbody/rb_bullet_api.cpp @@ -761,6 +761,10 @@ struct rbFilterCallback : public btOverlapFilterCallback (proxy0->m_collisionFilterMask | btBroadphaseProxy::StaticFilter | btBroadphaseProxy::KinematicFilter)); + if (!rb0 || !rb1) { + return collides; + } + //no self collisions between kinematic shards in own object allowed collides = collides && ((!rb0->body->isStaticOrKinematicObject() || !rb1->body->isStaticOrKinematicObject()) || ((rb0->body->isStaticOrKinematicObject() && rb1->body->isStaticOrKinematicObject()) && |