UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AerofoilModule.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "VehicleUtility.h"
7
8#define UE_API CHAOSVEHICLESCORE_API
9
10namespace Chaos
11{
12 struct FAllInputs;
13 class FSimModuleTree;
14
15 enum class EAerofoil : uint8
16 {
17 Fixed = 0,
18 Wing,
19 Rudder,
21 };
22
24 : public FSimOutputData
25 , public Chaos::TSimulationModuleTypeable<class FAerofoilSimModule, FAerofoilOutputData>
26 {
28 static FSimOutputData* MakeNew() { return new FAerofoilOutputData(); }
29
30 UE_API virtual void FillOutputState(const ISimulationModuleBase* SimModule) override;
31 UE_API virtual void Lerp(const FSimOutputData& InCurrent, const FSimOutputData& InNext, float Alpha) override;
32
33#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
34 UE_API virtual FString ToString() override;
35#endif
36 };
37
39 {
41 : Offset(FVector::ZeroVector)
42 , ForceAxis(FVector(0.f, 0.f, 1.f))
43 , ControlRotationAxis(FVector(0.f, 1.f, 0.f))
44 , Area(5.0f)
45 , Camber(3.0f)
46 , MaxControlAngle(1.f)
47 , StallAngle(16.0f)
49 , LiftMultiplier(1.0f)
50 , DragMultiplier(1.0f)
52 {
53 }
54
58 float Area;
59 float Camber;
62
67
68 };
69
70 class FAerofoilSimModule : public ISimulationModuleBase, public TSimModuleSettings<FAerofoilSettings>, public TSimulationModuleTypeable<FAerofoilSimModule>
71 {
73
74 public:
77
79
80 virtual TSharedPtr<FModuleNetData> GenerateNetData(const int32 NodeArrayIndex) const override { return nullptr; }
81
82 virtual FSimOutputData* GenerateOutputData() const override
83 {
85 }
86
87 virtual const FString GetDebugName() const { return TEXT("Aerofoil"); }
88
89 virtual bool IsBehaviourType(eSimModuleTypeFlags InType) const override { return (InType & Velocity); }
90
91 UE_API virtual void Simulate(float DeltaTime, const FAllInputs& Inputs, FSimModuleTree& VehicleModuleSystem) override;
92
93 UE_API virtual void Animate() override;
94
99
104
106
107 // returns the combined force of lift and drag at an aerofoil in local coordinates
108 // for direct application to the aircrafts rigid body.
109 UE_API FVector GetForce(const FVector& v, float Altitude, float DeltaTime);
110
115
117 UE_API float CalcCentreOfLift();
118
121
127
130
136
137 };
138
139} // namespace Chaos
140
141#undef UE_API
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_API
Definition SColorGradingComponentViewer.h:12
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition AerofoilModule.h:71
UE_API float CalcLiftCoefficient(float InAngleOfAttack, float InControlSurfaceAngle)
Definition AerofoilModule.cpp:54
float ControlSurfaceAngle
Definition AerofoilModule.h:133
UE_API FVector GetForce(const FVector &v, float Altitude, float DeltaTime)
Definition AerofoilModule.cpp:114
UE_API float CalcCentreOfLift()
Definition AerofoilModule.cpp:83
virtual TSharedPtr< FModuleNetData > GenerateNetData(const int32 NodeArrayIndex) const override
Definition AerofoilModule.h:80
UE_API FVector GetCenterOfLiftOffset()
Definition AerofoilModule.cpp:102
virtual const FString GetDebugName() const
Definition AerofoilModule.h:87
UE_API float CalcAngleOfAttackDegrees(const FVector &UpAxis, const FVector &InAirflowVector)
Definition AerofoilModule.cpp:48
DEFINE_CHAOSSIMTYPENAME(FAerofoilSimModule)
float AngleOfAttack
Definition AerofoilModule.h:132
virtual UE_API void Simulate(float DeltaTime, const FAllInputs &Inputs, FSimModuleTree &VehicleModuleSystem) override
Definition AerofoilModule.cpp:22
float CurrentAirDensity
Definition AerofoilModule.h:131
UE_API float CalcDragCoefficient(float InAngleOfAttack, float InControlSurfaceAngle)
Definition AerofoilModule.cpp:67
virtual UE_API void Animate() override
Definition AerofoilModule.cpp:149
void SetControlSurface(float CtrlSurfaceInput)
Definition AerofoilModule.h:100
UE_API float CalcDynamicPressure(float VelocitySqr, float InAltitude)
Definition AerofoilModule.cpp:95
int AerofoilId
Definition AerofoilModule.h:135
void SetDensityOfMedium(float InDensity)
Definition AerofoilModule.h:95
virtual bool IsBehaviourType(eSimModuleTypeFlags InType) const override
Definition AerofoilModule.h:89
FVector AirflowNormal
Definition AerofoilModule.h:134
virtual ~FAerofoilSimModule()
Definition AerofoilModule.h:78
virtual FSimOutputData * GenerateOutputData() const override
Definition AerofoilModule.h:82
Definition SimModuleTree.h:98
Definition SimulationModuleBase.h:299
Definition SimulationModuleBase.h:113
FORCEINLINE const FAerofoilSettings & Setup() const
Definition SimulationModuleBase.h:126
Definition ModuleFactoryRegister.h:42
Definition SharedPointer.h:692
Definition SkeletalMeshComponent.h:307
EAerofoil
Definition AerofoilModule.h:16
eSimModuleTypeFlags
Definition SimulationModuleBase.h:143
@ Velocity
Definition SimulationModuleBase.h:147
float v
Definition radaudio_mdct.cpp:62
Definition AerofoilModule.h:26
virtual UE_API void FillOutputState(const ISimulationModuleBase *SimModule) override
Definition AerofoilModule.cpp:168
virtual FSimOutputData * MakeNewData() override
Definition AerofoilModule.h:27
static FSimOutputData * MakeNew()
Definition AerofoilModule.h:28
virtual UE_API FString ToString() override
Definition AerofoilModule.cpp:181
Definition AerofoilModule.h:39
float LiftMultiplier
Definition AerofoilModule.h:64
FVector Offset
Definition AerofoilModule.h:55
EAerofoil Type
Definition AerofoilModule.h:63
float Camber
Definition AerofoilModule.h:59
FVector ForceAxis
Definition AerofoilModule.h:56
FAerofoilSettings()
Definition AerofoilModule.h:40
float Area
Definition AerofoilModule.h:58
float StallAngle
Definition AerofoilModule.h:61
float MaxControlAngle
Definition AerofoilModule.h:60
FVector ControlRotationAxis
Definition AerofoilModule.h:57
float AnimationMagnitudeMultiplier
Definition AerofoilModule.h:66
float DragMultiplier
Definition AerofoilModule.h:65
Definition SimulationModuleBase.h:65
Definition SimulationModuleBase.h:567