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())
{
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs