[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16695] trunk/blender/extern/bullet2/src: bugfix for [#7006] Sleeping Objects losing Ghost Constraint

Erwin Coumans blender at erwincoumans.com
Tue Sep 23 07:00:00 CEST 2008


Revision: 16695
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16695
Author:   erwin
Date:     2008-09-23 07:00:00 +0200 (Tue, 23 Sep 2008)

Log Message:
-----------
bugfix for [#7006] Sleeping Objects losing Ghost Constraint

Bullet logic bug in (de)activation/island management: deactivated 'fantom' objects do merge islands, in particular when connected by constraints. (fantom = object with collision detection but no collision response).

Modified Paths:
--------------
    trunk/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp
    trunk/blender/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp

Modified: trunk/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp
===================================================================
--- trunk/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp	2008-09-23 04:26:52 UTC (rev 16694)
+++ trunk/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp	2008-09-23 05:00:00 UTC (rev 16695)
@@ -105,7 +105,7 @@
 		for (i=0;i<colWorld->getCollisionObjectArray().size();i++)
 		{
 			btCollisionObject* collisionObject= colWorld->getCollisionObjectArray()[i];
-			if (collisionObject->mergesSimulationIslands())
+			if (!collisionObject->isStaticOrKinematicObject())
 			{
 				collisionObject->setIslandTag( m_unionFind.find(index) );
 				collisionObject->setCompanionId(-1);

Modified: trunk/blender/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp
===================================================================
--- trunk/blender/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp	2008-09-23 04:26:52 UTC (rev 16694)
+++ trunk/blender/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp	2008-09-23 05:00:00 UTC (rev 16695)
@@ -688,8 +688,8 @@
 			const btRigidBody* colObj0 = &constraint->getRigidBodyA();
 			const btRigidBody* colObj1 = &constraint->getRigidBodyB();
 
-			if (((colObj0) && ((colObj0)->mergesSimulationIslands())) &&
-				((colObj1) && ((colObj1)->mergesSimulationIslands())))
+			if (((colObj0) && (!(colObj0)->isStaticOrKinematicObject())) &&
+				((colObj1) && (!(colObj1)->isStaticOrKinematicObject())))
 			{
 				if (colObj0->isActive() || colObj1->isActive())
 				{





More information about the Bf-blender-cvs mailing list