Files
UnrealEngine/Engine/Plugins/Experimental/ChaosModularVehicle/Source/ChaosModularVehicleEngine/Public/ChaosModularVehicle/VehicleSimAerofoilComponent.h
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

72 lines
1.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectPtr.h"
#include "VehicleSimBaseComponent.h"
#include "VehicleSimAerofoilComponent.generated.h"
#define UE_API CHAOSMODULARVEHICLEENGINE_API
UENUM()
enum class EModuleAerofoilType : uint8
{
Fixed = 0,
Wing, // affected by Roll input
Rudder, // affected by steering/yaw input
Elevator // affected by Pitch input
};
UCLASS(MinimalAPI, ClassGroup = (ModularVehicle), meta = (BlueprintSpawnableComponent), hidecategories = (Object, Tick, Replication, Cooking, Activation, LOD))
class UVehicleSimAerofoilComponent : public UVehicleSimBaseComponent
{
GENERATED_BODY()
public:
UE_API UVehicleSimAerofoilComponent();
virtual ~UVehicleSimAerofoilComponent() = default;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Attributes)
FVector Offset;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Attributes)
FVector ForceAxis;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Attributes)
FVector ControlRotationAxis;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Attributes)
float Area;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Attributes)
float Camber;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Attributes)
float MaxControlAngle;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Attributes)
float StallAngle;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Attributes)
EModuleAerofoilType Type;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Attributes)
float LiftMultiplier;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Attributes)
float DragMultiplier;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Attributes)
float AnimationMagnitudeMultiplier;
virtual ESimModuleType GetModuleType() const override { return ESimModuleType::Aerofoil; }
UE_API virtual Chaos::ISimulationModuleBase* CreateNewCoreModule() const override;
};
#undef UE_API