![]() |
Jolt Physics
A multi core friendly Game Physics Engine
|
Wheel object specifically for WheeledVehicleController. More...
#include <WheeledVehicleController.h>
Public Member Functions | |
| JPH_OVERRIDE_NEW_DELETE | WheelWV (const WheelSettingsWV &inWheel) |
| Constructor. More... | |
| const WheelSettingsWV * | GetSettings () const |
| Override GetSettings and cast to the correct class. More... | |
| void | ApplyTorque (float inTorque, float inDeltaTime) |
| Apply a torque (N m) to the wheel for a particular delta time. More... | |
| void | Update (uint inWheelIndex, float inDeltaTime, const VehicleConstraint &inConstraint) |
| Update the wheel rotation based on the current angular velocity. More... | |
Public Member Functions inherited from Wheel | |
| JPH_OVERRIDE_NEW_DELETE | Wheel (const WheelSettings &inSettings) |
| Constructor / destructor. More... | |
| virtual | ~Wheel ()=default |
| const WheelSettings * | GetSettings () const |
| Get settings for the wheel. More... | |
| float | GetAngularVelocity () const |
| Get the angular velocity (rad/s) for this wheel, note that positive means the wheel is rotating such that the car moves forward. More... | |
| void | SetAngularVelocity (float inVel) |
| Update the angular velocity (rad/s) More... | |
| float | GetRotationAngle () const |
| Get the current rotation angle of the wheel in radians [0, 2 pi]. More... | |
| void | SetRotationAngle (float inAngle) |
| Set the current rotation angle of the wheel in radians [0, 2 pi]. More... | |
| float | GetSteerAngle () const |
| Get the current steer angle of the wheel in radians [-pi, pi], positive is to the left. More... | |
| void | SetSteerAngle (float inAngle) |
| Set the current steer angle of the wheel in radians [-pi, pi]. More... | |
| bool | HasContact () const |
| Returns true if the wheel is touching an object. More... | |
| BodyID | GetContactBodyID () const |
| Returns the body ID of the body that this wheel is touching. More... | |
| SubShapeID | GetContactSubShapeID () const |
| Returns the sub shape ID where we're contacting the body. More... | |
| RVec3 | GetContactPosition () const |
| Returns the current contact position in world space (note by the time you call this the vehicle has moved) More... | |
| Vec3 | GetContactPointVelocity () const |
| Velocity of the contact point (m / s, not relative to the wheel but in world space) More... | |
| Vec3 | GetContactNormal () const |
| Returns the current contact normal in world space (note by the time you call this the vehicle has moved) More... | |
| Vec3 | GetContactLongitudinal () const |
| Returns longitudinal direction (direction along the wheel relative to floor) in world space (note by the time you call this the vehicle has moved) More... | |
| Vec3 | GetContactLateral () const |
| Returns lateral direction (sideways direction) in world space (note by the time you call this the vehicle has moved) More... | |
| float | GetSuspensionLength () const |
| Get the length of the suspension for a wheel (m) relative to the suspension attachment point (hard point) More... | |
| bool | HasHitHardPoint () const |
| Check if the suspension hit its upper limit. More... | |
| float | GetSuspensionLambda () const |
| Get the total impulse (N s) that was applied by the suspension. More... | |
| float | GetLongitudinalLambda () const |
| Get total impulse (N s) applied along the forward direction of the wheel. More... | |
| float | GetLateralLambda () const |
| Get total impulse (N s) applied along the sideways direction of the wheel. More... | |
| bool | SolveLongitudinalConstraintPart (const VehicleConstraint &inConstraint, float inMinImpulse, float inMaxImpulse) |
| Internal function that should only be called by the controller. Used to apply impulses in the forward direction of the vehicle. More... | |
| bool | SolveLateralConstraintPart (const VehicleConstraint &inConstraint, float inMinImpulse, float inMaxImpulse) |
| Internal function that should only be called by the controller. Used to apply impulses in the sideways direction of the vehicle. More... | |
Public Member Functions inherited from NonCopyable | |
| NonCopyable ()=default | |
| NonCopyable (const NonCopyable &)=delete | |
| void | operator= (const NonCopyable &)=delete |
Public Attributes | |
| float | mLongitudinalSlip = 0.0f |
| Velocity difference between ground and wheel relative to ground velocity. More... | |
| float | mLateralSlip = 0.0f |
| Angular difference (in radians) between ground and wheel relative to ground velocity. More... | |
| float | mCombinedLongitudinalFriction = 0.0f |
| Combined friction coefficient in longitudinal direction (combines terrain and tires) More... | |
| float | mCombinedLateralFriction = 0.0f |
| Combined friction coefficient in lateral direction (combines terrain and tires) More... | |
| float | mBrakeImpulse = 0.0f |
| Amount of impulse that the brakes can apply to the floor (excluding friction) More... | |
Additional Inherited Members | |
Protected Attributes inherited from Wheel | |
| RefConst< WheelSettings > | mSettings |
| Configuration settings for this wheel. More... | |
| BodyID | mContactBodyID |
| ID of body for ground. More... | |
| SubShapeID | mContactSubShapeID |
| Sub shape ID for ground. More... | |
| Body * | mContactBody = nullptr |
| Body for ground. More... | |
| float | mSuspensionLength |
| Current length of the suspension. More... | |
| RVec3 | mContactPosition |
| Position of the contact point between wheel and ground. More... | |
| Vec3 | mContactPointVelocity |
| Velocity of the contact point (m / s, not relative to the wheel but in world space) More... | |
| Vec3 | mContactNormal |
| Normal of the contact point between wheel and ground. More... | |
| Vec3 | mContactLongitudinal |
| Vector perpendicular to normal in the forward direction. More... | |
| Vec3 | mContactLateral |
| Vector perpendicular to normal and longitudinal direction in the right direction. More... | |
| Real | mAxlePlaneConstant |
| Constant for the contact plane of the axle, defined as ContactNormal . (WorldSpaceSuspensionPoint + SuspensionLength * WorldSpaceSuspensionDirection) More... | |
| float | mAntiRollBarImpulse = 0.0f |
| Amount of impulse applied to the suspension from the anti-rollbars. More... | |
| float | mSteerAngle = 0.0f |
| Rotation around the suspension direction, positive is to the left. More... | |
| float | mAngularVelocity = 0.0f |
| Rotation speed of wheel, positive when the wheels cause the vehicle to move forwards (rad/s) More... | |
| float | mAngle = 0.0f |
| Current rotation of the wheel (rad, [0, 2 pi]) More... | |
| AxisConstraintPart | mSuspensionPart |
| Controls movement up/down along the contact normal. More... | |
| AxisConstraintPart | mSuspensionMaxUpPart |
| Adds a hard limit when reaching the minimal suspension length. More... | |
| AxisConstraintPart | mLongitudinalPart |
| Controls movement forward/backward. More... | |
| AxisConstraintPart | mLateralPart |
| Controls movement sideways (slip) More... | |
Wheel object specifically for WheeledVehicleController.
|
explicit |
Constructor.
|
inline |
Apply a torque (N m) to the wheel for a particular delta time.
|
inline |
Override GetSettings and cast to the correct class.
| void WheelWV::Update | ( | uint | inWheelIndex, |
| float | inDeltaTime, | ||
| const VehicleConstraint & | inConstraint | ||
| ) |
Update the wheel rotation based on the current angular velocity.
| float WheelWV::mBrakeImpulse = 0.0f |
Amount of impulse that the brakes can apply to the floor (excluding friction)
| float WheelWV::mCombinedLateralFriction = 0.0f |
Combined friction coefficient in lateral direction (combines terrain and tires)
| float WheelWV::mCombinedLongitudinalFriction = 0.0f |
Combined friction coefficient in longitudinal direction (combines terrain and tires)
| float WheelWV::mLateralSlip = 0.0f |
Angular difference (in radians) between ground and wheel relative to ground velocity.
| float WheelWV::mLongitudinalSlip = 0.0f |
Velocity difference between ground and wheel relative to ground velocity.