Engine²
Open-source game engine written in C++.
Loading...
Searching...
No Matches
WheelSettings.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <vector>
5
6namespace Physics::Component {
7
11enum class WheelIndex : uint8_t {
17};
18
27 float slip;
28 float friction;
29};
30
39 float radius = 0.3f;
40
42 float width = 0.1f;
43
45 float suspensionMaxLength = 0.3f;
46
48 float suspensionMinLength = 0.0f;
49
52 float suspensionFrequency = 1.5f;
53
56 float suspensionDamping = 0.5f;
57
59 float maxSteerAngle = 0.0f;
60
64 float inertia = 0.9f;
65
68 float angularDamping = 0.2f;
69
74 std::vector<FrictionCurvePoint> longitudinalFriction = {
75 {0.0f, 0.0f}, // No friction when no slip
76 {0.06f, 1.2f}, // Peak friction at 6% slip
77 {0.2f, 1.0f} // Reduced friction when sliding
78 };
79
84 std::vector<FrictionCurvePoint> lateralFriction = {
85 {0.0f, 0.0f}, // No friction when aligned
86 {3.0f, 1.2f}, // Peak friction at 3 degrees
87 {20.0f, 1.0f} // Reduced friction at high slip angles
88 };
89
91 float maxBrakeTorque = 1500.0f;
92
94 float maxHandBrakeTorque = 4000.0f;
95
100 {
101 WheelSettings settings;
102 settings.maxSteerAngle = 0.52f; // ~30 degrees
103 return settings;
104 }
105
110 {
111 WheelSettings settings;
112 settings.maxSteerAngle = 0.0f;
113 return settings;
114 }
115};
116
117} // namespace Physics::Component
Definition BoxCollider.hpp:27
WheelIndex
Enum for identifying wheel positions in a 4-wheel vehicle.
Definition WheelSettings.hpp:11
@ FrontRight
Definition WheelSettings.hpp:13
@ FrontLeft
Definition WheelSettings.hpp:12
@ RearRight
Definition WheelSettings.hpp:15
@ RearLeft
Definition WheelSettings.hpp:14
@ Count
Definition WheelSettings.hpp:16
Friction curve point for tire friction modeling.
Definition WheelSettings.hpp:26
float friction
Friction coefficient (0 = no friction, >1 = enhanced grip).
Definition WheelSettings.hpp:28
float slip
Slip ratio (longitudinal) or slip angle in degrees (lateral).
Definition WheelSettings.hpp:27
Settings for an individual wheel in a vehicle.
Definition WheelSettings.hpp:37
float angularDamping
Definition WheelSettings.hpp:68
static WheelSettings CreateRearWheel()
Create default rear wheel settings without steering.
Definition WheelSettings.hpp:109
std::vector< FrictionCurvePoint > lateralFriction
Definition WheelSettings.hpp:84
float radius
Wheel radius in meters.
Definition WheelSettings.hpp:39
float width
Wheel width in meters (for cylinder collider).
Definition WheelSettings.hpp:42
float inertia
Definition WheelSettings.hpp:64
float maxHandBrakeTorque
Maximum handbrake torque (Nm) - usually only applied to rear wheels.
Definition WheelSettings.hpp:94
float maxSteerAngle
Maximum steering angle in radians (0 for non-steered wheels).
Definition WheelSettings.hpp:59
float suspensionMaxLength
Maximum suspension extension length in meters.
Definition WheelSettings.hpp:45
float suspensionMinLength
Minimum suspension compression length in meters (usually 0).
Definition WheelSettings.hpp:48
float suspensionFrequency
Definition WheelSettings.hpp:52
std::vector< FrictionCurvePoint > longitudinalFriction
Definition WheelSettings.hpp:74
float suspensionDamping
Definition WheelSettings.hpp:56
static WheelSettings CreateFrontWheel()
Create default front wheel settings with steering.
Definition WheelSettings.hpp:99
float maxBrakeTorque
Maximum brake torque (Nm) that can be applied to this wheel.
Definition WheelSettings.hpp:91