Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
WheelSettingsWV Class Reference

WheelSettings object specifically for WheeledVehicleController. More...

#include <WheeledVehicleController.h>

Inheritance diagram for WheelSettingsWV:
WheelSettings SerializableObject RefTarget< WheelSettings > NonCopyable

Public Member Functions

 WheelSettingsWV ()
 Constructor.
 
virtual void SaveBinaryState (StreamOut &inStream) const override
 Saves the contents in binary form to inStream.
 
virtual void RestoreBinaryState (StreamIn &inStream) override
 Restores the contents in binary form to inStream.
 
- Public Member Functions inherited from SerializableObject
virtual ~SerializableObject ()=default
 Constructor.
 
- Public Member Functions inherited from NonCopyable
 NonCopyable ()=default
 
 NonCopyable (const NonCopyable &)=delete
 
void operator= (const NonCopyable &)=delete
 
- Public Member Functions inherited from RefTarget< WheelSettings >
 RefTarget ()=default
 Constructor.
 
 RefTarget (const RefTarget &)
 
 ~RefTarget ()
 assert no one is referencing us
 
void SetEmbedded () const
 
RefTargetoperator= (const RefTarget &)
 Assignment operator.
 
uint32 GetRefCount () const
 Get current refcount of this object.
 
void AddRef () const
 Add or release a reference to this object.
 
void Release () const
 

Public Attributes

float mInertia = 0.9f
 Moment of inertia (kg m^2), for a cylinder this would be 0.5 * M * R^2 which is 0.9 for a wheel with a mass of 20 kg and radius 0.3 m.
 
float mAngularDamping = 0.2f
 Angular damping factor of the wheel: dw/dt = -c * w.
 
float mMaxSteerAngle = DegreesToRadians(70.0f)
 How much this wheel can steer (radians)
 
LinearCurve mLongitudinalFriction
 On the Y-axis: friction in the forward direction of the tire. Friction is normally between 0 (no friction) and 1 (full friction) although friction can be a little bit higher than 1 because of the profile of a tire. On the X-axis: the slip ratio (fraction) defined as (omega_wheel * r_wheel - v_longitudinal) / |v_longitudinal|. You can see slip ratio as the amount the wheel is spinning relative to the floor: 0 means the wheel has full traction and is rolling perfectly in sync with the ground, 1 is for example when the wheel is locked and sliding over the ground.
 
LinearCurve mLateralFriction
 On the Y-axis: friction in the sideways direction of the tire. Friction is normally between 0 (no friction) and 1 (full friction) although friction can be a little bit higher than 1 because of the profile of a tire. On the X-axis: the slip angle (degrees) defined as angle between relative contact velocity and tire direction.
 
float mMaxBrakeTorque = 1500.0f
 How much torque (Nm) the brakes can apply to this wheel.
 
float mMaxHandBrakeTorque = 4000.0f
 How much torque (Nm) the hand brake can apply to this wheel (usually only applied to the rear wheels)
 
- Public Attributes inherited from WheelSettings
Vec3 mPosition { 0, 0, 0 }
 Attachment point of wheel suspension in local space of the body.
 
Vec3 mSuspensionForcePoint { 0, 0, 0 }
 Where tire forces (suspension and traction) are applied, in local space of the body. A good default is the center of the wheel in its neutral pose. See mEnableSuspensionForcePoint.
 
Vec3 mSuspensionDirection { 0, -1, 0 }
 Direction of the suspension in local space of the body, should point down.
 
Vec3 mSteeringAxis { 0, 1, 0 }
 Direction of the steering axis in local space of the body, should point up (e.g. for a bike would be -mSuspensionDirection)
 
Vec3 mWheelUp { 0, 1, 0 }
 Up direction when the wheel is in the neutral steering position (usually VehicleConstraintSettings::mUp but can be used to give the wheel camber or for a bike would be -mSuspensionDirection)
 
Vec3 mWheelForward { 0, 0, 1 }
 Forward direction when the wheel is in the neutral steering position (usually VehicleConstraintSettings::mForward but can be used to give the wheel toe, does not need to be perpendicular to mWheelUp)
 
float mSuspensionMinLength = 0.3f
 How long the suspension is in max raised position relative to the attachment point (m)
 
float mSuspensionMaxLength = 0.5f
 How long the suspension is in max droop position relative to the attachment point (m)
 
float mSuspensionPreloadLength = 0.0f
 The natural length (m) of the suspension spring is defined as mSuspensionMaxLength + mSuspensionPreloadLength. Can be used to preload the suspension as the spring is compressed by mSuspensionPreloadLength when the suspension is in max droop position. Note that this means when the vehicle touches the ground there is a discontinuity so it will also make the vehicle more bouncy as we're updating with discrete time steps.
 
SpringSettings mSuspensionSpring { ESpringMode::FrequencyAndDamping, 1.5f, 0.5f }
 Settings for the suspension spring.
 
float mRadius = 0.3f
 Radius of the wheel (m)
 
float mWidth = 0.1f
 Width of the wheel (m)
 
bool mEnableSuspensionForcePoint = false
 Enables mSuspensionForcePoint, if disabled, the forces are applied at the collision contact point. This leads to a more accurate simulation when interacting with dynamic objects but makes the vehicle less stable. When setting this to true, all forces will be applied to a fixed point on the vehicle body.
 

Additional Inherited Members

- Static Public Member Functions inherited from RefTarget< WheelSettings >
static int sInternalGetRefCountOffset ()
 INTERNAL HELPER FUNCTION USED BY SERIALIZATION.
 
- Protected Attributes inherited from RefTarget< WheelSettings >
atomic< uint32mRefCount
 Current reference count.
 
- Static Protected Attributes inherited from RefTarget< WheelSettings >
static constexpr uint32 cEmbedded
 A large value that gets added to the refcount to mark the object as embedded.
 

Detailed Description

WheelSettings object specifically for WheeledVehicleController.

Constructor & Destructor Documentation

◆ WheelSettingsWV()

WheelSettingsWV::WheelSettingsWV ( )

Constructor.

Member Function Documentation

◆ RestoreBinaryState()

void WheelSettingsWV::RestoreBinaryState ( StreamIn inStream)
overridevirtual

Restores the contents in binary form to inStream.

Reimplemented from WheelSettings.

◆ SaveBinaryState()

void WheelSettingsWV::SaveBinaryState ( StreamOut inStream) const
overridevirtual

Saves the contents in binary form to inStream.

Reimplemented from WheelSettings.

Member Data Documentation

◆ mAngularDamping

float WheelSettingsWV::mAngularDamping = 0.2f

Angular damping factor of the wheel: dw/dt = -c * w.

◆ mInertia

float WheelSettingsWV::mInertia = 0.9f

Moment of inertia (kg m^2), for a cylinder this would be 0.5 * M * R^2 which is 0.9 for a wheel with a mass of 20 kg and radius 0.3 m.

◆ mLateralFriction

LinearCurve WheelSettingsWV::mLateralFriction

On the Y-axis: friction in the sideways direction of the tire. Friction is normally between 0 (no friction) and 1 (full friction) although friction can be a little bit higher than 1 because of the profile of a tire. On the X-axis: the slip angle (degrees) defined as angle between relative contact velocity and tire direction.

◆ mLongitudinalFriction

LinearCurve WheelSettingsWV::mLongitudinalFriction

On the Y-axis: friction in the forward direction of the tire. Friction is normally between 0 (no friction) and 1 (full friction) although friction can be a little bit higher than 1 because of the profile of a tire. On the X-axis: the slip ratio (fraction) defined as (omega_wheel * r_wheel - v_longitudinal) / |v_longitudinal|. You can see slip ratio as the amount the wheel is spinning relative to the floor: 0 means the wheel has full traction and is rolling perfectly in sync with the ground, 1 is for example when the wheel is locked and sliding over the ground.

◆ mMaxBrakeTorque

float WheelSettingsWV::mMaxBrakeTorque = 1500.0f

How much torque (Nm) the brakes can apply to this wheel.

◆ mMaxHandBrakeTorque

float WheelSettingsWV::mMaxHandBrakeTorque = 4000.0f

How much torque (Nm) the hand brake can apply to this wheel (usually only applied to the rear wheels)

◆ mMaxSteerAngle

float WheelSettingsWV::mMaxSteerAngle = DegreesToRadians(70.0f)

How much this wheel can steer (radians)


The documentation for this class was generated from the following files: