#include <PxVehicleWheels.h>
Public Member Functions | |
void | setChassisMass (const PxF32 chassisMass) |
Setup with mass information that can be applied to the default values of the suspensions, wheels, and tires set in their respective constructors. | |
void | free () |
Free a PxVehicleWheelsSimData instance. | |
PxVehicleWheelsSimData & | operator= (const PxVehicleWheelsSimData &src) |
Copy wheel simulation data. | |
void | copy (const PxVehicleWheelsSimData &src, const PxU32 srcWheel, const PxU32 trgWheel) |
Copy the data of a single wheel unit (wheel, suspension, tire) from srcWheel of src to trgWheel. | |
PxU32 | getNbWheels () const |
Return the number of wheels. | |
const PxVehicleSuspensionData & | getSuspensionData (const PxU32 id) const |
Return the suspension data of the idth wheel. | |
const PxVehicleWheelData & | getWheelData (const PxU32 id) const |
Return the wheel data of the idth wheel. | |
const PxVehicleTireData & | getTireData (const PxU32 id) const |
Return the tire data of the idth wheel. | |
const PxVec3 & | getSuspTravelDirection (const PxU32 id) const |
Return the direction of travel of the suspension of the idth wheel. | |
const PxVec3 & | getSuspForceAppPointOffset (const PxU32 id) const |
Return the application point of the suspension force of the suspension of the idth wheel as an offset from the rigid body center of mass. | |
const PxVec3 & | getTireForceAppPointOffset (const PxU32 id) const |
Return the application point of the tire force of the tire of the idth wheel as an offset from the rigid body center of mass. | |
const PxVec3 & | getWheelCentreOffset (const PxU32 id) const |
Return the offset from the rigid body centre of mass to the centre of the idth wheel. | |
PxI32 | getWheelShapeMapping (const PxU32 wheelId) const |
Return the wheel mapping for the ith wheel. | |
const PxFilterData & | getSceneQueryFilterData (const PxU32 suspId) const |
Return the scene query filter data used by the specified suspension line. | |
PxU32 | getNbAntiRollBars () const |
Return the number of unique anti-roll bars that have been added with addAntiRollBarData. | |
const PxVehicleAntiRollBarData & | getAntiRollBarData (const PxU32 antiRollId) const |
Return a specific anti-roll bar. | |
PX_FORCE_INLINE const PxVehicleTireLoadFilterData & | getTireLoadFilterData () const |
Return the data that describes the filtering of the tire load to produce smoother handling at large time-steps. | |
void | setSuspensionData (const PxU32 id, const PxVehicleSuspensionData &susp) |
Set the suspension data of the idth wheel. | |
void | setWheelData (const PxU32 id, const PxVehicleWheelData &wheel) |
Set the wheel data of the idth wheel. | |
void | setTireData (const PxU32 id, const PxVehicleTireData &tire) |
Set the tire data of the idth wheel. | |
void | setSuspTravelDirection (const PxU32 id, const PxVec3 &dir) |
Set the direction of travel of the suspension of the idth wheel. | |
void | setSuspForceAppPointOffset (const PxU32 id, const PxVec3 &offset) |
Set the application point of the suspension force of the suspension of the idth wheel. | |
void | setTireForceAppPointOffset (const PxU32 id, const PxVec3 &offset) |
Set the application point of the tire force of the tire of the idth wheel. | |
void | setWheelCentreOffset (const PxU32 id, const PxVec3 &offset) |
Set the offset from the rigid body centre of mass to the centre of the idth wheel. | |
void | setWheelShapeMapping (const PxU32 wheelId, const PxI32 shapeId) |
Set mapping between wheel id and position of corresponding wheel shape in the list of actor shapes. | |
void | setSceneQueryFilterData (const PxU32 suspId, const PxFilterData &sqFilterData) |
Set the scene query filter data that will be used for raycasts along the travel direction of the specified suspension. The default value is PxFilterData(0,0,0,0). | |
void | setTireLoadFilterData (const PxVehicleTireLoadFilterData &tireLoadFilter) |
Set the data that describes the filtering of the tire load to produce smoother handling at large timesteps. | |
PxU32 | addAntiRollBarData (const PxVehicleAntiRollBarData &antiRoll) |
Set the anti-roll suspension for a pair of wheels. | |
void | disableWheel (const PxU32 wheel) |
Disable a wheel so that zero suspension forces and zero tire forces are applied to the rigid body from this wheel. | |
void | enableWheel (const PxU32 wheel) |
Enable a wheel so that suspension forces and tire forces are applied to the rigid body. All wheels are enabled by default and remain enabled until they are disabled. | |
bool | getIsWheelDisabled (const PxU32 wheel) const |
Test if a wheel has been disabled. | |
void | setSubStepCount (const PxReal thresholdLongitudinalSpeed, const PxU32 lowForwardSpeedSubStepCount, const PxU32 highForwardSpeedSubStepCount) |
Set the number of vehicle sub-steps that will be performed when the vehicle's longitudinal speed is below and above a threshold longitudinal speed. | |
void | setMinLongSlipDenominator (const PxReal minLongSlipDenominator) |
Set the minimum denominator used in the longitudinal slip calculation. | |
PxVehicleWheelsSimData (const PxEMPTY) | |
PxU32 | getNbWheels4 () const |
PxU32 | getNbSuspensionData () const |
PxU32 | getNbWheelData () const |
PxU32 | getNbSuspTravelDirection () const |
PxU32 | getNbTireData () const |
PxU32 | getNbSuspForceAppPointOffset () const |
PxU32 | getNbTireForceAppPointOffset () const |
PxU32 | getNbWheelCentreOffset () const |
PxU32 | getNbWheelShapeMapping () const |
PxU32 | getNbSceneQueryFilterData () const |
PxF32 | getMinLongSlipDenominator () const |
void | setThresholdLongSpeed (const PxF32 f) |
PxF32 | getThresholdLongSpeed () const |
void | setLowForwardSpeedSubStepCount (const PxU32 f) |
PxU32 | getLowForwardSpeedSubStepCount () const |
void | setHighForwardSpeedSubStepCount (const PxU32 f) |
PxU32 | getHighForwardSpeedSubStepCount () const |
void | setWheelEnabledState (const PxU32 wheel, const bool state) |
bool | getWheelEnabledState (const PxU32 wheel) const |
PxU32 | getNbWheelEnabledState () const |
PxU32 | getNbAntiRollBars4 () const |
PxU32 | getNbAntiRollBarData () const |
void | setAntiRollBarData (const PxU32 id, const PxVehicleAntiRollBarData &antiRoll) |
PxVehicleWheelsSimData () | |
~PxVehicleWheelsSimData () | |
Static Public Member Functions | |
static PxVehicleWheelsSimData * | allocate (const PxU32 nbWheels) |
Allocate a PxVehicleWheelsSimData instance for with nbWheels. | |
static void | getBinaryMetaData (PxOutputStream &stream) |
Private Member Functions | |
bool | isValid () const |
Test if wheel simulation data has been setup with legal values. | |
PxVehicleWheelsSimData (const PxU32 numWheels) | |
Static Private Member Functions | |
static PxU32 | computeByteSize (const PxU32 numWheels) |
see PxVehicleWheels::allocate | |
static PxU8 * | patchUpPointers (const PxU32 numWheels, PxVehicleWheelsSimData *simData, PxU8 *ptrIn) |
Private Attributes | |
PxVehicleTireLoadFilterData | mNormalisedLoadFilter |
Graph to filter normalised load. | |
PxVehicleWheels4SimData * | mWheels4SimData |
Wheels data organised in blocks of 4 wheels. | |
PxU32 | mNbWheels4 |
Number of blocks of 4 wheels. | |
PxU32 | mNbActiveWheels |
Number of actual wheels (<=(mNbWheels4*4)). | |
PxVehicleAntiRollBarData * | mAntiRollBars |
Anti-roll bars. | |
PxU32 | mNbAntiRollBars4 |
2 anti-rollbars allocated for each block of 4 wheels. | |
PxU32 | mNbActiveAntiRollBars |
Number of active anti-roll bars. | |
PxU32 | mActiveWheelsBitmapBuffer [((PX_MAX_NB_WHEELS+31)&~31) >> 5] |
Which of the mNbActiveWheels are active or disabled? The default is that all mNbActiveWheels wheels are active. | |
PxF32 | mThresholdLongitudinalSpeed |
Threshold longitudinal speed used to decide whether to use mLowForwardSpeedSubStepCount or mHighForwardSpeedSubStepCount as the number of sub-steps that will be peformed. | |
PxU32 | mLowForwardSpeedSubStepCount |
Number of sub-steps that will be performed if the longitudinal speed of the vehicle is smaller than mThresholdLongitudinalSpeed. | |
PxU32 | mHighForwardSpeedSubStepCount |
Number of sub-steps that will be performed if the longitudinal speed of the vehicle is greater than or equal to mThresholdLongitudinalSpeed. | |
PxF32 | mMinLongSlipDenominator |
Minimum long slip denominator. | |
PxU32 | mPad [1] |
Friends | |
class | PxVehicleWheels |
class | PxVehicleNoDrive |
class | PxVehicleDrive4W |
class | PxVehicleDriveTank |
class | PxVehicleUpdate |
PxVehicleWheelsSimData::PxVehicleWheelsSimData | ( | const PxU32 | numWheels | ) | [private] |
PxVehicleWheelsSimData::PxVehicleWheelsSimData | ( | const | PxEMPTY | ) | [inline] |
PxVehicleWheelsSimData::PxVehicleWheelsSimData | ( | ) | [inline] |
PxVehicleWheelsSimData::~PxVehicleWheelsSimData | ( | ) | [inline] |
PxU32 PxVehicleWheelsSimData::addAntiRollBarData | ( | const PxVehicleAntiRollBarData & | antiRoll | ) |
Set the anti-roll suspension for a pair of wheels.
antiRoll | is the anti-roll suspension. |
If the wheel pair specified by antiRoll does not yet have an anti-roll bar then antiRoll is added to a list of anti-roll bars for the vehicle.
The number of possible anti-roll bars is limited to half the wheel count.
An existing anti-roll bar can be disabled by calling antiRoll.mStiffness to zero.
static PxVehicleWheelsSimData* PxVehicleWheelsSimData::allocate | ( | const PxU32 | nbWheels | ) | [static] |
see PxVehicleWheels::allocate
void PxVehicleWheelsSimData::copy | ( | const PxVehicleWheelsSimData & | src, | |
const PxU32 | srcWheel, | |||
const PxU32 | trgWheel | |||
) |
Copy the data of a single wheel unit (wheel, suspension, tire) from srcWheel of src to trgWheel.
[in] | src | is the data to be copied. |
[in] | srcWheel | is the wheel whose data will be copied from src. |
[in] | trgWheel | is the wheel that will be assigned the copied data. |
void PxVehicleWheelsSimData::disableWheel | ( | const PxU32 | wheel | ) |
Disable a wheel so that zero suspension forces and zero tire forces are applied to the rigid body from this wheel.
If the vehicle is of type PxVehicleNoDrive then zero drive torque must be applied to the disabled wheel.
For tanks (PxVehicleDriveTank) any drive torque that could be delivered to the wheel through the tank differential will be re-directed to the remaining enabled wheels.
PxVehicleDifferentialNWData::setDrivenWheel
PxVehicleDifferential4WData::mFrontLeftRightSplit, PxVehicleDifferential4WData::mRearLeftRightSplit, PxVehicleDifferential4WData::mType
PxVehicleNoDrive::setDriveTorque
PxVehicle4WEnable3WTadpoleMode, PxVehicle4WEnable3WDeltaMode
[in] | wheel | is the wheel index. |
void PxVehicleWheelsSimData::enableWheel | ( | const PxU32 | wheel | ) |
Enable a wheel so that suspension forces and tire forces are applied to the rigid body. All wheels are enabled by default and remain enabled until they are disabled.
[in] | wheel | is the wheel index. |
void PxVehicleWheelsSimData::free | ( | ) |
const PxVehicleAntiRollBarData& PxVehicleWheelsSimData::getAntiRollBarData | ( | const PxU32 | antiRollId | ) | const |
Return a specific anti-roll bar.
antiRollId | is the unique id of the anti-roll bar |
static void PxVehicleWheelsSimData::getBinaryMetaData | ( | PxOutputStream & | stream | ) | [static] |
PxU32 PxVehicleWheelsSimData::getHighForwardSpeedSubStepCount | ( | ) | const [inline] |
bool PxVehicleWheelsSimData::getIsWheelDisabled | ( | const PxU32 | wheel | ) | const |
Test if a wheel has been disabled.
[in] | wheel | is the wheel index. |
PxU32 PxVehicleWheelsSimData::getLowForwardSpeedSubStepCount | ( | ) | const [inline] |
PxF32 PxVehicleWheelsSimData::getMinLongSlipDenominator | ( | ) | const [inline] |
PxU32 PxVehicleWheelsSimData::getNbAntiRollBarData | ( | ) | const [inline] |
PxU32 PxVehicleWheelsSimData::getNbAntiRollBars | ( | ) | const [inline] |
Return the number of unique anti-roll bars that have been added with addAntiRollBarData.
PxU32 PxVehicleWheelsSimData::getNbAntiRollBars4 | ( | ) | const [inline] |
PxU32 PxVehicleWheelsSimData::getNbSceneQueryFilterData | ( | ) | const [inline] |
PxU32 PxVehicleWheelsSimData::getNbSuspensionData | ( | ) | const [inline] |
PxU32 PxVehicleWheelsSimData::getNbSuspForceAppPointOffset | ( | ) | const [inline] |
PxU32 PxVehicleWheelsSimData::getNbSuspTravelDirection | ( | ) | const [inline] |
PxU32 PxVehicleWheelsSimData::getNbTireData | ( | ) | const [inline] |
PxU32 PxVehicleWheelsSimData::getNbTireForceAppPointOffset | ( | ) | const [inline] |
PxU32 PxVehicleWheelsSimData::getNbWheelCentreOffset | ( | ) | const [inline] |
PxU32 PxVehicleWheelsSimData::getNbWheelData | ( | ) | const [inline] |
PxU32 PxVehicleWheelsSimData::getNbWheelEnabledState | ( | ) | const [inline] |
PxU32 PxVehicleWheelsSimData::getNbWheels | ( | ) | const [inline] |
PxU32 PxVehicleWheelsSimData::getNbWheels4 | ( | ) | const [inline] |
PxU32 PxVehicleWheelsSimData::getNbWheelShapeMapping | ( | ) | const [inline] |
const PxFilterData& PxVehicleWheelsSimData::getSceneQueryFilterData | ( | const PxU32 | suspId | ) | const |
Return the scene query filter data used by the specified suspension line.
const PxVehicleSuspensionData& PxVehicleWheelsSimData::getSuspensionData | ( | const PxU32 | id | ) | const |
Return the suspension data of the idth wheel.
Return the application point of the suspension force of the suspension of the idth wheel as an offset from the rigid body center of mass.
Return the direction of travel of the suspension of the idth wheel.
PxF32 PxVehicleWheelsSimData::getThresholdLongSpeed | ( | ) | const [inline] |
const PxVehicleTireData& PxVehicleWheelsSimData::getTireData | ( | const PxU32 | id | ) | const |
Return the tire data of the idth wheel.
Return the application point of the tire force of the tire of the idth wheel as an offset from the rigid body center of mass.
PX_FORCE_INLINE const PxVehicleTireLoadFilterData& PxVehicleWheelsSimData::getTireLoadFilterData | ( | ) | const [inline] |
Return the data that describes the filtering of the tire load to produce smoother handling at large time-steps.
Return the offset from the rigid body centre of mass to the centre of the idth wheel.
const PxVehicleWheelData& PxVehicleWheelsSimData::getWheelData | ( | const PxU32 | id | ) | const |
Return the wheel data of the idth wheel.
bool PxVehicleWheelsSimData::getWheelEnabledState | ( | const PxU32 | wheel | ) | const [inline] |
PxI32 PxVehicleWheelsSimData::getWheelShapeMapping | ( | const PxU32 | wheelId | ) | const |
Return the wheel mapping for the ith wheel.
bool PxVehicleWheelsSimData::isValid | ( | ) | const [private] |
Test if wheel simulation data has been setup with legal values.
PxVehicleWheelsSimData& PxVehicleWheelsSimData::operator= | ( | const PxVehicleWheelsSimData & | src | ) |
Copy wheel simulation data.
static PxU8* PxVehicleWheelsSimData::patchUpPointers | ( | const PxU32 | numWheels, | |
PxVehicleWheelsSimData * | simData, | |||
PxU8 * | ptrIn | |||
) | [static, private] |
void PxVehicleWheelsSimData::setAntiRollBarData | ( | const PxU32 | id, | |
const PxVehicleAntiRollBarData & | antiRoll | |||
) |
void PxVehicleWheelsSimData::setChassisMass | ( | const PxF32 | chassisMass | ) |
Setup with mass information that can be applied to the default values of the suspensions, wheels, and tires set in their respective constructors.
chassisMass | is the mass of the chassis. |
void PxVehicleWheelsSimData::setHighForwardSpeedSubStepCount | ( | const PxU32 | f | ) | [inline] |
void PxVehicleWheelsSimData::setLowForwardSpeedSubStepCount | ( | const PxU32 | f | ) | [inline] |
void PxVehicleWheelsSimData::setMinLongSlipDenominator | ( | const PxReal | minLongSlipDenominator | ) |
Set the minimum denominator used in the longitudinal slip calculation.
The default value is the equivalent of 4 metres per second after accounting for the length scale set in PxTolerancesScale.
Adjust this value upwards if a vehicle has difficulty coming to rest.
Decreasing the timestep (or increasing the number of sub-steps at low longitudinal speed with setSubStepCount) should allow stable stable behavior with smaller values of minLongSlipDenominator.
void PxVehicleWheelsSimData::setSceneQueryFilterData | ( | const PxU32 | suspId, | |
const PxFilterData & | sqFilterData | |||
) |
Set the scene query filter data that will be used for raycasts along the travel direction of the specified suspension. The default value is PxFilterData(0,0,0,0).
suspId | is the wheel index | |
sqFilterData | is the raycast filter data for the suspension raycast. |
void PxVehicleWheelsSimData::setSubStepCount | ( | const PxReal | thresholdLongitudinalSpeed, | |
const PxU32 | lowForwardSpeedSubStepCount, | |||
const PxU32 | highForwardSpeedSubStepCount | |||
) |
Set the number of vehicle sub-steps that will be performed when the vehicle's longitudinal speed is below and above a threshold longitudinal speed.
Typically, vehicles require more sub-steps at very low forward speeds.
The threshold longitudinal speed has a default value that is the equivalent of 5 metres per second after accounting for the length scale set in PxTolerancesScale.
The sub-step count below the threshold longitudinal speed has a default of 3.
The sub-step count above the threshold longitudinal speed has a default of 1.
Each sub-step has time advancement equal to the time-step passed to PxVehicleUpdates divided by the number of required sub-steps.
The contact planes of the most recent suspension line raycast are reused across all sub-steps.
Each sub-step computes tire and suspension forces and then advances a velocity, angular velocity and transform.
At the end of all sub-steps the vehicle actor is given the velocity and angular velocity that would move the actor from its start transform prior to the first sub-step to the transform computed at the end of the last substep, assuming it doesn't collide with anything along the way in the next PhysX SDK update.
The global pose of the actor is left unchanged throughout the sub-steps.
[in] | thresholdLongitudinalSpeed | is a threshold speed that is used to categorize vehicle speed as low speed or high speed. |
[in] | lowForwardSpeedSubStepCount | is the number of sub-steps performed in PxVehicleUpates for vehicles that have longitudinal speed lower than thresholdLongitudinalSpeed. |
[in] | highForwardSpeedSubStepCount | is the number of sub-steps performed in PxVehicleUpdates for vehicles that have longitudinal speed graeter than thresholdLongitudinalSpeed. |
void PxVehicleWheelsSimData::setSuspensionData | ( | const PxU32 | id, | |
const PxVehicleSuspensionData & | susp | |||
) |
Set the suspension data of the idth wheel.
[in] | id | is the wheel index. |
[in] | susp | is the suspension data to be applied. |
Set the application point of the suspension force of the suspension of the idth wheel.
[in] | id | is the wheel index |
[in] | offset | is the offset from the rigid body center of mass to the application point of the suspension force. |
Set the direction of travel of the suspension of the idth wheel.
[in] | id | is the wheel index |
[in] | dir | is the suspension travel direction to be applied. |
void PxVehicleWheelsSimData::setThresholdLongSpeed | ( | const PxF32 | f | ) | [inline] |
void PxVehicleWheelsSimData::setTireData | ( | const PxU32 | id, | |
const PxVehicleTireData & | tire | |||
) |
Set the tire data of the idth wheel.
[in] | id | is the wheel index. |
[in] | tire | is the tire data to be applied. |
Set the application point of the tire force of the tire of the idth wheel.
[in] | id | is the wheel index |
[in] | offset | is the offset from the rigid body center of mass to the application point of the tire force. |
void PxVehicleWheelsSimData::setTireLoadFilterData | ( | const PxVehicleTireLoadFilterData & | tireLoadFilter | ) |
Set the data that describes the filtering of the tire load to produce smoother handling at large timesteps.
tireLoadFilter | is the smoothing function data. |
Set the offset from the rigid body centre of mass to the centre of the idth wheel.
[in] | id | is the wheel index |
[in] | offset | is the offset from the rigid body center of mass to the center of the wheel at rest. |
void PxVehicleWheelsSimData::setWheelData | ( | const PxU32 | id, | |
const PxVehicleWheelData & | wheel | |||
) |
Set the wheel data of the idth wheel.
[in] | id | is the wheel index. |
[in] | wheel | is the wheel data to be applied. |
void PxVehicleWheelsSimData::setWheelEnabledState | ( | const PxU32 | wheel, | |
const bool | state | |||
) | [inline] |
void PxVehicleWheelsSimData::setWheelShapeMapping | ( | const PxU32 | wheelId, | |
const PxI32 | shapeId | |||
) |
Set mapping between wheel id and position of corresponding wheel shape in the list of actor shapes.
Use setWheelShapeMapping(i,-1) to register that there is no wheel shape corresponding to the ith wheel
Set setWheelShapeMapping(i,k) to register that the ith wheel corresponds to the kth shape in the actor's list of shapes.
The default values correspond to setWheelShapeMapping(i,i) for all wheels.
Calling this function will also pose the relevant PxShape at the rest position of the wheel.
wheelId | is the wheel index | |
shapeId | is the shape index. |
friend class PxVehicleDrive4W [friend] |
friend class PxVehicleDriveTank [friend] |
friend class PxVehicleNoDrive [friend] |
friend class PxVehicleUpdate [friend] |
friend class PxVehicleWheels [friend] |
PxU32 PxVehicleWheelsSimData::mActiveWheelsBitmapBuffer[((PX_MAX_NB_WHEELS+31)&~31) >> 5] [private] |
Which of the mNbActiveWheels are active or disabled? The default is that all mNbActiveWheels wheels are active.
Anti-roll bars.
Number of sub-steps that will be performed if the longitudinal speed of the vehicle is greater than or equal to mThresholdLongitudinalSpeed.
Number of sub-steps that will be performed if the longitudinal speed of the vehicle is smaller than mThresholdLongitudinalSpeed.
PxF32 PxVehicleWheelsSimData::mMinLongSlipDenominator [private] |
Minimum long slip denominator.
Number of active anti-roll bars.
PxU32 PxVehicleWheelsSimData::mNbActiveWheels [private] |
Number of actual wheels (<=(mNbWheels4*4)).
2 anti-rollbars allocated for each block of 4 wheels.
PxU32 PxVehicleWheelsSimData::mNbWheels4 [private] |
Number of blocks of 4 wheels.
PxU32 PxVehicleWheelsSimData::mPad[1] [private] |
PxF32 PxVehicleWheelsSimData::mThresholdLongitudinalSpeed [private] |
Threshold longitudinal speed used to decide whether to use mLowForwardSpeedSubStepCount or mHighForwardSpeedSubStepCount as the number of sub-steps that will be peformed.
PxVehicleWheels4SimData* PxVehicleWheelsSimData::mWheels4SimData [private] |
Wheels data organised in blocks of 4 wheels.