5#include "Containers/Array.h"
10#if VEHICLE_DEBUGGING_ENABLED
42 , FrontRearSplit(0.5f)
55 , FrontRearSplit(Setup().FrontRearSplit) {}
63 : FinalDriveRatio(1.f)
66 , GearChangeTime(0.2f)
67 , TransmissionEfficiency(1.f)
105 SetGear(TargetGear + 1);
111 SetGear(TargetGear - 1);
143 return CurrentGearChangeTime;
167 return CurrentGear != TargetGear;
172 return (CurrentGear == 0) || IsCurrentlyChangingGear();
192 return GetTransmissionRPM(EngineRPM, CurrentGear);
198 return InEngineTorque * GetGearRatio(GetCurrentGear()) * Setup().TransmissionEfficiency;
210 return InWheelRPM * GetGearRatio(GetCurrentGear());
218 void Simulate(
float DeltaTime);
229 float CurrentGearChangeTime;
233 bool AllowedToChangeGear;
239#if VEHICLE_DEBUGGING_ENABLED
#define UE_DISABLE_OPTIMIZATION_SHIP
Definition CoreMiscDefines.h:45
#define UE_ENABLE_OPTIMIZATION_SHIP
Definition CoreMiscDefines.h:51
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
Definition TransmissionSystem.h:51
FSimpleDifferentialSim(const FSimpleDifferentialConfig *SetupIn)
Definition TransmissionSystem.h:53
float FrontRearSplit
Definition TransmissionSystem.h:57
Definition TransmissionSystem.h:90
int32 GetTargetGear() const
Definition TransmissionSystem.h:135
void SetAllowedToChangeGear(bool OkToChangeIn)
Definition TransmissionSystem.h:120
float GetEngineRPMFromWheelRPM(float InWheelRPM)
** Given the transmission torque return the engine torque after taking into account the gear ratios ...
Definition TransmissionSystem.h:208
float GetTransmissionTorque(float InEngineTorque)
Definition TransmissionSystem.h:196
float GetTransmissionRPM(float InEngineRPM, int InGear)
Definition TransmissionSystem.h:179
bool IsOutOfGear() const
Definition TransmissionSystem.h:170
bool IsCurrentlyChangingGear() const
Definition TransmissionSystem.h:165
void ChangeUp()
Definition TransmissionSystem.h:103
int32 GetCurrentGear() const
Definition TransmissionSystem.h:129
void SetEngineRPM(float InRPM)
Definition TransmissionSystem.h:115
float GetTransmissionRPM()
Definition TransmissionSystem.h:190
void SetTargetGear(const int32 InTargetGear)
Definition TransmissionSystem.h:153
void SetCurrentGearChangeTime(const float InCurrentGearChangeTime)
Definition TransmissionSystem.h:159
float GetCurrentGearChangeTime() const
Definition TransmissionSystem.h:141
void SetCurrentGear(const int32 InCurrentGear)
Definition TransmissionSystem.h:147
void CorrectGearInputRange(int32 &GearIndexInOut)
Definition TransmissionSystem.h:220
void ChangeDown()
Definition TransmissionSystem.h:109
Definition VehicleSystemTemplate.h:13
Definition SkeletalMeshComponent.h:307
ETransmissionType
Definition TransmissionSystem.h:25
@ Automatic
Definition TransmissionSystem.h:27
@ Manual
Definition TransmissionSystem.h:26
EDifferentialType
Definition TransmissionSystem.h:31
@ FrontWheelDrive
Definition TransmissionSystem.h:34
@ RearWheelDrive
Definition TransmissionSystem.h:35
@ UndefinedDrive
Definition TransmissionSystem.h:32
@ AllWheelDrive
Definition TransmissionSystem.h:33
Definition TransmissionSystem.h:39
FSimpleDifferentialConfig()
Definition TransmissionSystem.h:40
float FrontRearSplit
Definition TransmissionSystem.h:47
EDifferentialType DifferentialType
Definition TransmissionSystem.h:46
Definition TransmissionSystem.h:61
float FinalDriveRatio
Definition TransmissionSystem.h:75
uint32 ChangeUpRPM
Definition TransmissionSystem.h:77
bool AutoReverse
Definition TransmissionSystem.h:85
FSimpleTransmissionConfig()
Definition TransmissionSystem.h:62
ETransmissionType TransmissionType
Definition TransmissionSystem.h:83
TArray< float > ForwardRatios
Definition TransmissionSystem.h:73
TArray< float > ReverseRatios
Definition TransmissionSystem.h:74
float GearChangeTime
Definition TransmissionSystem.h:79
uint32 ChangeDownRPM
Definition TransmissionSystem.h:78
float TransmissionEfficiency
Definition TransmissionSystem.h:81
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592