Jolt Physics
A multi core friendly Game Physics Engine
|
WheelSettings object specifically for WheeledVehicleController. More...
#include <WheeledVehicleController.h>
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 |
RefTarget & | operator= (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< uint32 > | mRefCount |
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. | |
WheelSettings object specifically for WheeledVehicleController.
WheelSettingsWV::WheelSettingsWV | ( | ) |
Constructor.
|
overridevirtual |
Restores the contents in binary form to inStream.
Reimplemented from WheelSettings.
|
overridevirtual |
Saves the contents in binary form to inStream.
Reimplemented from WheelSettings.
float WheelSettingsWV::mAngularDamping = 0.2f |
Angular damping factor of the wheel: dw/dt = -c * w.
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.
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.
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.
float WheelSettingsWV::mMaxBrakeTorque = 1500.0f |
How much torque (Nm) the brakes can apply to this wheel.
float WheelSettingsWV::mMaxHandBrakeTorque = 4000.0f |
How much torque (Nm) the hand brake can apply to this wheel (usually only applied to the rear wheels)
float WheelSettingsWV::mMaxSteerAngle = DegreesToRadians(70.0f) |
How much this wheel can steer (radians)