31 #ifndef PX_VEHICLE_WHEELS_H 32 #define PX_VEHICLE_WHEELS_H 48 class PxVehicleWheels4SimData;
49 class PxVehicleWheels4DynData;
50 class PxVehicleTireForceCalculator;
73 friend class PxVehicleUpdate;
94 void setChassisMass(
const PxF32 chassisMass);
140 const PxVec3& getSuspTravelDirection(
const PxU32 id)
const;
146 const PxVec3& getSuspForceAppPointOffset(
const PxU32 id)
const;
152 const PxVec3& getTireForceAppPointOffset(
const PxU32 id)
const;
157 const PxVec3& getWheelCentreOffset(
const PxU32 id)
const;
168 PxI32 getWheelShapeMapping(
const PxU32 wheelId)
const;
181 return mNbActiveAntiRollBars;
199 return mNormalisedLoadFilter;
228 void setSuspTravelDirection(
const PxU32 id,
const PxVec3& dir);
236 void setSuspForceAppPointOffset(
const PxU32 id,
const PxVec3& offset);
244 void setTireForceAppPointOffset(
const PxU32 id,
const PxVec3& offset);
252 void setWheelCentreOffset(
const PxU32 id,
const PxVec3& offset);
274 void setWheelShapeMapping(
const PxU32 wheelId,
const PxI32 shapeId);
283 void setSceneQueryFilterData(
const PxU32 suspId,
const PxFilterData& sqFilterData);
345 void disableWheel(
const PxU32 wheel);
353 void enableWheel(
const PxU32 wheel);
359 bool getIsWheelDisabled(
const PxU32 wheel)
const;
391 void setSubStepCount(
const PxReal thresholdLongitudinalSpeed,
const PxU32 lowForwardSpeedSubStepCount,
const PxU32 highForwardSpeedSubStepCount);
409 void setMinLongSlipDenominator(
const PxReal minLongSlipDenominator);
488 bool isValid()
const;
493 static PxU32 computeByteSize(
const PxU32 numWheels);
546 friend class PxVehicleUpdate;
555 void setToRestState();
568 void setTireForceShaderData(
const PxU32 tireId,
const void* tireForceShaderData);
573 const void* getTireForceShaderData(
const PxU32 tireId)
const;
580 void setWheelRotationSpeed(
const PxU32 wheelIdx,
const PxReal speed);
585 PxReal getWheelRotationSpeed(
const PxU32 wheelIdx)
const;
592 void setWheelRotationAngle(
const PxU32 wheelIdx,
const PxReal angle);
597 PxReal getWheelRotationAngle(
const PxU32 wheelIdx)
const;
605 void setUserData(
const PxU32 tireIdx,
void* userData);
610 void* getUserData(
const PxU32 tireIdx)
const;
630 bool isValid()
const;
658 static PxU32 computeByteSize(
const PxU32 numWheels);
686 friend class PxVehicleUpdate;
687 friend class PxVehicleConstraintShader;
709 PxReal computeForwardSpeed()
const;
715 PxReal computeSidewaysSpeed()
const;
732 void setToRestState();
737 bool isValid()
const;
742 static PxU32 computeByteSize(
const PxU32 nbWheels);
744 virtual void init(
const PxU32 numWheels);
758 const PxU32 nbDrivenWheels,
const PxU32 nbNonDrivenWheels);
811 #endif //PX_VEHICLE_WHEELS_H Definition: GuContactBuffer.h:37
PX_FORCE_INLINE PxU32 getNbNonDrivenWheels() const
Definition: PxVehicleWheels.h:797
PxU32 getNbWheelRotationAngle() const
Definition: PxVehicleWheels.h:666
PxU32 mNbNonDrivenWheels
Count the number of constraint connectors that have hit their callback when deleting a vehicle...
Definition: PxVehicleWheels.h:771
#define PX_MAX_NB_WHEELS
This number is the maximum number of wheels allowed for a vehicle.
Definition: PxVehicleSDK.h:81
~PxVehicleWheelsDynData()
Definition: PxVehicleWheels.h:549
PxU8 mType
Vehicle type (eVehicleDriveTypes)
Definition: PxVehicleWheels.h:780
PxVehicleWheels(PxType concreteType, PxBaseFlags baseFlags)
Definition: PxVehicleWheels.h:798
Definition: PxVehicleComponents.h:960
~PxVehicleWheelsSimData()
Definition: PxVehicleWheels.h:525
PxRigidDynamic represents a dynamic rigid simulation object in the physics SDK.
Definition: PxRigidDynamic.h:83
float PxF32
Definition: PxSimpleTypes.h:76
PxFilterData is user-definable data which gets passed into the collision filtering shader and/or call...
Definition: PxFiltering.h:366
PxU32 getNbSuspTravelDirection() const
Definition: PxVehicleWheels.h:504
Data structure with instanced dynamics data and configuration data of a vehicle with no drive model...
Definition: PxVehicleNoDrive.h:57
PxU32 getNbWheelShapeMapping() const
Definition: PxVehicleWheels.h:509
PxF32 getThresholdLongSpeed() const
Definition: PxVehicleWheels.h:513
PxU32 getNbAntiRollBars4() const
Definition: PxVehicleWheels.h:521
Definition: PxVehicleComponents.h:818
Abstract class for collision shapes.
Definition: PxShape.h:142
#define PX_FORCE_INLINE
Definition: PxPreprocessor.h:364
Definition: PxVehicleComponents.h:1178
void ** mUserDatas
A userData pointer can be stored for each wheel.
Definition: PxVehicleWheels.h:641
float PxReal
Definition: PxSimpleTypes.h:78
PxF32 mMinLongSlipDenominator
Minimum long slip denominator.
Definition: PxVehicleWheels.h:477
virtual bool isKindOf(const char *superClass) const
Returns whether a given type name matches with the type of this instance.
Definition: PxBase.h:178
PX_FORCE_INLINE PxU32 getVehicleType() const
Return the type of vehicle.
Definition: PxVehicleWheels.h:693
PxU32 getNbWheelRotationSpeed() const
Definition: PxVehicleWheels.h:665
PX_FORCE_INLINE const PxVehicleTireLoadFilterData & getTireLoadFilterData() const
Return the data that describes the filtering of the tire load to produce smoother handling at large t...
Definition: PxVehicleWheels.h:197
PxF32 getMinLongSlipDenominator() const
Definition: PxVehicleWheels.h:511
Data structure with instanced dynamics data for wheels.
Definition: PxVehicleWheels.h:533
virtual ~PxVehicleWheels()
Definition: PxVehicleWheels.h:800
PxU32 mLowForwardSpeedSubStepCount
Number of sub-steps that will be performed if the longitudinal speed of the vehicle is smaller than m...
Definition: PxVehicleWheels.h:466
void(* PxVehicleComputeTireForce)(const void *shaderData, const PxF32 tireFriction, const PxF32 longSlip, const PxF32 latSlip, const PxF32 camber, const PxF32 wheelOmega, const PxF32 wheelRadius, const PxF32 recipWheelRadius, const PxF32 restTireLoad, const PxF32 normalisedTireLoad, const PxF32 tireLoad, const PxF32 gravity, const PxF32 recipGravity, PxF32 &wheelTorque, PxF32 &tireLongForceMag, PxF32 &tireLatForceMag, PxF32 &tireAlignMoment)
Prototype of shader function that is used to compute wheel torque and tire forces.
Definition: PxVehicleShaders.h:65
PxVehicleWheelsDynData mWheelsDynData
Data describing the dynamic state of all wheels/suspension/tires.
Definition: PxVehicleWheels.h:725
PxU32 getLowForwardSpeedSubStepCount() const
Definition: PxVehicleWheels.h:515
void setThresholdLongSpeed(const PxF32 f)
Definition: PxVehicleWheels.h:512
virtual bool isKindOf(const char *name) const
Returns whether a given type name matches with the type of this instance.
Definition: PxVehicleWheels.h:792
PxVehicleWheels4SimData * mWheels4SimData
Wheels data organised in blocks of 4 wheels.
Definition: PxVehicleWheels.h:422
PX_FORCE_INLINE const PxRigidDynamic * getRigidDynamicActor() const
Get const ptr to PxRigidDynamic instance that is the vehicle's physx representation.
Definition: PxVehicleWheels.h:703
PxU32 getNbWheelData() const
Definition: PxVehicleWheels.h:503
PxU16 PxType
Definition: PxBase.h:49
virtual const char * getConcreteTypeName() const
Returns string name of dynamic type.
Definition: PxVehicleWheels.h:791
PxVehicleWheels4DynData * mWheels4DynData
Dynamics data arranged in blocks of 4 wheels.
Definition: PxVehicleWheels.h:625
Output stream class for I/O.
Definition: PxIO.h:114
PxU32 mHighForwardSpeedSubStepCount
Number of sub-steps that will be performed if the longitudinal speed of the vehicle is greater than o...
Definition: PxVehicleWheels.h:472
void setLowForwardSpeedSubStepCount(const PxU32 f)
Definition: PxVehicleWheels.h:514
PxVehicleWheelsSimData()
Definition: PxVehicleWheels.h:524
PxU32 getNbWheels4() const
Definition: PxVehicleWheels.h:501
Data structure describing configuration data of a vehicle with up to 20 wheels.
Definition: PxVehicleWheels.h:59
PX_FORCE_INLINE PxRigidDynamic * getRigidDynamicActor()
Get non-const ptr to PxRigidDynamic instance that is the vehicle's physx representation.
Definition: PxVehicleWheels.h:698
PxU32 mNbActiveWheels
Number of actual wheels (<=(mNbWheels4*4))
Definition: PxVehicleWheels.h:432
virtual void release()
Releases the PxBase instance, please check documentation of release in derived class.
Definition: PxVehicleWheels.h:801
PxVehicleWheels4DynData * getWheel4DynData() const
Definition: PxVehicleWheels.h:667
PxU32 mNbActiveAntiRollBars
Number of active anti-roll bars.
Definition: PxVehicleWheels.h:447
PxU32 getNbWheelCentreOffset() const
Definition: PxVehicleWheels.h:508
PxU32 getNbWheels() const
Return the number of wheels.
Definition: PxVehicleWheels.h:120
PxVehicleWheelsSimData(const PxEMPTY)
Definition: PxVehicleWheels.h:499
uint8_t PxU8
Definition: PxSimpleTypes.h:75
PxVehicleAntiRollBarData * mAntiRollBars
Anti-roll bars.
Definition: PxVehicleWheels.h:437
PxU32 mNbWheels4
Number of blocks of 4 wheels.
Definition: PxVehicleWheels.h:427
PxVehicleTireForceCalculator * mTireForceCalculators
Shader data and function for tire force calculations.
Definition: PxVehicleWheels.h:635
bool getWheelEnabledState(const PxU32 wheel) const
Definition: PxVehicleWheels.h:519
PxU32 getNbSuspensionData() const
Definition: PxVehicleWheels.h:502
Definition: PxVehicleComponents.h:1138
PxU32 getNbTireData() const
Definition: PxVehicleWheels.h:505
#define PX_COMPILE_TIME_ASSERT(exp)
Definition: PxPreprocessor.h:447
PxVehicleWheels(PxBaseFlags baseFlags)
Definition: PxVehicleWheels.h:799
void setWheelEnabledState(const PxU32 wheel, const bool state)
Definition: PxVehicleWheels.h:518
PxU32 mNbActiveWheels
Number of wheels (mNbActiveWheels <= (mNbWheels4*4))
Definition: PxVehicleWheels.h:651
Data structure with instanced dynamics data and configuration data of a vehicle with up to 4 driven w...
Definition: PxVehicleDrive4W.h:177
PxF32 mThresholdLongitudinalSpeed
Threshold longitudinal speed used to decide whether to use mLowForwardSpeedSubStepCount or mHighForwa...
Definition: PxVehicleWheels.h:460
int32_t PxI32
Definition: PxSimpleTypes.h:70
PxU8 mOnConstraintReleaseCounter
Definition: PxVehicleWheels.h:773
PxVehicleWheelsDynData()
Definition: PxVehicleWheels.h:548
PxU32 getNbAntiRollBars() const
Return the number of unique anti-roll bars that have been added with addAntiRollBarData.
Definition: PxVehicleWheels.h:179
PxU32 getNbAntiRollBarData() const
Definition: PxVehicleWheels.h:522
PxVehicleWheelsSimData mWheelsSimData
Data describing the setup of all the wheels/suspensions/tires.
Definition: PxVehicleWheels.h:720
Data structure with instanced dynamics data and configuration data of a vehicle with just wheels...
Definition: PxVehicleWheels.h:676
PxEMPTY
Definition: Px.h:70
PxU32 getNbWheelEnabledState() const
Definition: PxVehicleWheels.h:520
Binary deserialization context class.
Definition: PxSerialFramework.h:174
Material class to represent a set of surface properties.
Definition: PxMaterial.h:130
void setHighForwardSpeedSubStepCount(const PxU32 f)
Definition: PxVehicleWheels.h:516
PxU32 mNbAntiRollBars4
2 anti-rollbars allocated for each block of 4 wheels.
Definition: PxVehicleWheels.h:442
Abstract singleton factory class used for instancing objects in the Physics SDK.
Definition: PxPhysics.h:71
PxU32 getHighForwardSpeedSubStepCount() const
Definition: PxVehicleWheels.h:517
uint32_t PxU32
Definition: Px.h:48
PxRigidDynamic * mActor
The rigid body actor that represents the vehicle in the PhysX SDK.
Definition: PxVehicleWheels.h:763
Tire load variation can be strongly dependent on the time-step so it is a good idea to filter it to g...
Definition: PxVehicleComponents.h:762
PxU32 mNbWheels4
Number of blocks of 4 wheels.
Definition: PxVehicleWheels.h:646
PxU32 getNbSuspForceAppPointOffset() const
Definition: PxVehicleWheels.h:506
Data structure with instanced dynamics data and configuration data of a tank.
Definition: PxVehicleDriveTank.h:151
Base class for objects that can be members of a PxCollection.
Definition: PxBase.h:73
Binary serialization context class.
Definition: PxSerialFramework.h:99
PxU32 getNbTireForceAppPointOffset() const
Definition: PxVehicleWheels.h:507
Callback class used to process PxBase objects.
Definition: PxSerialFramework.h:81
PxU32 getNbSceneQueryFilterData() const
Definition: PxVehicleWheels.h:510
PxVehicleTireLoadFilterData mNormalisedLoadFilter
Graph to filter normalised load.
Definition: PxVehicleWheels.h:417
3 Element vector class.
Definition: PxVec3.h:49