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-2018 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 
60 {
61 //= ATTENTION! =====================================================================================
62 // Changing the data layout of this class breaks the binary serialization format. See comments for
63 // PX_BINARY_SERIAL_VERSION. If a modification is required, please adjust the getBinaryMetaData
64 // function. If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
65 // accordingly.
66 //==================================================================================================
67 public:
68 
69  friend class PxVehicleWheels;
70  friend class PxVehicleNoDrive;
71  friend class PxVehicleDrive4W;
72  friend class PxVehicleDriveTank;
73  friend class PxVehicleUpdate;
74 
79  static PxVehicleWheelsSimData* allocate(const PxU32 nbWheels);
80 
94  void setChassisMass(const PxF32 chassisMass);
95 
100  void free();
101 
106  PxVehicleWheelsSimData& operator=(const PxVehicleWheelsSimData& src);
107 
114  void copy(const PxVehicleWheelsSimData& src, const PxU32 srcWheel, const PxU32 trgWheel);
115 
120  PxU32 getNbWheels() const {return mNbActiveWheels;}
121 
125  const PxVehicleSuspensionData& getSuspensionData(const PxU32 id) const;
126 
130  const PxVehicleWheelData& getWheelData(const PxU32 id) const;
131 
135  const PxVehicleTireData& getTireData(const PxU32 id) const;
136 
140  const PxVec3& getSuspTravelDirection(const PxU32 id) const;
141 
146  const PxVec3& getSuspForceAppPointOffset(const PxU32 id) const;
147 
152  const PxVec3& getTireForceAppPointOffset(const PxU32 id) const;
153 
157  const PxVec3& getWheelCentreOffset(const PxU32 id) const;
158 
168  PxI32 getWheelShapeMapping(const PxU32 wheelId) const;
169 
173  const PxFilterData& getSceneQueryFilterData(const PxU32 suspId) const;
174 
180  {
181  return mNbActiveAntiRollBars;
182  }
183 
192  const PxVehicleAntiRollBarData& getAntiRollBarData(const PxU32 antiRollId) const;
193 
198  {
199  return mNormalisedLoadFilter;
200  }
201 
207  void setSuspensionData(const PxU32 id, const PxVehicleSuspensionData& susp);
208 
214  void setWheelData(const PxU32 id, const PxVehicleWheelData& wheel);
215 
221  void setTireData(const PxU32 id, const PxVehicleTireData& tire);
222 
228  void setSuspTravelDirection(const PxU32 id, const PxVec3& dir);
229 
236  void setSuspForceAppPointOffset(const PxU32 id, const PxVec3& offset);
237 
244  void setTireForceAppPointOffset(const PxU32 id, const PxVec3& offset);
245 
252  void setWheelCentreOffset(const PxU32 id, const PxVec3& offset);
253 
274  void setWheelShapeMapping(const PxU32 wheelId, const PxI32 shapeId);
275 
283  void setSceneQueryFilterData(const PxU32 suspId, const PxFilterData& sqFilterData);
284 
289  void setTireLoadFilterData(const PxVehicleTireLoadFilterData& tireLoadFilter);
290 
315  PxU32 addAntiRollBarData(const PxVehicleAntiRollBarData& antiRoll);
316 
345  void disableWheel(const PxU32 wheel);
346 
353  void enableWheel(const PxU32 wheel);
354 
359  bool getIsWheelDisabled(const PxU32 wheel) const;
360 
391  void setSubStepCount(const PxReal thresholdLongitudinalSpeed, const PxU32 lowForwardSpeedSubStepCount, const PxU32 highForwardSpeedSubStepCount);
392 
409  void setMinLongSlipDenominator(const PxReal minLongSlipDenominator);
410 
411 private:
412 
418 
422  PxVehicleWheels4SimData* mWheels4SimData;
423 
428 
433 
438 
443 
448 
453  PxU32 mActiveWheelsBitmapBuffer[((PX_MAX_NB_WHEELS + 31) & ~31) >> 5];
454 
461 
467 
473 
478 
479 #if PX_P64_FAMILY
480  PxU32 mPad[2];
481 #else
482  PxU32 mPad[1];
483 #endif
484 
488  bool isValid() const;
489 
493  static PxU32 computeByteSize(const PxU32 numWheels);
494  static PxU8* patchUpPointers(const PxU32 numWheels, PxVehicleWheelsSimData* simData, PxU8* ptrIn);
495  PxVehicleWheelsSimData(const PxU32 numWheels);
496 
497 //serialization
498 public:
499  PxVehicleWheelsSimData(const PxEMPTY) : mNormalisedLoadFilter(PxEmpty) {}
500  static void getBinaryMetaData(PxOutputStream& stream);
501  PxU32 getNbWheels4() const { return mNbWheels4; }
502  PxU32 getNbSuspensionData() const { return mNbActiveWheels; }
503  PxU32 getNbWheelData() const { return mNbActiveWheels; }
504  PxU32 getNbSuspTravelDirection() const { return mNbActiveWheels; }
505  PxU32 getNbTireData() const { return mNbActiveWheels; }
506  PxU32 getNbSuspForceAppPointOffset() const { return mNbActiveWheels; }
507  PxU32 getNbTireForceAppPointOffset() const { return mNbActiveWheels; }
508  PxU32 getNbWheelCentreOffset() const { return mNbActiveWheels; }
509  PxU32 getNbWheelShapeMapping() const { return mNbActiveWheels; }
510  PxU32 getNbSceneQueryFilterData() const { return mNbActiveWheels; }
511  PxF32 getMinLongSlipDenominator() const {return mMinLongSlipDenominator;}
512  void setThresholdLongSpeed(const PxF32 f) {mThresholdLongitudinalSpeed = f;}
513  PxF32 getThresholdLongSpeed() const {return mThresholdLongitudinalSpeed;}
514  void setLowForwardSpeedSubStepCount(const PxU32 f) {mLowForwardSpeedSubStepCount = f;}
515  PxU32 getLowForwardSpeedSubStepCount() const {return mLowForwardSpeedSubStepCount;}
516  void setHighForwardSpeedSubStepCount(const PxU32 f) {mHighForwardSpeedSubStepCount = f;}
517  PxU32 getHighForwardSpeedSubStepCount() const {return mHighForwardSpeedSubStepCount;}
518  void setWheelEnabledState(const PxU32 wheel, const bool state) {if(state) {enableWheel(wheel);} else {disableWheel(wheel);}}
519  bool getWheelEnabledState(const PxU32 wheel) const {return !getIsWheelDisabled(wheel);}
520  PxU32 getNbWheelEnabledState() const {return mNbActiveWheels;}
521  PxU32 getNbAntiRollBars4() const { return mNbAntiRollBars4; }
522  PxU32 getNbAntiRollBarData() const {return mNbActiveAntiRollBars;}
523  void setAntiRollBarData(const PxU32 id, const PxVehicleAntiRollBarData& antiRoll);
526 //~serialization
527 };
529 
534 {
535 //= ATTENTION! =====================================================================================
536 // Changing the data layout of this class breaks the binary serialization format. See comments for
537 // PX_BINARY_SERIAL_VERSION. If a modification is required, please adjust the getBinaryMetaData
538 // function. If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
539 // accordingly.
540 //==================================================================================================
541 public:
542 
543  friend class PxVehicleWheels;
544  friend class PxVehicleDrive4W;
545  friend class PxVehicleDriveTank;
546  friend class PxVehicleUpdate;
547 
550 
555  void setToRestState();
556 
561  void setTireForceShaderFunction(PxVehicleComputeTireForce tireForceShaderFn);
562 
568  void setTireForceShaderData(const PxU32 tireId, const void* tireForceShaderData);
569 
573  const void* getTireForceShaderData(const PxU32 tireId) const;
574 
580  void setWheelRotationSpeed(const PxU32 wheelIdx, const PxReal speed);
581 
585  PxReal getWheelRotationSpeed(const PxU32 wheelIdx) const;
586 
592  void setWheelRotationAngle(const PxU32 wheelIdx, const PxReal angle);
593 
597  PxReal getWheelRotationAngle(const PxU32 wheelIdx) const;
598 
605  void setUserData(const PxU32 tireIdx, void* userData);
606 
610  void* getUserData(const PxU32 tireIdx) const;
611 
618  void copy(const PxVehicleWheelsDynData& src, const PxU32 srcWheel, const PxU32 trgWheel);
619 
620 private:
621 
625  PxVehicleWheels4DynData* mWheels4DynData;
626 
630  bool isValid() const;
631 
635  PxVehicleTireForceCalculator* mTireForceCalculators;
636 
641  void** mUserDatas;
642 
647 
652 
653  PxU32 mPad[3];
654 
658  static PxU32 computeByteSize(const PxU32 numWheels);
659  static PxU8* patchUpPointers(const PxU32 numWheels, PxVehicleWheelsDynData* dynData, PxU8* ptr);
660  PxVehicleWheelsDynData(const PxU32 numWheels);
661 
662 //serialization
663 public:
664  static void getBinaryMetaData(PxOutputStream& stream);
665  PxU32 getNbWheelRotationSpeed() const { return mNbActiveWheels; }
666  PxU32 getNbWheelRotationAngle() const { return mNbActiveWheels; }
667  PxVehicleWheels4DynData* getWheel4DynData() const { return mWheels4DynData; }
668 //~serialization
669 };
671 
676 class PxVehicleWheels : public PxBase
677 {
678 //= ATTENTION! =====================================================================================
679 // Changing the data layout of this class breaks the binary serialization format. See comments for
680 // PX_BINARY_SERIAL_VERSION. If a modification is required, please adjust the getBinaryMetaData
681 // function. If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
682 // accordingly.
683 //==================================================================================================
684 public:
685 
686  friend class PxVehicleUpdate;
687  friend class PxVehicleConstraintShader;
688 
693  PX_FORCE_INLINE PxU32 getVehicleType() const {return mType;}
694 
699 
703  PX_FORCE_INLINE const PxRigidDynamic* getRigidDynamicActor() const {return mActor;}
704 
709  PxReal computeForwardSpeed() const;
710 
715  PxReal computeSidewaysSpeed() const;
716 
721 
726 
727 protected:
728 
732  void setToRestState();
733 
737  bool isValid() const;
738 
742  static PxU32 computeByteSize(const PxU32 nbWheels);
743  static PxU8* patchupPointers(const PxU32 nbWheels, PxVehicleWheels* vehWheels, PxU8* ptr);
744  virtual void init(const PxU32 numWheels);
745 
750  void free();
751 
755  void setup
756  (PxPhysics* physics, PxRigidDynamic* vehActor,
757  const PxVehicleWheelsSimData& wheelsData,
758  const PxU32 nbDrivenWheels, const PxU32 nbNonDrivenWheels);
759 
764 
765 private:
766 
772 
774 
775 protected:
776 
781 
782 #if PX_P64_FAMILY
783  PxU8 mPad0[14];
784 #else
785  PxU8 mPad0[14];
786 #endif
787 
788 //serialization
789 public:
790  virtual void requiresObjects(PxProcessPxBaseCallback& c);
791  virtual const char* getConcreteTypeName() const { return "PxVehicleWheels"; }
792  virtual bool isKindOf(const char* name) const { return !::strcmp("PxVehicleWheels", name) || PxBase::isKindOf(name); }
793  virtual void exportExtraData(PxSerializationContext&);
794  void importExtraData(PxDeserializationContext&);
795  void resolveReferences(PxDeserializationContext&);
796  static void getBinaryMetaData(PxOutputStream& stream);
797  PX_FORCE_INLINE PxU32 getNbNonDrivenWheels() const { return mNbNonDrivenWheels; }
798  PxVehicleWheels(PxType concreteType, PxBaseFlags baseFlags) : PxBase(concreteType, baseFlags) {}
799  PxVehicleWheels(PxBaseFlags baseFlags) : PxBase(baseFlags), mWheelsSimData(PxEmpty) {}
800  virtual ~PxVehicleWheels() {}
801  virtual void release() { free(); }
802 //~serialization
803 };
804 PX_COMPILE_TIME_ASSERT(0==(sizeof(PxVehicleWheels) & 15));
805 
806 #if !PX_DOXYGEN
807 } // namespace physx
808 #endif
809 
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
Definition: Px.h:72