Expose vehicle maxSuspension force (instead of hard-coded 6000 value).
Thanks blakflow for the patch, see Issue 290
This commit is contained in:
@@ -70,6 +70,7 @@ btWheelInfo& btRaycastVehicle::addWheel( const btVector3& connectionPointCS, con
|
|||||||
ci.m_frictionSlip = tuning.m_frictionSlip;
|
ci.m_frictionSlip = tuning.m_frictionSlip;
|
||||||
ci.m_bIsFrontWheel = isFrontWheel;
|
ci.m_bIsFrontWheel = isFrontWheel;
|
||||||
ci.m_maxSuspensionTravelCm = tuning.m_maxSuspensionTravelCm;
|
ci.m_maxSuspensionTravelCm = tuning.m_maxSuspensionTravelCm;
|
||||||
|
ci.m_maxSuspensionForce = tuning.m_maxSuspensionForce;
|
||||||
|
|
||||||
m_wheelInfo.push_back( btWheelInfo(ci));
|
m_wheelInfo.push_back( btWheelInfo(ci));
|
||||||
|
|
||||||
@@ -301,10 +302,9 @@ void btRaycastVehicle::updateVehicle( btScalar step )
|
|||||||
|
|
||||||
btScalar suspensionForce = wheel.m_wheelsSuspensionForce;
|
btScalar suspensionForce = wheel.m_wheelsSuspensionForce;
|
||||||
|
|
||||||
btScalar gMaxSuspensionForce = btScalar(6000.);
|
if (suspensionForce > wheel.m_maxSuspensionForce)
|
||||||
if (suspensionForce > gMaxSuspensionForce)
|
|
||||||
{
|
{
|
||||||
suspensionForce = gMaxSuspensionForce;
|
suspensionForce = wheel.m_maxSuspensionForce;
|
||||||
}
|
}
|
||||||
btVector3 impulse = wheel.m_raycastInfo.m_contactNormalWS * suspensionForce * step;
|
btVector3 impulse = wheel.m_raycastInfo.m_contactNormalWS * suspensionForce * step;
|
||||||
btVector3 relpos = wheel.m_raycastInfo.m_contactPointWS - getRigidBody()->getCenterOfMassPosition();
|
btVector3 relpos = wheel.m_raycastInfo.m_contactPointWS - getRigidBody()->getCenterOfMassPosition();
|
||||||
|
|||||||
@@ -40,7 +40,8 @@ public:
|
|||||||
m_suspensionCompression(btScalar(0.83)),
|
m_suspensionCompression(btScalar(0.83)),
|
||||||
m_suspensionDamping(btScalar(0.88)),
|
m_suspensionDamping(btScalar(0.88)),
|
||||||
m_maxSuspensionTravelCm(btScalar(500.)),
|
m_maxSuspensionTravelCm(btScalar(500.)),
|
||||||
m_frictionSlip(btScalar(10.5))
|
m_frictionSlip(btScalar(10.5)),
|
||||||
|
m_maxSuspensionForce(btScalar(6000.))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
btScalar m_suspensionStiffness;
|
btScalar m_suspensionStiffness;
|
||||||
@@ -48,6 +49,7 @@ public:
|
|||||||
btScalar m_suspensionDamping;
|
btScalar m_suspensionDamping;
|
||||||
btScalar m_maxSuspensionTravelCm;
|
btScalar m_maxSuspensionTravelCm;
|
||||||
btScalar m_frictionSlip;
|
btScalar m_frictionSlip;
|
||||||
|
btScalar m_maxSuspensionForce;
|
||||||
|
|
||||||
};
|
};
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ struct btWheelInfoConstructionInfo
|
|||||||
btScalar m_wheelsDampingCompression;
|
btScalar m_wheelsDampingCompression;
|
||||||
btScalar m_wheelsDampingRelaxation;
|
btScalar m_wheelsDampingRelaxation;
|
||||||
btScalar m_frictionSlip;
|
btScalar m_frictionSlip;
|
||||||
|
btScalar m_maxSuspensionForce;
|
||||||
bool m_bIsFrontWheel;
|
bool m_bIsFrontWheel;
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -68,6 +69,7 @@ struct btWheelInfo
|
|||||||
btScalar m_rotation;
|
btScalar m_rotation;
|
||||||
btScalar m_deltaRotation;
|
btScalar m_deltaRotation;
|
||||||
btScalar m_rollInfluence;
|
btScalar m_rollInfluence;
|
||||||
|
btScalar m_maxSuspensionForce;
|
||||||
|
|
||||||
btScalar m_engineForce;
|
btScalar m_engineForce;
|
||||||
|
|
||||||
@@ -99,6 +101,7 @@ struct btWheelInfo
|
|||||||
m_brake = btScalar(0.);
|
m_brake = btScalar(0.);
|
||||||
m_rollInfluence = btScalar(0.1);
|
m_rollInfluence = btScalar(0.1);
|
||||||
m_bIsFrontWheel = ci.m_bIsFrontWheel;
|
m_bIsFrontWheel = ci.m_bIsFrontWheel;
|
||||||
|
m_maxSuspensionForce = ci.m_maxSuspensionForce;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user