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-2019 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  };
77 };
78 
85 PX_FLAGS_OPERATORS(PxVehicleWheelsSimFlag::Enum, PxU32)
86 
87 
92 {
93 //= ATTENTION! =====================================================================================
94 // Changing the data layout of this class breaks the binary serialization format. See comments for
95 // PX_BINARY_SERIAL_VERSION. If a modification is required, please adjust the getBinaryMetaData
96 // function. If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
97 // accordingly.
98 //==================================================================================================
99 public:
100 
101  friend class PxVehicleWheels;
102  friend class PxVehicleNoDrive;
103  friend class PxVehicleDrive4W;
104  friend class PxVehicleDriveTank;
105  friend class PxVehicleUpdate;
106 
111  static PxVehicleWheelsSimData* allocate(const PxU32 nbWheels);
112 
126  void setChassisMass(const PxF32 chassisMass);
127 
132  void free();
133 
138  PxVehicleWheelsSimData& operator=(const PxVehicleWheelsSimData& src);
139 
146  void copy(const PxVehicleWheelsSimData& src, const PxU32 srcWheel, const PxU32 trgWheel);
147 
152  PxU32 getNbWheels() const {return mNbActiveWheels;}
153 
157  const PxVehicleSuspensionData& getSuspensionData(const PxU32 id) const;
158 
162  const PxVehicleWheelData& getWheelData(const PxU32 id) const;
163 
167  const PxVehicleTireData& getTireData(const PxU32 id) const;
168 
172  const PxVec3& getSuspTravelDirection(const PxU32 id) const;
173 
178  const PxVec3& getSuspForceAppPointOffset(const PxU32 id) const;
179 
184  const PxVec3& getTireForceAppPointOffset(const PxU32 id) const;
185 
189  const PxVec3& getWheelCentreOffset(const PxU32 id) const;
190 
200  PxI32 getWheelShapeMapping(const PxU32 wheelId) const;
201 
205  const PxFilterData& getSceneQueryFilterData(const PxU32 suspId) const;
206 
212  {
213  return mNbActiveAntiRollBars;
214  }
215 
224  const PxVehicleAntiRollBarData& getAntiRollBarData(const PxU32 antiRollId) const;
225 
230  {
231  return mNormalisedLoadFilter;
232  }
233 
239  void setSuspensionData(const PxU32 id, const PxVehicleSuspensionData& susp);
240 
246  void setWheelData(const PxU32 id, const PxVehicleWheelData& wheel);
247 
253  void setTireData(const PxU32 id, const PxVehicleTireData& tire);
254 
260  void setSuspTravelDirection(const PxU32 id, const PxVec3& dir);
261 
268  void setSuspForceAppPointOffset(const PxU32 id, const PxVec3& offset);
269 
276  void setTireForceAppPointOffset(const PxU32 id, const PxVec3& offset);
277 
284  void setWheelCentreOffset(const PxU32 id, const PxVec3& offset);
285 
306  void setWheelShapeMapping(const PxU32 wheelId, const PxI32 shapeId);
307 
315  void setSceneQueryFilterData(const PxU32 suspId, const PxFilterData& sqFilterData);
316 
321  void setTireLoadFilterData(const PxVehicleTireLoadFilterData& tireLoadFilter);
322 
347  PxU32 addAntiRollBarData(const PxVehicleAntiRollBarData& antiRoll);
348 
377  void disableWheel(const PxU32 wheel);
378 
385  void enableWheel(const PxU32 wheel);
386 
391  bool getIsWheelDisabled(const PxU32 wheel) const;
392 
423  void setSubStepCount(const PxReal thresholdLongitudinalSpeed, const PxU32 lowForwardSpeedSubStepCount, const PxU32 highForwardSpeedSubStepCount);
424 
441  void setMinLongSlipDenominator(const PxReal minLongSlipDenominator);
442 
452  void setFlags(PxVehicleWheelsSimFlags flags);
453 
461  PxVehicleWheelsSimFlags getFlags() const;
462 
463 private:
464 
470 
474  PxVehicleWheels4SimData* mWheels4SimData;
475 
480 
485 
490 
495 
500 
505  PxU32 mActiveWheelsBitmapBuffer[((PX_MAX_NB_WHEELS + 31) & ~31) >> 5];
506 
513 
519 
525 
530 
537 
538 #if PX_P64_FAMILY
539  PxU32 mPad[1];
540 #endif
541 
545  bool isValid() const;
546 
550  static PxU32 computeByteSize(const PxU32 numWheels);
551  static PxU8* patchUpPointers(const PxU32 numWheels, PxVehicleWheelsSimData* simData, PxU8* ptrIn);
552  PxVehicleWheelsSimData(const PxU32 numWheels);
553 
554 //serialization
555 public:
556  PxVehicleWheelsSimData(const PxEMPTY) : mNormalisedLoadFilter(PxEmpty) {}
557  static void getBinaryMetaData(PxOutputStream& stream);
558  PxU32 getNbWheels4() const { return mNbWheels4; }
559  PxU32 getNbSuspensionData() const { return mNbActiveWheels; }
560  PxU32 getNbWheelData() const { return mNbActiveWheels; }
561  PxU32 getNbSuspTravelDirection() const { return mNbActiveWheels; }
562  PxU32 getNbTireData() const { return mNbActiveWheels; }
563  PxU32 getNbSuspForceAppPointOffset() const { return mNbActiveWheels; }
564  PxU32 getNbTireForceAppPointOffset() const { return mNbActiveWheels; }
565  PxU32 getNbWheelCentreOffset() const { return mNbActiveWheels; }
566  PxU32 getNbWheelShapeMapping() const { return mNbActiveWheels; }
567  PxU32 getNbSceneQueryFilterData() const { return mNbActiveWheels; }
568  PxF32 getMinLongSlipDenominator() const {return mMinLongSlipDenominator;}
569  void setThresholdLongSpeed(const PxF32 f) {mThresholdLongitudinalSpeed = f;}
570  PxF32 getThresholdLongSpeed() const {return mThresholdLongitudinalSpeed;}
571  void setLowForwardSpeedSubStepCount(const PxU32 f) {mLowForwardSpeedSubStepCount = f;}
572  PxU32 getLowForwardSpeedSubStepCount() const {return mLowForwardSpeedSubStepCount;}
573  void setHighForwardSpeedSubStepCount(const PxU32 f) {mHighForwardSpeedSubStepCount = f;}
574  PxU32 getHighForwardSpeedSubStepCount() const {return mHighForwardSpeedSubStepCount;}
575  void setWheelEnabledState(const PxU32 wheel, const bool state) {if(state) {enableWheel(wheel);} else {disableWheel(wheel);}}
576  bool getWheelEnabledState(const PxU32 wheel) const {return !getIsWheelDisabled(wheel);}
577  PxU32 getNbWheelEnabledState() const {return mNbActiveWheels;}
578  PxU32 getNbAntiRollBars4() const { return mNbAntiRollBars4; }
579  PxU32 getNbAntiRollBarData() const {return mNbActiveAntiRollBars;}
580  void setAntiRollBarData(const PxU32 id, const PxVehicleAntiRollBarData& antiRoll);
583 //~serialization
584 };
586 
591 {
592 //= ATTENTION! =====================================================================================
593 // Changing the data layout of this class breaks the binary serialization format. See comments for
594 // PX_BINARY_SERIAL_VERSION. If a modification is required, please adjust the getBinaryMetaData
595 // function. If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
596 // accordingly.
597 //==================================================================================================
598 public:
599 
600  friend class PxVehicleWheels;
601  friend class PxVehicleDrive4W;
602  friend class PxVehicleDriveTank;
603  friend class PxVehicleUpdate;
604 
607 
612  void setToRestState();
613 
618  void setTireForceShaderFunction(PxVehicleComputeTireForce tireForceShaderFn);
619 
625  void setTireForceShaderData(const PxU32 tireId, const void* tireForceShaderData);
626 
630  const void* getTireForceShaderData(const PxU32 tireId) const;
631 
637  void setWheelRotationSpeed(const PxU32 wheelIdx, const PxReal speed);
638 
642  PxReal getWheelRotationSpeed(const PxU32 wheelIdx) const;
643 
649  void setWheelRotationAngle(const PxU32 wheelIdx, const PxReal angle);
650 
654  PxReal getWheelRotationAngle(const PxU32 wheelIdx) const;
655 
662  void setUserData(const PxU32 tireIdx, void* userData);
663 
667  void* getUserData(const PxU32 tireIdx) const;
668 
675  void copy(const PxVehicleWheelsDynData& src, const PxU32 srcWheel, const PxU32 trgWheel);
676 
677 private:
678 
682  PxVehicleWheels4DynData* mWheels4DynData;
683 
687  bool isValid() const;
688 
692  PxVehicleTireForceCalculator* mTireForceCalculators;
693 
698  void** mUserDatas;
699 
704 
709 
710  PxU32 mPad[3];
711 
715  static PxU32 computeByteSize(const PxU32 numWheels);
716  static PxU8* patchUpPointers(const PxU32 numWheels, PxVehicleWheelsDynData* dynData, PxU8* ptr);
717  PxVehicleWheelsDynData(const PxU32 numWheels);
718 
719 //serialization
720 public:
721  static void getBinaryMetaData(PxOutputStream& stream);
722  PxU32 getNbWheelRotationSpeed() const { return mNbActiveWheels; }
723  PxU32 getNbWheelRotationAngle() const { return mNbActiveWheels; }
724  PxVehicleWheels4DynData* getWheel4DynData() const { return mWheels4DynData; }
725 //~serialization
726 };
728 
733 class PxVehicleWheels : public PxBase
734 {
735 //= ATTENTION! =====================================================================================
736 // Changing the data layout of this class breaks the binary serialization format. See comments for
737 // PX_BINARY_SERIAL_VERSION. If a modification is required, please adjust the getBinaryMetaData
738 // function. If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
739 // accordingly.
740 //==================================================================================================
741 public:
742 
743  friend class PxVehicleUpdate;
744  friend class PxVehicleConstraintShader;
745 
750  PX_FORCE_INLINE PxU32 getVehicleType() const {return mType;}
751 
756 
760  PX_FORCE_INLINE const PxRigidDynamic* getRigidDynamicActor() const {return mActor;}
761 
766  PxReal computeForwardSpeed() const;
767 
772  PxReal computeSidewaysSpeed() const;
773 
778 
783 
784 protected:
785 
789  void setToRestState();
790 
794  bool isValid() const;
795 
799  static PxU32 computeByteSize(const PxU32 nbWheels);
800  static PxU8* patchupPointers(const PxU32 nbWheels, PxVehicleWheels* vehWheels, PxU8* ptr);
801  virtual void init(const PxU32 numWheels);
802 
807  void free();
808 
809  /*
810  \brief Deferred deletion.
811  */
812  void onConstraintRelease();
813 
817  void setup
818  (PxPhysics* physics, PxRigidDynamic* vehActor,
819  const PxVehicleWheelsSimData& wheelsData,
820  const PxU32 nbDrivenWheels, const PxU32 nbNonDrivenWheels);
821 
826 
827 private:
828 
834 
836 
837 protected:
838 
843 
844 #if PX_P64_FAMILY
845  PxU8 mPad0[14];
846 #else
847  PxU8 mPad0[14];
848 #endif
849 
850 //serialization
851 public:
852  virtual void requiresObjects(PxProcessPxBaseCallback& c);
853  virtual const char* getConcreteTypeName() const { return "PxVehicleWheels"; }
854  virtual bool isKindOf(const char* name) const { return !::strcmp("PxVehicleWheels", name) || PxBase::isKindOf(name); }
855  virtual void preExportDataReset() {}
856  virtual void exportExtraData(PxSerializationContext&);
857  void importExtraData(PxDeserializationContext&);
858  void resolveReferences(PxDeserializationContext&);
859  static void getBinaryMetaData(PxOutputStream& stream);
860  PX_FORCE_INLINE PxU32 getNbNonDrivenWheels() const { return mNbNonDrivenWheels; }
861  PxVehicleWheels(PxType concreteType, PxBaseFlags baseFlags) : PxBase(concreteType, baseFlags) {}
862  PxVehicleWheels(PxBaseFlags baseFlags) : PxBase(baseFlags), mWheelsSimData(PxEmpty) {}
863  virtual ~PxVehicleWheels() {}
864  virtual void release() { free(); }
865 //~serialization
866 };
867 PX_COMPILE_TIME_ASSERT(0==(sizeof(PxVehicleWheels) & 15));
868 
869 #if !PX_DOXYGEN
870 } // namespace physx
871 #endif
872 
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&#39;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&#39;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
Definition: Px.h:72