mirror of
https://github.com/bulletphysics/bullet3
synced 2025-01-19 05:20:06 +00:00
fix maxLinMotorForce/maxAngMotorForce in btSliderConstraint
Thanks to Stephen Peters, see also https://github.com/bulletphysics/bullet3/pull/328
This commit is contained in:
parent
d1ff63dd49
commit
a165ff54c9
@ -155,7 +155,7 @@ class ForkLiftDemo : public ExampleInterface
|
||||
};
|
||||
|
||||
|
||||
btScalar maxMotorImpulse = 1400.f;
|
||||
btScalar maxMotorImpulse = 4000.f;
|
||||
|
||||
//the sequential impulse solver has difficulties dealing with large mass ratios (differences), between loadMass and the fork parts
|
||||
btScalar loadMass = 350.f;//
|
||||
|
@ -131,7 +131,7 @@ class Hinge2Vehicle : public CommonRigidBodyBase
|
||||
};
|
||||
|
||||
|
||||
static btScalar maxMotorImpulse = 1400.f;
|
||||
static btScalar maxMotorImpulse = 4000.f;
|
||||
|
||||
//the sequential impulse solver has difficulties dealing with large mass ratios (differences), between loadMass and the fork parts
|
||||
static btScalar loadMass = 350.f;//
|
||||
|
@ -539,8 +539,8 @@ void btSliderConstraint::getInfo2NonVirtual(btConstraintInfo2* info, const btTra
|
||||
btScalar tag_vel = getTargetLinMotorVelocity();
|
||||
btScalar mot_fact = getMotorFactor(m_linPos, m_lowerLinLimit, m_upperLinLimit, tag_vel, info->fps * currERP);
|
||||
info->m_constraintError[srow] -= signFact * mot_fact * getTargetLinMotorVelocity();
|
||||
info->m_lowerLimit[srow] += -getMaxLinMotorForce() * info->fps;
|
||||
info->m_upperLimit[srow] += getMaxLinMotorForce() * info->fps;
|
||||
info->m_lowerLimit[srow] += -getMaxLinMotorForce() / info->fps;
|
||||
info->m_upperLimit[srow] += getMaxLinMotorForce() / info->fps;
|
||||
}
|
||||
if(limit)
|
||||
{
|
||||
@ -641,8 +641,8 @@ void btSliderConstraint::getInfo2NonVirtual(btConstraintInfo2* info, const btTra
|
||||
}
|
||||
btScalar mot_fact = getMotorFactor(m_angPos, m_lowerAngLimit, m_upperAngLimit, getTargetAngMotorVelocity(), info->fps * currERP);
|
||||
info->m_constraintError[srow] = mot_fact * getTargetAngMotorVelocity();
|
||||
info->m_lowerLimit[srow] = -getMaxAngMotorForce() * info->fps;
|
||||
info->m_upperLimit[srow] = getMaxAngMotorForce() * info->fps;
|
||||
info->m_lowerLimit[srow] = -getMaxAngMotorForce() / info->fps;
|
||||
info->m_upperLimit[srow] = getMaxAngMotorForce() / info->fps;
|
||||
}
|
||||
if(limit)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user