diff options
Diffstat (limited to 'extern/bullet2/patches/ghost_softbody.patch')
-rw-r--r-- | extern/bullet2/patches/ghost_softbody.patch | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/extern/bullet2/patches/ghost_softbody.patch b/extern/bullet2/patches/ghost_softbody.patch deleted file mode 100644 index b150d57040d..00000000000 --- a/extern/bullet2/patches/ghost_softbody.patch +++ /dev/null @@ -1,42 +0,0 @@ -Index: extern/bullet2/src/BulletSoftBody/btSoftBody.cpp -=================================================================== ---- extern/bullet2/src/BulletSoftBody/btSoftBody.cpp (Revision 43904) -+++ extern/bullet2/src/BulletSoftBody/btSoftBody.cpp (Revision 43905) -@@ -2780,21 +2780,23 @@ - { - const RContact& c = psb->m_rcontacts[i]; - const sCti& cti = c.m_cti; -- btRigidBody* tmpRigid = btRigidBody::upcast(cti.m_colObj); - -- const btVector3 va = tmpRigid ? tmpRigid->getVelocityInLocalPoint(c.m_c1)*dt : btVector3(0,0,0); -- const btVector3 vb = c.m_node->m_x-c.m_node->m_q; -- const btVector3 vr = vb-va; -- const btScalar dn = btDot(vr, cti.m_normal); -- if(dn<=SIMD_EPSILON) -- { -- const btScalar dp = btMin( (btDot(c.m_node->m_x, cti.m_normal) + cti.m_offset), mrg ); -- const btVector3 fv = vr - (cti.m_normal * dn); -- // c0 is the impulse matrix, c3 is 1 - the friction coefficient or 0, c4 is the contact hardness coefficient -- const btVector3 impulse = c.m_c0 * ( (vr - (fv * c.m_c3) + (cti.m_normal * (dp * c.m_c4))) * kst ); -- c.m_node->m_x -= impulse * c.m_c2; -- if (tmpRigid) -- tmpRigid->applyImpulse(impulse,c.m_c1); -+ if (cti.m_colObj->hasContactResponse()) { -+ btRigidBody* tmpRigid = btRigidBody::upcast(cti.m_colObj); -+ const btVector3 va = tmpRigid ? tmpRigid->getVelocityInLocalPoint(c.m_c1)*dt : btVector3(0,0,0); -+ const btVector3 vb = c.m_node->m_x-c.m_node->m_q; -+ const btVector3 vr = vb-va; -+ const btScalar dn = btDot(vr, cti.m_normal); -+ if(dn<=SIMD_EPSILON) -+ { -+ const btScalar dp = btMin( (btDot(c.m_node->m_x, cti.m_normal) + cti.m_offset), mrg ); -+ const btVector3 fv = vr - (cti.m_normal * dn); -+ // c0 is the impulse matrix, c3 is 1 - the friction coefficient or 0, c4 is the contact hardness coefficient -+ const btVector3 impulse = c.m_c0 * ( (vr - (fv * c.m_c3) + (cti.m_normal * (dp * c.m_c4))) * kst ); -+ c.m_node->m_x -= impulse * c.m_c2; -+ if (tmpRigid) -+ tmpRigid->applyImpulse(impulse,c.m_c1); -+ } - } - } - } |