Jolt Physics
A multi core friendly Game Physics Engine
|
#include <MotorcycleController.h>
Public Member Functions | |
virtual VehicleController * | ConstructController (VehicleConstraint &inConstraint) const override |
Create an instance of the vehicle controller class. | |
virtual void | SaveBinaryState (StreamOut &inStream) const override |
Saves the contents of the controller settings in binary form to inStream. | |
virtual void | RestoreBinaryState (StreamIn &inStream) override |
Restore the contents of the controller settings in binary form from 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< VehicleControllerSettings > | |
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 | mMaxLeanAngle = DegreesToRadians(45.0f) |
How far we're willing to make the bike lean over in turns (in radians) | |
float | mLeanSpringConstant = 5000.0f |
Spring constant for the lean spring. | |
float | mLeanSpringDamping = 1000.0f |
Spring damping constant for the lean spring. | |
float | mLeanSpringIntegrationCoefficient = 0.0f |
The lean spring applies an additional force equal to this coefficient * Integral(delta angle, 0, t), this effectively makes the lean spring a PID controller. | |
float | mLeanSpringIntegrationCoefficientDecay = 4.0f |
How much to decay the angle integral when the wheels are not touching the floor: new_value = e^(-decay * t) * initial_value. | |
float | mLeanSmoothingFactor = 0.8f |
Public Attributes inherited from WheeledVehicleControllerSettings | |
VehicleEngineSettings | mEngine |
The properties of the engine. | |
VehicleTransmissionSettings | mTransmission |
The properties of the transmission (aka gear box) | |
Array< VehicleDifferentialSettings > | mDifferentials |
List of differentials and their properties. | |
float | mDifferentialLimitedSlipRatio = 1.4f |
Ratio max / min average wheel speed of each differential (measured at the clutch). When the ratio is exceeded all torque gets distributed to the differential with the minimal average velocity. This allows implementing a limited slip differential between differentials. Set to FLT_MAX for an open differential. Value should be > 1. | |
Additional Inherited Members | |
Static Public Member Functions inherited from RefTarget< VehicleControllerSettings > | |
static int | sInternalGetRefCountOffset () |
INTERNAL HELPER FUNCTION USED BY SERIALIZATION. | |
Protected Attributes inherited from RefTarget< VehicleControllerSettings > | |
atomic< uint32 > | mRefCount |
Current reference count. | |
Static Protected Attributes inherited from RefTarget< VehicleControllerSettings > | |
static constexpr uint32 | cEmbedded |
A large value that gets added to the refcount to mark the object as embedded. | |
Settings of a two wheeled motorcycle (adds a spring to balance the motorcycle) Note: The motor cycle controller is still in development and may need a lot of tweaks/hacks to work properly!
|
overridevirtual |
Create an instance of the vehicle controller class.
Reimplemented from WheeledVehicleControllerSettings.
|
overridevirtual |
Restore the contents of the controller settings in binary form from inStream.
Reimplemented from WheeledVehicleControllerSettings.
|
overridevirtual |
Saves the contents of the controller settings in binary form to inStream.
Reimplemented from WheeledVehicleControllerSettings.
float MotorcycleControllerSettings::mLeanSmoothingFactor = 0.8f |
How much to smooth the lean angle (0 = no smoothing, 1 = lean angle never changes) Note that this is frame rate dependent because the formula is: smoothing_factor * previous + (1 - smoothing_factor) * current
float MotorcycleControllerSettings::mLeanSpringConstant = 5000.0f |
Spring constant for the lean spring.
float MotorcycleControllerSettings::mLeanSpringDamping = 1000.0f |
Spring damping constant for the lean spring.
float MotorcycleControllerSettings::mLeanSpringIntegrationCoefficient = 0.0f |
The lean spring applies an additional force equal to this coefficient * Integral(delta angle, 0, t), this effectively makes the lean spring a PID controller.
float MotorcycleControllerSettings::mLeanSpringIntegrationCoefficientDecay = 4.0f |
How much to decay the angle integral when the wheels are not touching the floor: new_value = e^(-decay * t) * initial_value.
float MotorcycleControllerSettings::mMaxLeanAngle = DegreesToRadians(45.0f) |
How far we're willing to make the bike lean over in turns (in radians)