31 #ifndef PX_VEHICLE_WHEELS_H 32 #define PX_VEHICLE_WHEELS_H 48 class PxVehicleWheels4SimData;
49 class PxVehicleWheels4DynData;
50 class PxVehicleTireForceCalculator;
75 eLIMIT_SUSPENSION_EXPANSION_VELOCITY = (1 << 0)
105 friend class PxVehicleUpdate;
126 void setChassisMass(
const PxF32 chassisMass);
172 const PxVec3& getSuspTravelDirection(
const PxU32 id)
const;
178 const PxVec3& getSuspForceAppPointOffset(
const PxU32 id)
const;
184 const PxVec3& getTireForceAppPointOffset(
const PxU32 id)
const;
189 const PxVec3& getWheelCentreOffset(
const PxU32 id)
const;
200 PxI32 getWheelShapeMapping(
const PxU32 wheelId)
const;
213 return mNbActiveAntiRollBars;
231 return mNormalisedLoadFilter;
260 void setSuspTravelDirection(
const PxU32 id,
const PxVec3& dir);
268 void setSuspForceAppPointOffset(
const PxU32 id,
const PxVec3& offset);
276 void setTireForceAppPointOffset(
const PxU32 id,
const PxVec3& offset);
284 void setWheelCentreOffset(
const PxU32 id,
const PxVec3& offset);
306 void setWheelShapeMapping(
const PxU32 wheelId,
const PxI32 shapeId);
315 void setSceneQueryFilterData(
const PxU32 suspId,
const PxFilterData& sqFilterData);
377 void disableWheel(
const PxU32 wheel);
385 void enableWheel(
const PxU32 wheel);
391 bool getIsWheelDisabled(
const PxU32 wheel)
const;
423 void setSubStepCount(
const PxReal thresholdLongitudinalSpeed,
const PxU32 lowForwardSpeedSubStepCount,
const PxU32 highForwardSpeedSubStepCount);
441 void setMinLongSlipDenominator(
const PxReal minLongSlipDenominator);
545 bool isValid()
const;
550 static PxU32 computeByteSize(
const PxU32 numWheels);
603 friend class PxVehicleUpdate;
612 void setToRestState();
625 void setTireForceShaderData(
const PxU32 tireId,
const void* tireForceShaderData);
630 const void* getTireForceShaderData(
const PxU32 tireId)
const;
637 void setWheelRotationSpeed(
const PxU32 wheelIdx,
const PxReal speed);
642 PxReal getWheelRotationSpeed(
const PxU32 wheelIdx)
const;
649 void setWheelRotationAngle(
const PxU32 wheelIdx,
const PxReal angle);
654 PxReal getWheelRotationAngle(
const PxU32 wheelIdx)
const;
662 void setUserData(
const PxU32 tireIdx,
void* userData);
667 void* getUserData(
const PxU32 tireIdx)
const;
687 bool isValid()
const;
715 static PxU32 computeByteSize(
const PxU32 numWheels);
743 friend class PxVehicleUpdate;
744 friend class PxVehicleConstraintShader;
766 PxReal computeForwardSpeed()
const;
772 PxReal computeSidewaysSpeed()
const;
789 void setToRestState();
794 bool isValid()
const;
799 static PxU32 computeByteSize(
const PxU32 nbWheels);
801 virtual void init(
const PxU32 numWheels);
812 void onConstraintRelease();
820 const PxU32 nbDrivenWheels,
const PxU32 nbNonDrivenWheels);
874 #endif //PX_VEHICLE_WHEELS_H Definition: GuContactBuffer.h:37
PX_FORCE_INLINE PxU32 getNbNonDrivenWheels() const
Definition: PxVehicleWheels.h:860
PxU32 getNbWheelRotationAngle() const
Definition: PxVehicleWheels.h:723
PxU32 mNbNonDrivenWheels
Count the number of constraint connectors that have hit their callback when deleting a vehicle...
Definition: PxVehicleWheels.h:833
#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:606
PxU8 mType
Vehicle type (eVehicleDriveTypes)
Definition: PxVehicleWheels.h:842
PxVehicleWheels(PxType concreteType, PxBaseFlags baseFlags)
Definition: PxVehicleWheels.h:861
Definition: PxVehicleComponents.h:960
~PxVehicleWheelsSimData()
Definition: PxVehicleWheels.h:582
PxU32 mFlags
The vehicle wheel simulation flags.
Definition: PxVehicleWheels.h:536
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:561
Data structure with instanced dynamics data and configuration data of a vehicle with no drive model...
Definition: PxVehicleNoDrive.h:56
PxU32 getNbWheelShapeMapping() const
Definition: PxVehicleWheels.h:566
PxF32 getThresholdLongSpeed() const
Definition: PxVehicleWheels.h:570
PxU32 getNbAntiRollBars4() const
Definition: PxVehicleWheels.h:578
Definition: PxVehicleComponents.h:818
Abstract class for collision shapes.
Definition: PxShape.h:142
#define PX_FORCE_INLINE
Definition: PxPreprocessor.h:346
Definition: PxVehicleComponents.h:1178
void ** mUserDatas
A userData pointer can be stored for each wheel.
Definition: PxVehicleWheels.h:698
float PxReal
Definition: PxSimpleTypes.h:78
PxF32 mMinLongSlipDenominator
Minimum long slip denominator.
Definition: PxVehicleWheels.h:529
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:750
PxU32 getNbWheelRotationSpeed() const
Definition: PxVehicleWheels.h:722
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:229
PxF32 getMinLongSlipDenominator() const
Definition: PxVehicleWheels.h:568
Data structure with instanced dynamics data for wheels.
Definition: PxVehicleWheels.h:590
virtual ~PxVehicleWheels()
Definition: PxVehicleWheels.h:863
PxU32 mLowForwardSpeedSubStepCount
Number of sub-steps that will be performed if the longitudinal speed of the vehicle is smaller than m...
Definition: PxVehicleWheels.h:518
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:782
PxU32 getLowForwardSpeedSubStepCount() const
Definition: PxVehicleWheels.h:572
void setThresholdLongSpeed(const PxF32 f)
Definition: PxVehicleWheels.h:569
virtual bool isKindOf(const char *name) const
Returns whether a given type name matches with the type of this instance.
Definition: PxVehicleWheels.h:854
PxVehicleWheels4SimData * mWheels4SimData
Wheels data organised in blocks of 4 wheels.
Definition: PxVehicleWheels.h:474
PX_FORCE_INLINE const PxRigidDynamic * getRigidDynamicActor() const
Get const ptr to PxRigidDynamic instance that is the vehicle's physx representation.
Definition: PxVehicleWheels.h:760
PxU32 getNbWheelData() const
Definition: PxVehicleWheels.h:560
PxU16 PxType
Definition: PxBase.h:49
virtual const char * getConcreteTypeName() const
Returns string name of dynamic type.
Definition: PxVehicleWheels.h:853
PxVehicleWheels4DynData * mWheels4DynData
Dynamics data arranged in blocks of 4 wheels.
Definition: PxVehicleWheels.h:682
Output stream class for I/O.
Definition: PxIO.h:114
PxFlags< PxVehicleWheelsSimFlag::Enum, PxU32 > PxVehicleWheelsSimFlags
Collection of set bits defined in PxVehicleWheelsSimFlag.
Definition: PxVehicleWheels.h:84
PxU32 mHighForwardSpeedSubStepCount
Number of sub-steps that will be performed if the longitudinal speed of the vehicle is greater than o...
Definition: PxVehicleWheels.h:524
void setLowForwardSpeedSubStepCount(const PxU32 f)
Definition: PxVehicleWheels.h:571
PxVehicleWheelsSimData()
Definition: PxVehicleWheels.h:581
PxU32 getNbWheels4() const
Definition: PxVehicleWheels.h:558
Data structure describing configuration data of a vehicle with up to 20 wheels.
Definition: PxVehicleWheels.h:91
PX_FORCE_INLINE PxRigidDynamic * getRigidDynamicActor()
Get non-const ptr to PxRigidDynamic instance that is the vehicle's physx representation.
Definition: PxVehicleWheels.h:755
PxU32 mNbActiveWheels
Number of actual wheels (<=(mNbWheels4*4))
Definition: PxVehicleWheels.h:484
virtual void release()
Releases the PxBase instance, please check documentation of release in derived class.
Definition: PxVehicleWheels.h:864
PxVehicleWheels4DynData * getWheel4DynData() const
Definition: PxVehicleWheels.h:724
PxU32 mNbActiveAntiRollBars
Number of active anti-roll bars.
Definition: PxVehicleWheels.h:499
PxU32 getNbWheelCentreOffset() const
Definition: PxVehicleWheels.h:565
PxU32 getNbWheels() const
Return the number of wheels.
Definition: PxVehicleWheels.h:152
PxU16 flags
a set of Px1DConstraintFlags
Definition: PxConstraintDesc.h:110
PxVehicleWheelsSimData(const PxEMPTY)
Definition: PxVehicleWheels.h:556
uint8_t PxU8
Definition: PxSimpleTypes.h:75
PxVehicleAntiRollBarData * mAntiRollBars
Anti-roll bars.
Definition: PxVehicleWheels.h:489
PxU32 mNbWheels4
Number of blocks of 4 wheels.
Definition: PxVehicleWheels.h:479
PxVehicleTireForceCalculator * mTireForceCalculators
Shader data and function for tire force calculations.
Definition: PxVehicleWheels.h:692
bool getWheelEnabledState(const PxU32 wheel) const
Definition: PxVehicleWheels.h:576
PxU32 getNbSuspensionData() const
Definition: PxVehicleWheels.h:559
Definition: PxVehicleComponents.h:1138
virtual void preExportDataReset()
Definition: PxVehicleWheels.h:855
PxU32 getNbTireData() const
Definition: PxVehicleWheels.h:562
#define PX_COMPILE_TIME_ASSERT(exp)
Definition: PxPreprocessor.h:429
PxVehicleWheels(PxBaseFlags baseFlags)
Definition: PxVehicleWheels.h:862
void setWheelEnabledState(const PxU32 wheel, const bool state)
Definition: PxVehicleWheels.h:575
PxU32 mNbActiveWheels
Number of wheels (mNbActiveWheels <= (mNbWheels4*4))
Definition: PxVehicleWheels.h:708
Data structure with instanced dynamics data and configuration data of a vehicle with up to 4 driven w...
Definition: PxVehicleDrive4W.h:176
PxF32 mThresholdLongitudinalSpeed
Threshold longitudinal speed used to decide whether to use mLowForwardSpeedSubStepCount or mHighForwa...
Definition: PxVehicleWheels.h:512
int32_t PxI32
Definition: PxSimpleTypes.h:70
PxU8 mOnConstraintReleaseCounter
Definition: PxVehicleWheels.h:835
PxVehicleWheelsDynData()
Definition: PxVehicleWheels.h:605
Flags to configure the vehicle wheel simulation.
Definition: PxVehicleWheels.h:60
PxU32 getNbAntiRollBars() const
Return the number of unique anti-roll bars that have been added with addAntiRollBarData.
Definition: PxVehicleWheels.h:211
PxU32 getNbAntiRollBarData() const
Definition: PxVehicleWheels.h:579
PxVehicleWheelsSimData mWheelsSimData
Data describing the setup of all the wheels/suspensions/tires.
Definition: PxVehicleWheels.h:777
Data structure with instanced dynamics data and configuration data of a vehicle with just wheels...
Definition: PxVehicleWheels.h:733
PxEMPTY
Definition: Px.h:70
PxU32 getNbWheelEnabledState() const
Definition: PxVehicleWheels.h:577
Binary deserialization context class.
Definition: PxSerialFramework.h:174
Material class to represent a set of surface properties.
Definition: PxMaterial.h:143
void setHighForwardSpeedSubStepCount(const PxU32 f)
Definition: PxVehicleWheels.h:573
PxU32 mNbAntiRollBars4
2 anti-rollbars allocated for each block of 4 wheels.
Definition: PxVehicleWheels.h:494
Container for bitfield flag variables associated with a specific enum type.
Definition: PxFlags.h:73
Abstract singleton factory class used for instancing objects in the Physics SDK.
Definition: PxPhysics.h:71
Enum
Definition: PxVehicleWheels.h:62
PxU32 getHighForwardSpeedSubStepCount() const
Definition: PxVehicleWheels.h:574
uint32_t PxU32
Definition: Px.h:48
PxRigidDynamic * mActor
The rigid body actor that represents the vehicle in the PhysX SDK.
Definition: PxVehicleWheels.h:825
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:703
PxU32 getNbSuspForceAppPointOffset() const
Definition: PxVehicleWheels.h:563
Data structure with instanced dynamics data and configuration data of a tank.
Definition: PxVehicleDriveTank.h:150
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:564
Callback class used to process PxBase objects.
Definition: PxSerialFramework.h:81
PxU32 getNbSceneQueryFilterData() const
Definition: PxVehicleWheels.h:567
PxVehicleTireLoadFilterData mNormalisedLoadFilter
Graph to filter normalised load.
Definition: PxVehicleWheels.h:469
3 Element vector class.
Definition: PxVec3.h:49