[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