diff options
author | Erwin Coumans <blender@erwincoumans.com> | 2006-05-09 23:03:26 +0400 |
---|---|---|
committer | Erwin Coumans <blender@erwincoumans.com> | 2006-05-09 23:03:26 +0400 |
commit | d66d173c20cb3275372ae78690a8b5b96ab24bd7 (patch) | |
tree | 87f3e3d90058f3c49c813e52f2bf74994cb66989 /extern | |
parent | cc8f876950d295217a4eb0657293fcd00b60ae6f (diff) |
fixed 2 physics related bugs (friction had a typo, and jacobian calculation too)
Diffstat (limited to 'extern')
-rw-r--r-- | extern/bullet/BulletDynamics/ConstraintSolver/ContactConstraint.cpp | 2 | ||||
-rw-r--r-- | extern/bullet/BulletDynamics/ConstraintSolver/JacobianEntry.h | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/extern/bullet/BulletDynamics/ConstraintSolver/ContactConstraint.cpp b/extern/bullet/BulletDynamics/ConstraintSolver/ContactConstraint.cpp index ae1e6ce2221..f2b0a905491 100644 --- a/extern/bullet/BulletDynamics/ConstraintSolver/ContactConstraint.cpp +++ b/extern/bullet/BulletDynamics/ConstraintSolver/ContactConstraint.cpp @@ -211,7 +211,7 @@ float resolveSingleFriction( SimdScalar vrel = contactPoint.m_frictionWorldTangential0.dot(vel); // calculate j that moves us to zero relative velocity - SimdScalar j = -vrel * contactPoint.m_jacDiagABInvTangent1; + SimdScalar j = -vrel * contactPoint.m_jacDiagABInvTangent0; float total = contactPoint.m_accumulatedTangentImpulse0 + j; GEN_set_min(total, limit); GEN_set_max(total, -limit); diff --git a/extern/bullet/BulletDynamics/ConstraintSolver/JacobianEntry.h b/extern/bullet/BulletDynamics/ConstraintSolver/JacobianEntry.h index 5632536750c..821c681a7bd 100644 --- a/extern/bullet/BulletDynamics/ConstraintSolver/JacobianEntry.h +++ b/extern/bullet/BulletDynamics/ConstraintSolver/JacobianEntry.h @@ -45,7 +45,7 @@ public: :m_jointAxis(jointAxis) { m_aJ = world2A*(rel_pos1.cross(m_jointAxis)); - m_bJ = world2B*(rel_pos2.cross(m_jointAxis)); + m_bJ = world2B*(rel_pos2.cross(-m_jointAxis)); m_0MinvJt = inertiaInvA * m_aJ; m_1MinvJt = inertiaInvB * m_bJ; m_Adiag = massInvA + m_0MinvJt.dot(m_aJ) + massInvB + m_1MinvJt.dot(m_bJ); @@ -76,7 +76,7 @@ public: :m_jointAxis(jointAxis) { m_aJ= world2A*(rel_pos1.cross(m_jointAxis)); - m_bJ = world2A*(rel_pos2.cross(m_jointAxis)); + m_bJ = world2A*(rel_pos2.cross(-m_jointAxis)); m_0MinvJt = inertiaInvA * m_aJ; m_1MinvJt = SimdVector3(0.f,0.f,0.f); m_Adiag = massInvA + m_0MinvJt.dot(m_aJ); |