Revision: 20534
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20534
Author: erwin
Date: 2009-05-31 18:22:22 +0200 (Sun, 31 May 2009)
Log Message:
-----------
Anisotropic Friction bugfix for #18854
http://projects.blender.org/tracker/index.php?func=detail&aid=18854&group_id=9&atid=125
Thanks to Campbell for the reproduction case!
Modified Paths:
--------------
trunk/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp
Modified:
trunk/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp
===================================================================
---
trunk/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp
2009-05-31 15:59:54 UTC (rev 20533)
+++
trunk/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp
2009-05-31 16:22:22 UTC (rev 20534)
@@ -539,9 +539,6 @@
if (!(infoGlobal.m_solverMode &
SOLVER_DISABLE_VELOCITY_DEPENDENT_FRICTION_DIRECTION) && lat_rel_vel >
SIMD_EPSILON)
{
cp.m_lateralFrictionDir1 /= btSqrt(lat_rel_vel);
-
applyAnisotropicFriction(colObj0,cp.m_lateralFrictionDir1);
-
applyAnisotropicFriction(colObj1,cp.m_lateralFrictionDir1);
-
addFrictionConstraint(cp.m_lateralFrictionDir1,solverBodyIdA,solverBodyIdB,frictionIndex,cp,rel_pos1,rel_pos2,colObj0,colObj1,
relaxation);
if((infoGlobal.m_solverMode & SOLVER_USE_2_FRICTION_DIRECTIONS))
{
cp.m_lateralFrictionDir2 = cp.m_lateralFrictionDir1.cross(cp.m_normalWorldOnB);
@@ -550,21 +547,26 @@
applyAnisotropicFriction(colObj1,cp.m_lateralFrictionDir2);
addFrictionConstraint(cp.m_lateralFrictionDir2,solverBodyIdA,solverBodyIdB,frictionIndex,cp,rel_pos1,rel_pos2,colObj0,colObj1,
relaxation);
}
+
+
applyAnisotropicFriction(colObj0,cp.m_lateralFrictionDir1);
+
applyAnisotropicFriction(colObj1,cp.m_lateralFrictionDir1);
+
addFrictionConstraint(cp.m_lateralFrictionDir1,solverBodyIdA,solverBodyIdB,frictionIndex,cp,rel_pos1,rel_pos2,colObj0,colObj1,
relaxation);
cp.m_lateralFrictionInitialized = true;
} else
{
//re-calculate friction
direction every frame, todo: check if this is really needed
btPlaneSpace1(cp.m_normalWorldOnB,cp.m_lateralFrictionDir1,cp.m_lateralFrictionDir2);
-
applyAnisotropicFriction(colObj0,cp.m_lateralFrictionDir1);
-
applyAnisotropicFriction(colObj1,cp.m_lateralFrictionDir1);
-
-
addFrictionConstraint(cp.m_lateralFrictionDir1,solverBodyIdA,solverBodyIdB,frictionIndex,cp,rel_pos1,rel_pos2,colObj0,colObj1,
relaxation);
if
((infoGlobal.m_solverMode & SOLVER_USE_2_FRICTION_DIRECTIONS))
{
applyAnisotropicFriction(colObj0,cp.m_lateralFrictionDir2);
applyAnisotropicFriction(colObj1,cp.m_lateralFrictionDir2);
addFrictionConstraint(cp.m_lateralFrictionDir2,solverBodyIdA,solverBodyIdB,frictionIndex,cp,rel_pos1,rel_pos2,colObj0,colObj1,
relaxation);
}
+
+
applyAnisotropicFriction(colObj0,cp.m_lateralFrictionDir1);
+
applyAnisotropicFriction(colObj1,cp.m_lateralFrictionDir1);
+
addFrictionConstraint(cp.m_lateralFrictionDir1,solverBodyIdA,solverBodyIdB,frictionIndex,cp,rel_pos1,rel_pos2,colObj0,colObj1,
relaxation);
+
cp.m_lateralFrictionInitialized = true;
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs