UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AerofoilSystem.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Math/Transform.h"
7#include "Math/Vector.h"
9#include "VehicleUtility.h"
10
11#if VEHICLE_DEBUGGING_ENABLED
13#endif
14
15namespace Chaos
16{
17 enum class EAerofoilType : uint8
18 {
19 Fixed = 0,
20 Wing,
21 Rudder,
23 };
24
26 {
28 : Offset(FVector(0.f, 0.f, 0.0f))
29 , UpAxis(FVector(0.f, 0.f, 1.f))
30 , Area(5.0f)
31 , Camber(3.0f)
32 , MaxControlAngle(1.f)
33 , StallAngle(16.0f)
34 , MaxCeiling(1E30)
35 , MinCeiling(-1E30)
36 , Type(EAerofoilType::Fixed)
37 , LiftMultiplier(1.0f)
38 , DragMultiplier(1.0f)
39 {
40
41 }
42
45 float Area;
46 float Camber;
49
52
56 };
57
58 class CHAOSVEHICLESCORE_API FAerofoil : public TVehicleSystem<FAerofoilConfig>
59 {
60 public:
62 {}
63
65
67 void SetAerofoilId(int Id)
68 {
69 AerofoilId = Id;
70 }
71
73 {
74 ControlSurfaceAngle = CtrlSurfaceInput * Setup().MaxControlAngle;
75 }
76
78 {
79 CurrentAirDensity = InDensity;
80 }
81
83 {
84 return Setup().UpAxis;
85 }
86
88 {
89 return Setup().Offset;
90 }
91
92 FVector GetCenterOfLiftOffset();
93
94 // returns the combined force of lift and drag at an aerofoil in world coordinates
95 // for direct application to the aircrafts rigid body.
96 FVector GetForce(FTransform& BodyTransform, const FVector& v, float Altitude, float DeltaTime);
97
104 float CalcDynamicPressure(float VelocitySqr, float InAltitude);
105
107 float CalcCentreOfLift();
108
110 float CalcDragCoefficient(float InAngleOfAttack, float InControlSurfaceAngle);
111
116 float CalcLiftCoefficient(float InAngleOfAttack, float InControlSurfaceAngle);
117
119 float CalcAngleOfAttackDegrees(const FVector& UpAxis, const FVector& InAirflowVector);
120
121 private:
122 float CurrentAirDensity;
123 float AngleOfAttack;
124 float ControlSurfaceAngle;
125 FVector AirflowNormal;
126 int AerofoilId;
127 };
128
129} // namespace Chaos
130
131#if VEHICLE_DEBUGGING_ENABLED
133#endif
#define UE_ENABLE_OPTIMIZATION
Definition CoreMiscDefines.h:60
#define UE_DISABLE_OPTIMIZATION
Definition CoreMiscDefines.h:59
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32 Offset
Definition VulkanMemory.cpp:4033
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition AerofoilSystem.h:59
FAerofoil()
Definition AerofoilSystem.h:61
void SetAerofoilId(int Id)
Definition AerofoilSystem.h:67
void SetControlSurface(float CtrlSurfaceInput)
Definition AerofoilSystem.h:72
void SetDensityOfMedium(float InDensity)
Definition AerofoilSystem.h:77
FVector GetOffset()
Definition AerofoilSystem.h:87
FVector GetAxis()
Definition AerofoilSystem.h:82
Definition VehicleSystemTemplate.h:13
Definition SkeletalMeshComponent.h:307
EAerofoilType
Definition AerofoilSystem.h:18
float v
Definition radaudio_mdct.cpp:62
Definition AerofoilSystem.h:26
float MinCeiling
Definition AerofoilSystem.h:51
float LiftMultiplier
Definition AerofoilSystem.h:54
FVector UpAxis
Definition AerofoilSystem.h:44
float MaxControlAngle
Definition AerofoilSystem.h:47
float Area
Definition AerofoilSystem.h:45
EAerofoilType Type
Definition AerofoilSystem.h:53
FVector Offset
Definition AerofoilSystem.h:43
float StallAngle
Definition AerofoilSystem.h:48
FAerofoilConfig()
Definition AerofoilSystem.h:27
float MaxCeiling
Definition AerofoilSystem.h:50
float DragMultiplier
Definition AerofoilSystem.h:55
float Camber
Definition AerofoilSystem.h:46