PxVehicleWheels.h
Go to the documentation of this file.
1 //
2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions
4 // are met:
5 // * Redistributions of source code must retain the above copyright
6 // notice, this list of conditions and the following disclaimer.
7 // * Redistributions in binary form must reproduce the above copyright
8 // notice, this list of conditions and the following disclaimer in the
9 // documentation and/or other materials provided with the distribution.
10 // * Neither the name of NVIDIA CORPORATION nor the names of its
11 // contributors may be used to endorse or promote products derived
12 // from this software without specific prior written permission.
13 //
14 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
15 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
18 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22 // OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 //
26 // Copyright (c) 2008-2021 NVIDIA Corporation. All rights reserved.
27 // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
28 // Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
29 
30 
31 #ifndef PX_VEHICLE_WHEELS_H
32 #define PX_VEHICLE_WHEELS_H
33 
40 #include "common/PxBase.h"
41 #include "PxRigidDynamic.h"
42 
43 #if !PX_DOXYGEN
44 namespace physx
45 {
46 #endif
47 
48 class PxVehicleWheels4SimData;
49 class PxVehicleWheels4DynData;
50 class PxVehicleTireForceCalculator;
51 class PxShape;
52 class PxPhysics;
53 class PxMaterial;
54 
61 {
62  enum Enum
63  {
75  eLIMIT_SUSPENSION_EXPANSION_VELOCITY = (1 << 0),
76 
88  eDISABLE_INTERNAL_CYLINDER_PLANE_INTERSECTION_TEST = (1 << 1),
89 
107  eDISABLE_SUSPENSION_FORCE_PROJECTION = (1 << 2)
108  };
109 };
110 
117 PX_FLAGS_OPERATORS(PxVehicleWheelsSimFlag::Enum, PxU32)
118 
119 
124 {
125 //= ATTENTION! =====================================================================================
126 // Changing the data layout of this class breaks the binary serialization format. See comments for
127 // PX_BINARY_SERIAL_VERSION. If a modification is required, please adjust the getBinaryMetaData
128 // function. If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
129 // accordingly.
130 //==================================================================================================
131 public:
132 
133  friend class PxVehicleWheels;
134  friend class PxVehicleNoDrive;
135  friend class PxVehicleDrive4W;
136  friend class PxVehicleDriveTank;
137  friend class PxVehicleUpdate;
138 
143  static PxVehicleWheelsSimData* allocate(const PxU32 nbWheels);
144 
158  void setChassisMass(const PxF32 chassisMass);
159 
164  void free();
165 
170  PxVehicleWheelsSimData& operator=(const PxVehicleWheelsSimData& src);
171 
178  void copy(const PxVehicleWheelsSimData& src, const PxU32 srcWheel, const PxU32 trgWheel);
179 
184  PxU32 getNbWheels() const {return mNbActiveWheels;}
185 
189  const PxVehicleSuspensionData& getSuspensionData(const PxU32 id) const;
190 
194  const PxVehicleWheelData& getWheelData(const PxU32 id) const;
195 
199  const PxVehicleTireData& getTireData(const PxU32 id) const;
200 
204  const PxVec3& getSuspTravelDirection(const PxU32 id) const;
205 
210  const PxVec3& getSuspForceAppPointOffset(const PxU32 id) const;
211 
216  const PxVec3& getTireForceAppPointOffset(const PxU32 id) const;
217 
221  const PxVec3& getWheelCentreOffset(const PxU32 id) const;
222 
232  PxI32 getWheelShapeMapping(const PxU32 wheelId) const;
233 
237  const PxFilterData& getSceneQueryFilterData(const PxU32 suspId) const;
238 
244  {
245  return mNbActiveAntiRollBars;
246  }
247 
256  const PxVehicleAntiRollBarData& getAntiRollBarData(const PxU32 antiRollId) const;
257 
262  {
263  return mNormalisedLoadFilter;
264  }
265 
271  void setSuspensionData(const PxU32 id, const PxVehicleSuspensionData& susp);
272 
278  void setWheelData(const PxU32 id, const PxVehicleWheelData& wheel);
279 
285  void setTireData(const PxU32 id, const PxVehicleTireData& tire);
286 
292  void setSuspTravelDirection(const PxU32 id, const PxVec3& dir);
293 
300  void setSuspForceAppPointOffset(const PxU32 id, const PxVec3& offset);
301 
308  void setTireForceAppPointOffset(const PxU32 id, const PxVec3& offset);
309 
316  void setWheelCentreOffset(const PxU32 id, const PxVec3& offset);
317 
338  void setWheelShapeMapping(const PxU32 wheelId, const PxI32 shapeId);
339 
347  void setSceneQueryFilterData(const PxU32 suspId, const PxFilterData& sqFilterData);
348 
353  void setTireLoadFilterData(const PxVehicleTireLoadFilterData& tireLoadFilter);
354 
379  PxU32 addAntiRollBarData(const PxVehicleAntiRollBarData& antiRoll);
380 
409  void disableWheel(const PxU32 wheel);
410 
417  void enableWheel(const PxU32 wheel);
418 
423  bool getIsWheelDisabled(const PxU32 wheel) const;
424 
455  void setSubStepCount(const PxReal thresholdLongitudinalSpeed, const PxU32 lowForwardSpeedSubStepCount, const PxU32 highForwardSpeedSubStepCount);
456 
473  void setMinLongSlipDenominator(const PxReal minLongSlipDenominator);
474 
484  void setFlags(PxVehicleWheelsSimFlags flags);
485 
493  PxVehicleWheelsSimFlags getFlags() const;
494 
495 private:
496 
502 
506  PxVehicleWheels4SimData* mWheels4SimData;
507 
512 
517 
522 
527 
532 
537  PxU32 mActiveWheelsBitmapBuffer[((PX_MAX_NB_WHEELS + 31) & ~31) >> 5];
538 
545 
551 
557 
562 
569 
570 #if PX_P64_FAMILY
571  PxU32 mPad[1];
572 #endif
573 
577  bool isValid() const;
578 
582  static PxU32 computeByteSize(const PxU32 numWheels);
583  static PxU8* patchUpPointers(const PxU32 numWheels, PxVehicleWheelsSimData* simData, PxU8* ptrIn);
584  PxVehicleWheelsSimData(const PxU32 numWheels);
585 
586 //serialization
587 public:
588  PxVehicleWheelsSimData(const PxEMPTY) : mNormalisedLoadFilter(PxEmpty) {}
589  static void getBinaryMetaData(PxOutputStream& stream);
590  PxU32 getNbWheels4() const { return mNbWheels4; }
591  PxU32 getNbSuspensionData() const { return mNbActiveWheels; }
592  PxU32 getNbWheelData() const { return mNbActiveWheels; }
593  PxU32 getNbSuspTravelDirection() const { return mNbActiveWheels; }
594  PxU32 getNbTireData() const { return mNbActiveWheels; }
595  PxU32 getNbSuspForceAppPointOffset() const { return mNbActiveWheels; }
596  PxU32 getNbTireForceAppPointOffset() const { return mNbActiveWheels; }
597  PxU32 getNbWheelCentreOffset() const { return mNbActiveWheels; }
598  PxU32 getNbWheelShapeMapping() const { return mNbActiveWheels; }
599  PxU32 getNbSceneQueryFilterData() const { return mNbActiveWheels; }
600  PxF32 getMinLongSlipDenominator() const {return mMinLongSlipDenominator;}
601  void setThresholdLongSpeed(const PxF32 f) {mThresholdLongitudinalSpeed = f;}
602  PxF32 getThresholdLongSpeed() const {return mThresholdLongitudinalSpeed;}
603  void setLowForwardSpeedSubStepCount(const PxU32 f) {mLowForwardSpeedSubStepCount = f;}
604  PxU32 getLowForwardSpeedSubStepCount() const {return mLowForwardSpeedSubStepCount;}
605  void setHighForwardSpeedSubStepCount(const PxU32 f) {mHighForwardSpeedSubStepCount = f;}
606  PxU32 getHighForwardSpeedSubStepCount() const {return mHighForwardSpeedSubStepCount;}
607  void setWheelEnabledState(const PxU32 wheel, const bool state) {if(state) {enableWheel(wheel);} else {disableWheel(wheel);}}
608  bool getWheelEnabledState(const PxU32 wheel) const {return !getIsWheelDisabled(wheel);}
609  PxU32 getNbWheelEnabledState() const {return mNbActiveWheels;}
610  PxU32 getNbAntiRollBars4() const { return mNbAntiRollBars4; }
611  PxU32 getNbAntiRollBarData() const {return mNbActiveAntiRollBars;}
612  void setAntiRollBarData(const PxU32 id, const PxVehicleAntiRollBarData& antiRoll);
615 //~serialization
616 };
618 
623 {
624 //= ATTENTION! =====================================================================================
625 // Changing the data layout of this class breaks the binary serialization format. See comments for
626 // PX_BINARY_SERIAL_VERSION. If a modification is required, please adjust the getBinaryMetaData
627 // function. If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
628 // accordingly.
629 //==================================================================================================
630 public:
631 
632  friend class PxVehicleWheels;
633  friend class PxVehicleDrive4W;
634  friend class PxVehicleDriveTank;
635  friend class PxVehicleUpdate;
636 
639 
644  void setToRestState();
645 
650  void setTireForceShaderFunction(PxVehicleComputeTireForce tireForceShaderFn);
651 
657  void setTireForceShaderData(const PxU32 tireId, const void* tireForceShaderData);
658 
662  const void* getTireForceShaderData(const PxU32 tireId) const;
663 
669  void setWheelRotationSpeed(const PxU32 wheelIdx, const PxReal speed);
670 
674  PxReal getWheelRotationSpeed(const PxU32 wheelIdx) const;
675 
681  void setWheelRotationAngle(const PxU32 wheelIdx, const PxReal angle);
682 
686  PxReal getWheelRotationAngle(const PxU32 wheelIdx) const;
687 
694  void setUserData(const PxU32 tireIdx, void* userData);
695 
699  void* getUserData(const PxU32 tireIdx) const;
700 
707  void copy(const PxVehicleWheelsDynData& src, const PxU32 srcWheel, const PxU32 trgWheel);
708 
709 private:
710 
714  PxVehicleWheels4DynData* mWheels4DynData;
715 
719  bool isValid() const;
720 
724  PxVehicleTireForceCalculator* mTireForceCalculators;
725 
730  void** mUserDatas;
731 
736 
741 
742  PxU32 mPad[3];
743 
747  static PxU32 computeByteSize(const PxU32 numWheels);
748  static PxU8* patchUpPointers(const PxU32 numWheels, PxVehicleWheelsDynData* dynData, PxU8* ptr);
749  PxVehicleWheelsDynData(const PxU32 numWheels);
750 
751 //serialization
752 public:
753  static void getBinaryMetaData(PxOutputStream& stream);
754  PxU32 getNbWheelRotationSpeed() const { return mNbActiveWheels; }
755  PxU32 getNbWheelRotationAngle() const { return mNbActiveWheels; }
756  PxVehicleWheels4DynData* getWheel4DynData() const { return mWheels4DynData; }
757 //~serialization
758 
768  PxU32 getNbConstraints() const { return mNbWheels4; }
769 
782  PxU32 getConstraints(PxConstraint** userBuffer, PxU32 bufferSize, PxU32 startIndex = 0) const;
783 };
785 
790 class PxVehicleWheels : public PxBase
791 {
792 //= ATTENTION! =====================================================================================
793 // Changing the data layout of this class breaks the binary serialization format. See comments for
794 // PX_BINARY_SERIAL_VERSION. If a modification is required, please adjust the getBinaryMetaData
795 // function. If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
796 // accordingly.
797 //==================================================================================================
798 public:
799 
800  friend class PxVehicleUpdate;
801  friend class PxVehicleConstraintShader;
802 
807  PX_FORCE_INLINE PxU32 getVehicleType() const {return mType;}
808 
813 
817  PX_FORCE_INLINE const PxRigidDynamic* getRigidDynamicActor() const {return mActor;}
818 
823  PxReal computeForwardSpeed() const;
824 
829  PxReal computeSidewaysSpeed() const;
830 
835 
840 
841 protected:
842 
846  void setToRestState();
847 
851  bool isValid() const;
852 
856  static PxU32 computeByteSize(const PxU32 nbWheels);
857  static PxU8* patchupPointers(const PxU32 nbWheels, PxVehicleWheels* vehWheels, PxU8* ptr);
858  virtual void init(const PxU32 numWheels);
859 
864  void free();
865 
866  /*
867  \brief Deferred deletion.
868  */
869  void onConstraintRelease();
870 
874  void setup
875  (PxPhysics* physics, PxRigidDynamic* vehActor,
876  const PxVehicleWheelsSimData& wheelsData,
877  const PxU32 nbDrivenWheels, const PxU32 nbNonDrivenWheels);
878 
883 
884 private:
885 
891 
893 
894 protected:
895 
900 
901 #if PX_P64_FAMILY
902  PxU8 mPad0[14];
903 #else
904  PxU8 mPad0[14];
905 #endif
906 
907 //serialization
908 public:
909  virtual void requiresObjects(PxProcessPxBaseCallback& c);
910  virtual const char* getConcreteTypeName() const { return "PxVehicleWheels"; }
911  virtual bool isKindOf(const char* name) const { return !::strcmp("PxVehicleWheels", name) || PxBase::isKindOf(name); }
912  virtual void preExportDataReset() {}
913  virtual void exportExtraData(PxSerializationContext&);
914  void importExtraData(PxDeserializationContext&);
915  void resolveReferences(PxDeserializationContext&);
916  static void getBinaryMetaData(PxOutputStream& stream);
917  PX_FORCE_INLINE PxU32 getNbNonDrivenWheels() const { return mNbNonDrivenWheels; }
918  PxVehicleWheels(PxType concreteType, PxBaseFlags baseFlags) : PxBase(concreteType, baseFlags) {}
919  PxVehicleWheels(PxBaseFlags baseFlags) : PxBase(baseFlags), mWheelsSimData(PxEmpty) {}
920  virtual ~PxVehicleWheels() {}
921  virtual void release() { free(); }
922 //~serialization
923 };
924 PX_COMPILE_TIME_ASSERT(0==(sizeof(PxVehicleWheels) & 15));
925 
926 #if !PX_DOXYGEN
927 } // namespace physx
928 #endif
929 
931 #endif //PX_VEHICLE_WHEELS_H
Definition: GuContactBuffer.h:37
PX_FORCE_INLINE PxU32 getNbNonDrivenWheels() const
Definition: PxVehicleWheels.h:917
PxU32 getNbWheelRotationAngle() const
Definition: PxVehicleWheels.h:755
PxU32 mNbNonDrivenWheels
Count the number of constraint connectors that have hit their callback when deleting a vehicle...
Definition: PxVehicleWheels.h:890
#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:638
PxU8 mType
Vehicle type (eVehicleDriveTypes)
Definition: PxVehicleWheels.h:899
PxVehicleWheels(PxType concreteType, PxBaseFlags baseFlags)
Definition: PxVehicleWheels.h:918
Definition: PxVehicleComponents.h:960
~PxVehicleWheelsSimData()
Definition: PxVehicleWheels.h:614
PxU32 mFlags
The vehicle wheel simulation flags.
Definition: PxVehicleWheels.h:568
PxU32 getNbConstraints() const
Retrieve the number of PxConstraint objects associated with the vehicle.
Definition: PxVehicleWheels.h:768
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:593
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:598
PxF32 getThresholdLongSpeed() const
Definition: PxVehicleWheels.h:602
PxU32 getNbAntiRollBars4() const
Definition: PxVehicleWheels.h:610
Definition: PxVehicleComponents.h:818
Abstract class for collision shapes.
Definition: PxShape.h:142
#define PX_FORCE_INLINE
Definition: PxPreprocessor.h:351
Definition: PxVehicleComponents.h:1178
void ** mUserDatas
A userData pointer can be stored for each wheel.
Definition: PxVehicleWheels.h:730
float PxReal
Definition: PxSimpleTypes.h:78
PxF32 mMinLongSlipDenominator
Minimum long slip denominator.
Definition: PxVehicleWheels.h:561
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:807
PxU32 getNbWheelRotationSpeed() const
Definition: PxVehicleWheels.h:754
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:261
PxF32 getMinLongSlipDenominator() const
Definition: PxVehicleWheels.h:600
Data structure with instanced dynamics data for wheels.
Definition: PxVehicleWheels.h:622
virtual ~PxVehicleWheels()
Definition: PxVehicleWheels.h:920
PxU32 mLowForwardSpeedSubStepCount
Number of sub-steps that will be performed if the longitudinal speed of the vehicle is smaller than m...
Definition: PxVehicleWheels.h:550
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:839
PxU32 getLowForwardSpeedSubStepCount() const
Definition: PxVehicleWheels.h:604
void setThresholdLongSpeed(const PxF32 f)
Definition: PxVehicleWheels.h:601
virtual bool isKindOf(const char *name) const
Returns whether a given type name matches with the type of this instance.
Definition: PxVehicleWheels.h:911
PxVehicleWheels4SimData * mWheels4SimData
Wheels data organised in blocks of 4 wheels.
Definition: PxVehicleWheels.h:506
PX_FORCE_INLINE const PxRigidDynamic * getRigidDynamicActor() const
Get const ptr to PxRigidDynamic instance that is the vehicle&#39;s physx representation.
Definition: PxVehicleWheels.h:817
PxU32 getNbWheelData() const
Definition: PxVehicleWheels.h:592
PxU16 PxType
Definition: PxBase.h:49
virtual const char * getConcreteTypeName() const
Returns string name of dynamic type.
Definition: PxVehicleWheels.h:910
PxVehicleWheels4DynData * mWheels4DynData
Dynamics data arranged in blocks of 4 wheels.
Definition: PxVehicleWheels.h:714
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:116
PxU32 mHighForwardSpeedSubStepCount
Number of sub-steps that will be performed if the longitudinal speed of the vehicle is greater than o...
Definition: PxVehicleWheels.h:556
void setLowForwardSpeedSubStepCount(const PxU32 f)
Definition: PxVehicleWheels.h:603
PxVehicleWheelsSimData()
Definition: PxVehicleWheels.h:613
PxU32 getNbWheels4() const
Definition: PxVehicleWheels.h:590
Data structure describing configuration data of a vehicle with up to 20 wheels.
Definition: PxVehicleWheels.h:123
PX_FORCE_INLINE PxRigidDynamic * getRigidDynamicActor()
Get non-const ptr to PxRigidDynamic instance that is the vehicle&#39;s physx representation.
Definition: PxVehicleWheels.h:812
PxU32 mNbActiveWheels
Number of actual wheels (<=(mNbWheels4*4))
Definition: PxVehicleWheels.h:516
virtual void release()
Releases the PxBase instance, please check documentation of release in derived class.
Definition: PxVehicleWheels.h:921
PxVehicleWheels4DynData * getWheel4DynData() const
Definition: PxVehicleWheels.h:756
PxU32 mNbActiveAntiRollBars
Number of active anti-roll bars.
Definition: PxVehicleWheels.h:531
PxU32 getNbWheelCentreOffset() const
Definition: PxVehicleWheels.h:597
PxU32 getNbWheels() const
Return the number of wheels.
Definition: PxVehicleWheels.h:184
PxU16 flags
a set of Px1DConstraintFlags
Definition: PxConstraintDesc.h:110
PxVehicleWheelsSimData(const PxEMPTY)
Definition: PxVehicleWheels.h:588
uint8_t PxU8
Definition: PxSimpleTypes.h:75
PxVehicleAntiRollBarData * mAntiRollBars
Anti-roll bars.
Definition: PxVehicleWheels.h:521
A plugin class for implementing constraints.
Definition: PxConstraint.h:108
PxU32 mNbWheels4
Number of blocks of 4 wheels.
Definition: PxVehicleWheels.h:511
PxVehicleTireForceCalculator * mTireForceCalculators
Shader data and function for tire force calculations.
Definition: PxVehicleWheels.h:724
bool getWheelEnabledState(const PxU32 wheel) const
Definition: PxVehicleWheels.h:608
PxU32 getNbSuspensionData() const
Definition: PxVehicleWheels.h:591
Definition: PxVehicleComponents.h:1138
virtual void preExportDataReset()
Definition: PxVehicleWheels.h:912
PxU32 getNbTireData() const
Definition: PxVehicleWheels.h:594
#define PX_COMPILE_TIME_ASSERT(exp)
Definition: PxPreprocessor.h:434
PxVehicleWheels(PxBaseFlags baseFlags)
Definition: PxVehicleWheels.h:919
void setWheelEnabledState(const PxU32 wheel, const bool state)
Definition: PxVehicleWheels.h:607
PxU32 mNbActiveWheels
Number of wheels (mNbActiveWheels <= (mNbWheels4*4))
Definition: PxVehicleWheels.h:740
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:544
int32_t PxI32
Definition: PxSimpleTypes.h:70
PxU8 mOnConstraintReleaseCounter
Definition: PxVehicleWheels.h:892
PxVehicleWheelsDynData()
Definition: PxVehicleWheels.h:637
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:243
PxU32 getNbAntiRollBarData() const
Definition: PxVehicleWheels.h:611
PxVehicleWheelsSimData mWheelsSimData
Data describing the setup of all the wheels/suspensions/tires.
Definition: PxVehicleWheels.h:834
Data structure with instanced dynamics data and configuration data of a vehicle with just wheels...
Definition: PxVehicleWheels.h:790
PxEMPTY
Definition: Px.h:70
PxU32 getNbWheelEnabledState() const
Definition: PxVehicleWheels.h:609
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:605
PxU32 mNbAntiRollBars4
2 anti-rollbars allocated for each block of 4 wheels.
Definition: PxVehicleWheels.h:526
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:606
uint32_t PxU32
Definition: Px.h:48
PxRigidDynamic * mActor
The rigid body actor that represents the vehicle in the PhysX SDK.
Definition: PxVehicleWheels.h:882
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:735
PxU32 getNbSuspForceAppPointOffset() const
Definition: PxVehicleWheels.h:595
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:596
Callback class used to process PxBase objects.
Definition: PxSerialFramework.h:81
PxU32 getNbSceneQueryFilterData() const
Definition: PxVehicleWheels.h:599
PxVehicleTireLoadFilterData mNormalisedLoadFilter
Graph to filter normalised load.
Definition: PxVehicleWheels.h:501
3 Element vector class.
Definition: PxVec3.h:49
Definition: Px.h:72