Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/extern
diff options
context:
space:
mode:
authorErwin Coumans <blender@erwincoumans.com>2006-05-09 23:03:26 +0400
committerErwin Coumans <blender@erwincoumans.com>2006-05-09 23:03:26 +0400
commitd66d173c20cb3275372ae78690a8b5b96ab24bd7 (patch)
tree87f3e3d90058f3c49c813e52f2bf74994cb66989 /extern
parentcc8f876950d295217a4eb0657293fcd00b60ae6f (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.cpp2
-rw-r--r--extern/bullet/BulletDynamics/ConstraintSolver/JacobianEntry.h4
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);