fix double-precision support

improve serialization, better search for SDNA1 tag
This commit is contained in:
erwin.coumans
2010-07-21 23:59:41 +00:00
parent 0d53b77e41
commit e3f4f6f1c5
3 changed files with 54 additions and 9 deletions

View File

@@ -99,11 +99,11 @@ void pfxSolveLinearConstraintRow(PfxConstraintRow &constraint,
float massInvB,const vmMatrix3 &inertiaInvB,const vmVector3 &rB)
{
const vmVector3 normal(btReadVector3(constraint.mNormal));
float deltaImpulse = constraint.mRhs;
btScalar deltaImpulse = constraint.mRhs;
vmVector3 dVA = deltaLinearVelocityA + cross(deltaAngularVelocityA,rA);
vmVector3 dVB = deltaLinearVelocityB + cross(deltaAngularVelocityB,rB);
deltaImpulse -= constraint.mJacDiagInv * dot(normal,dVA-dVB);
float oldImpulse = constraint.mAccumImpulse;
btScalar oldImpulse = constraint.mAccumImpulse;
constraint.mAccumImpulse = btClamped(oldImpulse + deltaImpulse,constraint.mLowerLimit,constraint.mUpperLimit);
deltaImpulse = constraint.mAccumImpulse - oldImpulse;
deltaLinearVelocityA += deltaImpulse * massInvA * normal;