Add SuspensionForceOffset to vehicle wheel config

This commit is contained in:
Wojtek Figat
2021-08-12 18:21:46 +02:00
parent b29d1f9902
commit 330c46b949
2 changed files with 7 additions and 3 deletions

View File

@@ -324,13 +324,12 @@ void WheeledVehicle::Setup()
wheelData.mMaxHandBrakeTorque = M2ToCm2(wheel.MaxHandBrakeTorque); wheelData.mMaxHandBrakeTorque = M2ToCm2(wheel.MaxHandBrakeTorque);
PxVec3 centreOffset = centerOfMassOffset.transformInv(offsets[i]); PxVec3 centreOffset = centerOfMassOffset.transformInv(offsets[i]);
float suspensionForceOffset = 0.0f; PxVec3 forceAppPointOffset(centreOffset.z, centreOffset.y + wheel.SuspensionForceOffset, centreOffset.z);
PxVec3 forceAppPointOffset(centreOffset.x, centreOffset.y, centreOffset.z + suspensionForceOffset);
wheelsSimData->setTireData(i, tire); wheelsSimData->setTireData(i, tire);
wheelsSimData->setWheelData(i, wheelData); wheelsSimData->setWheelData(i, wheelData);
wheelsSimData->setSuspensionData(i, suspensionData); wheelsSimData->setSuspensionData(i, suspensionData);
wheelsSimData->setSuspTravelDirection(i, PxVec3(0, -1, 0)); wheelsSimData->setSuspTravelDirection(i, centerOfMassOffset.rotate(PxVec3(0.0f, -1.0f, 0.0f)));
wheelsSimData->setWheelCentreOffset(i, centreOffset); wheelsSimData->setWheelCentreOffset(i, centreOffset);
wheelsSimData->setSuspForceAppPointOffset(i, forceAppPointOffset); wheelsSimData->setSuspForceAppPointOffset(i, forceAppPointOffset);
wheelsSimData->setTireForceAppPointOffset(i, forceAppPointOffset); wheelsSimData->setTireForceAppPointOffset(i, forceAppPointOffset);

View File

@@ -228,6 +228,11 @@ public:
/// The maximum offset for the suspension that wheel can go below resting location. /// The maximum offset for the suspension that wheel can go below resting location.
/// </summary> /// </summary>
API_FIELD(Attributes="Limit(0)") float SuspensionMaxDrop = 10.0f; API_FIELD(Attributes="Limit(0)") float SuspensionMaxDrop = 10.0f;
/// <summary>
/// The vertical offset from where suspension forces are applied.
/// </summary>
API_FIELD() float SuspensionForceOffset = 0.0f;
}; };
/// <summary> /// <summary>