UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ClutchModule.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6
7#define UE_API CHAOSVEHICLESCORE_API
8
9
10namespace Chaos
11{
12 struct FAllInputs;
13 class FSimModuleTree;
14
16 {
18 : ClutchStrength(1.f)
19 {
20
21 }
22
24 };
25
26
27 struct FClutchSimModuleData : public FTorqueSimModuleData, public TSimulationModuleTypeable<class FClutchSimModule, FClutchSimModuleData>
28 {
29#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
31#else
33#endif
34
35 virtual void FillSimState(ISimulationModuleBase* SimModule) override
36 {
37 check(SimModule->IsSimType<class FClutchSimModule>());
39 }
40
41 virtual void FillNetState(const ISimulationModuleBase* SimModule) override
42 {
43 check(SimModule->IsSimType<class FClutchSimModule>());
45 }
46
47 };
48
49
59 class FClutchSimModule : public FTorqueSimModule, public TSimModuleSettings<FClutchSettings>, public TSimulationModuleTypeable<FClutchSimModule>
60 {
61 public:
64
65 virtual TSharedPtr<FModuleNetData> GenerateNetData(const int32 SimArrayIndex) const override
66 {
68 SimArrayIndex
70 , GetDebugName()
71#endif
72 );
73 }
74
75 virtual const FString GetDebugName() const { return TEXT("Clutch"); }
76
77 UE_API virtual bool GetDebugString(FString& StringOut) const override;
78
79 UE_API virtual void Simulate(float DeltaTime, const FAllInputs& Inputs, FSimModuleTree& VehicleModuleSystem);
80
81 private:
82
83 float ClutchValue;
84 };
85
87 : public FSimFactoryModule<FClutchSimModuleData>
88 , public TSimulationModuleTypeable<FClutchSimModule,FClutchSimFactory>
89 , public TSimFactoryAutoRegister<FClutchSimFactory>
90
91 {
92 public:
93 FClutchSimFactory() : FSimFactoryModule(TEXT("ClutchFactory")) {}
94 };
95
96} // namespace Chaos
97
98#undef UE_API
#define check(expr)
Definition AssertionMacros.h:314
#define UE_BUILD_TEST
Definition Build.h:17
#define UE_BUILD_SHIPPING
Definition Build.h:20
#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
Definition ClutchModule.h:91
FClutchSimFactory()
Definition ClutchModule.h:93
a vehicle component that transmits torque from one source to another through a clutch system,...
Definition ClutchModule.h:60
virtual UE_API void Simulate(float DeltaTime, const FAllInputs &Inputs, FSimModuleTree &VehicleModuleSystem)
Definition ClutchModule.cpp:18
virtual UE_API bool GetDebugString(FString &StringOut) const override
Definition ClutchModule.cpp:51
virtual const FString GetDebugName() const
Definition ClutchModule.h:75
DEFINE_CHAOSSIMTYPENAME(FClutchSimModule)
virtual TSharedPtr< FModuleNetData > GenerateNetData(const int32 SimArrayIndex) const override
Definition ClutchModule.h:65
Definition SimulationModuleBase.h:605
Definition SimModuleTree.h:98
bool IsSimType(FName InType) const
Definition SimulationModuleBase.h:236
Definition TorqueSimModule.h:52
Definition SimulationModuleBase.h:299
Definition SimulationModuleBase.h:598
Definition SimulationModuleBase.h:113
Definition ModuleFactoryRegister.h:42
Definition SharedPointer.h:692
Definition SkeletalMeshComponent.h:307
Definition SimulationModuleBase.h:65
Definition ClutchModule.h:16
float ClutchStrength
Definition ClutchModule.h:23
FClutchSettings()
Definition ClutchModule.h:17
Definition ClutchModule.h:28
FClutchSimModuleData(int NodeArrayIndex, const FString &InDebugString)
Definition ClutchModule.h:30
virtual void FillNetState(const ISimulationModuleBase *SimModule) override
Definition ClutchModule.h:41
virtual void FillSimState(ISimulationModuleBase *SimModule) override
Definition ClutchModule.h:35
Definition TorqueSimModule.h:17
virtual UE_API void FillSimState(ISimulationModuleBase *SimModule) override
Definition TorqueSimModule.cpp:106
virtual UE_API void FillNetState(const ISimulationModuleBase *SimModule) override
Definition TorqueSimModule.cpp:115