[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60287] branches/soc-2013-rigid_body_sim/ intern/rigidbody/rb_bullet_api.cpp: rigidbody: Fix activation not working with passive objects as triggers
Sergej Reich
sergej.reich at googlemail.com
Sat Sep 21 07:12:09 CEST 2013
Revision: 60287
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60287
Author: sergof
Date: 2013-09-21 05:12:09 +0000 (Sat, 21 Sep 2013)
Log Message:
-----------
rigidbody: Fix activation not working with passive objects as triggers
Need to allow static-static collisions in this case, since deactivated
bodies are static.
Modified Paths:
--------------
branches/soc-2013-rigid_body_sim/intern/rigidbody/rb_bullet_api.cpp
Modified: branches/soc-2013-rigid_body_sim/intern/rigidbody/rb_bullet_api.cpp
===================================================================
--- branches/soc-2013-rigid_body_sim/intern/rigidbody/rb_bullet_api.cpp 2013-09-21 05:12:08 UTC (rev 60286)
+++ branches/soc-2013-rigid_body_sim/intern/rigidbody/rb_bullet_api.cpp 2013-09-21 05:12:09 UTC (rev 60287)
@@ -136,8 +136,14 @@
rbRigidBody *rb1 = (rbRigidBody *)((btRigidBody *)proxy1->m_clientObject)->getUserPointer();
bool collides;
- collides = (proxy0->m_collisionFilterGroup & proxy1->m_collisionFilterMask) != 0;
- collides = collides && (proxy1->m_collisionFilterGroup & proxy0->m_collisionFilterMask);
+
+ if (rb0->suspended || rb1->suspended) { /* allow static-static collision so suspended bodies can be activated */
+ collides = true;
+ }
+ else {
+ collides = (proxy0->m_collisionFilterGroup & proxy1->m_collisionFilterMask) != 0;
+ collides = collides && (proxy1->m_collisionFilterGroup & proxy0->m_collisionFilterMask);
+ }
collides = collides && (rb0->col_groups & rb1->col_groups);
return collides;
More information about the Bf-blender-cvs
mailing list