UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SimulationModuleBase.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
8#include "Logging/LogMacros.h"
12
13#define UE_API CHAOSVEHICLESCORE_API
14
16
17#define TSIMMODULETYPEABLE(clazz) Chaos::TSimulationModuleTypeableExt<clazz,&FName(#clazz)>
18
20{
21 bool ShowMass = false;
22 bool ShowForces = false;
23 float DrawForceScaling = 0.0004f;
24 float LevelSlopeThreshold = 0.86f;
25 bool DisableForces = false;
26};
27
28namespace Chaos
29{
30 class FSimModuleTree;
31 struct FModuleNetData;
32 struct FSimOutputData;
33 class FClusterUnionPhysicsProxy;
34 class FCollisionContactModifier;
35
36 const FName HandbrakeControlName("Handbrake");
37 const FName ThrottleControlName("Throttle");
38 const FName SteeringControlName("Steering");
39 const FName BrakeControlName("Brake");
40 const FName ClutchControlName("Clutch");
41 const FName BoostControlName("Boost");
42 const FName ReverseControlName("Reverse");
43 const FName ChangeUpControlName("ChangeUp");
44 const FName ChangeDownControlName("ChangeDown");
45 const FName PitchControlName("Pitch");
46 const FName RollControlName("Roll");
47 const FName YawControlName("Yaw");
48
49 namespace EAnimationFlags
50 {
51 static uint16 AnimateNone = 0x00000000;
52 static uint16 AnimatePosition = 0x00000001;
53 static uint16 AnimateRotation = 0x00000002;
54 }
55
63
75
87
106
107
111 template <typename T>
113 {
114 public:
115
116 explicit TSimModuleSettings(const T& SetupIn) : SetupData(SetupIn)
117 {
118 SetupData = SetupIn; // deliberate copy for now
119 }
120
122 {
123 return (T&)(SetupData);
124 }
125
126 FORCEINLINE const T& Setup() const
127 {
128 return (SetupData);
129 }
130
131 private:
132 T SetupData;
133 };
134
135
141
143 {
144 NonFunctional = (1 << 0), // bitmask 1,2,4,8
145 Raycast = (1 << 1), // requires raycast data
146 TorqueBased = (1 << 2), // performs torque calculations
147 Velocity = (1 << 3), // requires velocity data
148 };
149
151 {
152 X, // X forward
153 Y // Y forward
154 };
155
156 //These two classes work in concert to provide typing information for any base classes that use ISimulationModuleBase for some base type security
157 // The FSimulationModuleTypeContainer must only be in the base class of a hierarchy.
158 // The TSimulationModuleTypeable<T> class uses multi-inheritance & CRTP to populate the FSimulationmoduleTypeContainer correctly.
159 // - All of the classes that want to be typeable/castable CRTP themselves into the chain.
160 // - All of the classes that store the shared typing information must be in the CRTP chain.
161 // Together they provide the ability to check and cast to any type within the inheritance chain.
162
163 template<typename _To>
165 {
166 public:
168 {
169 static_cast<_To*>(this)->AddType(StaticSimTypeBase());
170 }
172 {
173 return _To::_CHAOSTYPENAMERETRIVAL_();
174 }
175 };
176
177 template<typename _To, typename ..._Rest>
178 class TSimulationModuleTypeable;
179
180 template<typename _To>
182 {
183 public:
185 {
186 static_cast<_To*>(this)->AddType(StaticSimType());
187 }
189 {
190 return _To::_CHAOSTYPENAMERETRIVAL_();
191 }
192 };
193
194 template<typename _To, typename _From>
196 {
197 public:
199 {
200 static_cast<_From*>(this)->AddType(StaticSimType());
201 }
203 {
204 return _To::_CHAOSTYPENAMERETRIVAL_();
205 }
207 {
208 return StaticSimType();
209 }
210 };
211
212
213 template<class T, class = void>
215 : std::false_type
216 {};
217
218 template<class T>
219 struct TSimModuleTypeIsRecursive<T, std::enable_if_t<std::is_invocable_r<FName, decltype(T::RecurseSimType)>::value>>
220 : std::integral_constant<bool, true>
221 {};
222
223 template<class T>
225
227 {
228 public:
232 {
233 MyTypes.Emplace(InType);
235 }
237 {
238 return MostRecentAdd == InType || MyTypes.Contains(InType);
239 }
241 {
242 return MostRecentAdd;
243 }
244 template <typename U>
246 {
247 if constexpr (TSimModuleTypeIsRecursive_v<U>)
248 {
249 return U::RecurseSimType();
250 }
251 else
252 {
254 }
255 }
256 template<typename U>
257 bool IsSimType() const
258 {
259 if constexpr (TSimModuleTypeIsRecursive_v<U>)
260 {
261 return IsSimType(U::RecurseSimType());
262 }
263 else
264 {
266 }
267 }
268 template<typename U>
269 U* Cast()
270 {
271 if(IsSimType<std::remove_const_t<U>>())
272 {
273 return static_cast<U*>(this);
274 }
275 return nullptr;
276 }
277 template<typename U>
278 const U* Cast() const
279 {
280 if(IsSimType<std::remove_const_t<U>>())
281 {
282 return static_cast<const U*>(this);
283 }
284 return nullptr;
285 }
286 };
287
288
289#define DEFINE_CHAOSSIMTYPENAME(cls) \
290 static FName _CHAOSTYPENAMERETRIVAL_() { static FName Name(#cls); return Name; }
291
292 //FName TSimulationModuleTypeName<class cls>::SimModuleTypeName = FName(#cls);
293
294
299 {
300 friend FSimOutputData;
301
302
303 public:
305 const static int INVALID_IDX = -1;
306
308 : SimModuleTree(nullptr)
313 , LocalLinearVelocity(FVector::ZeroVector)
314 , LocalAngularVelocity(FVector::ZeroVector)
317 , AnimationOffset(FVector::ZeroVector)
318 , AppliedForce(FVector::ZeroVector)
320 , CachedParticle(nullptr)
321 {}
323
324 int GetGuid() const { return Guid; }
325 void SetGuid(int GuidIn) { Guid = GuidIn; }
329 virtual const FString GetDebugName() const = 0;
330
335
339 virtual bool IsEnabled() const { return (StateFlags == eSimModuleState::Enabled); }
340
341 /*
342 * Set Module state, if simulating or not
343 */
345
346 /*
347 * Any post construction initialisation - called from Game Thread
348 */
349 virtual void OnConstruction_External(const Chaos::FPhysicsObjectHandle& PhysicsObject) {}
350
351 /*
352 * Any cleaning up required - called from game thread
353 */
354 virtual void OnTermination_External() {}
355
359 virtual void Simulate(IPhysicsProxyBase* Proxy, Chaos::FPBDRigidParticleHandle* ParticleHandle, float DeltaTime, const FAllInputs& Inputs, FSimModuleTree& VehicleModuleSystem)
360 {
361 Simulate(DeltaTime, Inputs, VehicleModuleSystem);
362 }
363
365
369 virtual void Simulate(float DeltaTime, const FAllInputs& Inputs, FSimModuleTree& VehicleModuleSystem) {}
370
374 virtual void Animate() {}
375
378
381 const FVector& GetAnimationOffset() const { return AnimationOffset; }
382 const FName& GetBoneName() const { return AnimationData.BoneName; }
384
388 virtual void DrawDebugInfo() {}
389
393 UE_API virtual bool GetDebugString(FString& StringOut) const;
394
399 const int GetTransformIndex() const { return TransformIndex; }
400
405 const FUniqueIdx GetParticleIndex() const { return ParticleIdx; }
406
411 int GetTreeIndex() const { return SimTreeIndex; }
412
417
422 UE_API void AddLocalForceAtPosition(const FVector& Force, const FVector& Position, bool bAllowSubstepping = true, bool bIsLocalForce = false, bool bLevelSlope = false, const FColor& DebugColorIn = FColor::Blue);
423
424
426
431 UE_API void AddLocalForce(const FVector& Force, bool bAllowSubstepping = true, bool bIsLocalForce = false, bool bLevelSlope = false, const FColor& DebugColorIn = FColor::Blue);
432
438
439 //---
440
445 bool IsClustered() const { return bClustered; }
446
452
455
458
464 bool IsInitialized = false;
470
478
481
483
484 // for headless chaos testing
486
487 // this is the replication datas
489
490 virtual FSimOutputData* GenerateOutputData() const { return nullptr; }
491
492 //void SetClusterParticle(FPBDRigidClusteredParticleHandle* ParticleIn) { ClusterParticle = ParticleIn; }
494
496
497 protected:
498
499 FSimModuleTree* SimModuleTree; // A pointer back to the simulation tree where we are stored
500 int SimTreeIndex; // Index of this SimModule in the FSimModuleTree
501 eSimModuleState StateFlags; // TODO: make this more like flags
502 int TransformIndex; // Index of this Sim Module's node in Geometry Collection Transform array
503 FUniqueIdx ParticleIdx; // Physics particle unique index
504
508
517
518 // for headless chaos testing
520 int Guid; // needed a way of associating internal module with game thread.
521
523 };
524
529 {
537
538 virtual ~FModuleNetData() {}
539
540 virtual void Serialize(FArchive& Ar) = 0;
543 virtual void FillNetState(const ISimulationModuleBase* SimModule) = 0;
544 virtual void FillSimState(ISimulationModuleBase* SimModule) = 0;
545 virtual void Lerp(const float LerpFactor, const FModuleNetData& Max, const FModuleNetData& MaxValue) = 0;
546
551 virtual bool IsDefaultState() { return false; }
552
554 virtual void ApplyDefaultState() { }
555
557
558#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
559 virtual FString ToString() const = 0;
560 FString DebugString;
561#endif
562 };
563
565
567 {
569 FSimOutputData() = default;
570 virtual ~FSimOutputData() {}
571
572 virtual bool IsEnabled() { return bEnabled; }
574 UE_API virtual void FillOutputState(const ISimulationModuleBase* SimModule);
575 UE_API virtual void Lerp(const FSimOutputData& InCurrent, const FSimOutputData& InNext, float Alpha);
576
577 bool bEnabled = true;
579 int ModuleGuid = -1;
580
581#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
582 virtual FString ToString() { return FString(); }
583 FString DebugString;
584#endif
585 };
586
588 {
589 public:
591 virtual ~IFactoryModule() {}
592 virtual TSharedPtr<Chaos::FModuleNetData> GenerateNetData(const int32 SimArrayIndex) const = 0;
593
594 };
595
596 template<typename _To>
598 {
599 private:
600 inline static bool bSimFactoryRegistered = RegisterFactoryHelper<_To>();
601 };
602
603 template <typename T>
605 {
606 public:
608 {
609#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
611#endif
612 }
613
614 TSharedPtr<Chaos::FModuleNetData> GenerateNetData(const int32 SimArrayIndex) const override
615 {
616 return MakeShared<T>(
617 SimArrayIndex
619 , FSimulationModuleTypeContainer::GetStaticSimType<T>().ToString()
620 #endif
621 );
622 }
623
624#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
625 FString DebugString;
626#endif
627
628 };
629} // namespace Chaos
630
631#undef UE_API
#define FORCEINLINE
Definition AndroidPlatform.h:140
#define check(expr)
Definition AssertionMacros.h:314
#define UE_BUILD_TEST
Definition Build.h:17
#define UE_BUILD_SHIPPING
Definition Build.h:20
@ INDEX_NONE
Definition CoreMiscDefines.h:150
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
return true
Definition ExternalRpcRegistry.cpp:601
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define UE_API
Definition SColorGradingComponentViewer.h:12
if(Failed) console_printf("Failed.\n")
uint16_t uint16
Definition binka_ue_file_header.h:7
Definition ClusterUnionPhysicsProxy.h:63
Definition ContactModification.h:512
Definition SimulationModuleBase.h:605
FString DebugString
Definition SimulationModuleBase.h:625
TSharedPtr< Chaos::FModuleNetData > GenerateNetData(const int32 SimArrayIndex) const override
Definition SimulationModuleBase.h:614
FSimFactoryModule(const FString &DebugNameIn)
Definition SimulationModuleBase.h:607
Definition SimModuleTree.h:98
Definition SimulationModuleBase.h:227
FName GetSimType() const
Definition SimulationModuleBase.h:240
void AddType(FName InType)
Definition SimulationModuleBase.h:231
static FName GetStaticSimType()
Definition SimulationModuleBase.h:245
FName MostRecentAdd
Definition SimulationModuleBase.h:230
bool IsSimType(FName InType) const
Definition SimulationModuleBase.h:236
bool IsSimType() const
Definition SimulationModuleBase.h:257
const U * Cast() const
Definition SimulationModuleBase.h:278
U * Cast()
Definition SimulationModuleBase.h:269
TSet< FName > MyTypes
Definition SimulationModuleBase.h:229
Definition SimulationModuleBase.h:588
virtual TSharedPtr< Chaos::FModuleNetData > GenerateNetData(const int32 SimArrayIndex) const =0
DEFINE_CHAOSSIMTYPENAME(IFactoryModule)
virtual ~IFactoryModule()
Definition SimulationModuleBase.h:591
Definition SimulationModuleBase.h:299
UE_API ISimulationModuleBase * GetParent()
Definition SimulationModuleBase.cpp:48
FTransform RelativeOffsetTransform
Definition SimulationModuleBase.h:506
void SetLocalLinearVelocity(const FVector &VelocityIn)
Definition SimulationModuleBase.h:474
void SetClustered(bool IsClusteredIn)
Definition SimulationModuleBase.h:444
virtual FSimOutputData * GenerateOutputData() const
Definition SimulationModuleBase.h:490
FTransform InitialParticleTransform
Definition SimulationModuleBase.h:505
const FVector & GetLocalAngularVelocity() const
Definition SimulationModuleBase.h:477
static const int INVALID_IDX
Definition SimulationModuleBase.h:305
void SetGuid(int GuidIn)
Definition SimulationModuleBase.h:325
void SetStateFlags(eSimModuleState StateFlagsIn)
Definition SimulationModuleBase.h:344
UE_API ISimulationModuleBase * GetFirstChild()
Definition SimulationModuleBase.cpp:53
virtual void OnTermination_External()
Definition SimulationModuleBase.h:354
bool bAnimationEnabled
Definition SimulationModuleBase.h:514
UE_API void AddLocalForceAtPosition(const FVector &Force, const FVector &Position, bool bAllowSubstepping=true, bool bIsLocalForce=false, bool bLevelSlope=false, const FColor &DebugColorIn=FColor::Blue)
Definition SimulationModuleBase.cpp:13
virtual void OnConstruction_External(const Chaos::FPhysicsObjectHandle &PhysicsObject)
Definition SimulationModuleBase.h:349
FVector AnimationOffset
Definition SimulationModuleBase.h:515
virtual void Simulate(float DeltaTime, const FAllInputs &Inputs, FSimModuleTree &VehicleModuleSystem)
Definition SimulationModuleBase.h:369
const FUniqueIdx GetParticleIndex() const
Definition SimulationModuleBase.h:405
UE_API void SetAnimationData(const FName &BoneNameIn, const FVector &AnimationOffsetIn, int AnimationSetupIndexIn)
Definition SimulationModuleBase.cpp:115
FVector LocalAngularVelocity
Definition SimulationModuleBase.h:512
const FVector & GetAnimationOffset() const
Definition SimulationModuleBase.h:381
int TransformIndex
Definition SimulationModuleBase.h:502
UE_API Chaos::FPBDRigidClusteredParticleHandle * GetClusterParticle(Chaos::FClusterUnionPhysicsProxy *Proxy)
Definition SimulationModuleBase.cpp:71
void SetClusteredTransform(const FTransform &TransformIn)
Definition SimulationModuleBase.h:450
int GetGuid() const
Definition SimulationModuleBase.h:324
FSimModuleAnimationData AnimationData
Definition SimulationModuleBase.h:516
const FSimModuleAnimationData & GetAnimationData() const
Definition SimulationModuleBase.h:380
bool IsAnimationEnabled()
Definition SimulationModuleBase.h:377
const FTransform & GetComponentTransform() const
Definition SimulationModuleBase.h:457
ISimulationModuleBase()
Definition SimulationModuleBase.h:307
int SimTreeIndex
Definition SimulationModuleBase.h:500
const FTransform & GetClusteredTransform() const
Definition SimulationModuleBase.h:451
void SetTreeIndex(int TreeIndexIn)
Definition SimulationModuleBase.h:410
virtual const FString GetDebugName() const =0
void SetLocalAngularVelocity(const FVector &VelocityIn)
Definition SimulationModuleBase.h:476
void SetParticleIndex(FUniqueIdx ParticleIndexIn)
Definition SimulationModuleBase.h:404
bool bClustered
Definition SimulationModuleBase.h:513
FUniqueIdx ParticleIdx
Definition SimulationModuleBase.h:503
eSimModuleState StateFlags
Definition SimulationModuleBase.h:501
virtual TSharedPtr< FModuleNetData > GenerateNetData(const int32 NodeArrayIndex) const =0
UE_API FVehicleBlackboard * GetSimBlackboard()
Definition SimulationModuleBase.cpp:66
bool IsClustered() const
Definition SimulationModuleBase.h:445
FPBDRigidClusteredParticleHandle * CachedParticle
Definition SimulationModuleBase.h:522
const int GetTransformIndex() const
Definition SimulationModuleBase.h:399
virtual void DrawDebugInfo()
Definition SimulationModuleBase.h:388
FVector AppliedForce
Definition SimulationModuleBase.h:519
UE_API void AddForceAtCOMPosition(const FVector &Force, const FVector &OffsetFromCOM=FVector::ZeroVector, bool bAllowSubstepping=true, bool bLevelSlope=false, const FColor &DebugColorIn=FColor::Blue)
Definition SimulationModuleBase.cpp:22
int Guid
Definition SimulationModuleBase.h:520
virtual void OnContactModification(Chaos::FCollisionContactModifier &Modifier, IPhysicsProxyBase *Proxy)
Definition SimulationModuleBase.h:364
virtual void Animate()
Definition SimulationModuleBase.h:374
FSimModuleTree * SimModuleTree
Definition SimulationModuleBase.h:499
virtual UE_API bool GetDebugString(FString &StringOut) const
Definition SimulationModuleBase.cpp:122
const FTransform & GetIntactTransform() const
Definition SimulationModuleBase.h:463
const FTransform & GetInitialParticleTransform() const
Definition SimulationModuleBase.h:454
virtual ~ISimulationModuleBase()
Definition SimulationModuleBase.h:322
UE_API const FTransform & GetParentRelativeTransform() const
Definition SimulationModuleBase.cpp:130
UE_API void AddLocalForce(const FVector &Force, bool bAllowSubstepping=true, bool bIsLocalForce=false, bool bLevelSlope=false, const FColor &DebugColorIn=FColor::Blue)
Definition SimulationModuleBase.cpp:31
virtual void Simulate(IPhysicsProxyBase *Proxy, Chaos::FPBDRigidParticleHandle *ParticleHandle, float DeltaTime, const FAllInputs &Inputs, FSimModuleTree &VehicleModuleSystem)
Definition SimulationModuleBase.h:359
void SetAnimationEnabled(bool bInEnabled)
Definition SimulationModuleBase.h:376
FTransform ClusteredCOMRelativeTransform
Definition SimulationModuleBase.h:509
const FVector & GetLocalLinearVelocity() const
Definition SimulationModuleBase.h:475
void SetIntactTransform(const FTransform &TransformIn)
Definition SimulationModuleBase.h:462
void SetSimModuleTree(FSimModuleTree *SimModuleTreeIn)
Definition SimulationModuleBase.h:416
FTransform ComponentTransform
Definition SimulationModuleBase.h:507
const FName & GetBoneName() const
Definition SimulationModuleBase.h:382
DEFINE_CHAOSSIMTYPENAME(ISimulationModuleBase)
virtual bool IsBehaviourType(eSimModuleTypeFlags InType) const =0
int GetTreeIndex() const
Definition SimulationModuleBase.h:411
int GetAnimationSetupIndex()
Definition SimulationModuleBase.h:383
bool IsInitialized
Definition SimulationModuleBase.h:464
FVector LocalLinearVelocity
Definition SimulationModuleBase.h:511
UE_API void AddLocalTorque(const FVector &Torque, bool bAllowSubstepping=true, bool bAccelChangeIn=true, const FColor &DebugColorIn=FColor::Magenta)
Definition SimulationModuleBase.cpp:40
void SetComponentTransform(const FTransform &TransformIn)
Definition SimulationModuleBase.h:456
UE_API Chaos::FPBDRigidParticleHandle * GetParticleFromUniqueIndex(int32 ParticleUniqueIdx, TArray< Chaos::FPBDRigidParticleHandle * > &Particles)
Definition SimulationModuleBase.cpp:99
void SetTransformIndex(int TransformIndexIn)
Definition SimulationModuleBase.h:398
virtual bool IsEnabled() const
Definition SimulationModuleBase.h:339
void SetInitialParticleTransform(const FTransform &TransformIn)
Definition SimulationModuleBase.h:453
FTransform IntactCOMRelativeTransform
Definition SimulationModuleBase.h:510
const FVector & GetAppliedForce()
Definition SimulationModuleBase.h:485
Definition ParticleHandle.h:987
Definition SimulationModuleBase.h:598
Definition SimulationModuleBase.h:113
FORCEINLINE T & AccessSetup()
Definition SimulationModuleBase.h:121
TSimModuleSettings(const T &SetupIn)
Definition SimulationModuleBase.h:116
FORCEINLINE const T & Setup() const
Definition SimulationModuleBase.h:126
Definition SimulationModuleBase.h:165
TSimulationModuleTypeableBase()
Definition SimulationModuleBase.h:167
static FName StaticSimTypeBase()
Definition SimulationModuleBase.h:171
static FName RecurseSimType()
Definition SimulationModuleBase.h:206
static FName StaticSimType()
Definition SimulationModuleBase.h:202
TSimulationModuleTypeable()
Definition SimulationModuleBase.h:198
TSimulationModuleTypeable()
Definition SimulationModuleBase.h:184
static FName StaticSimType()
Definition SimulationModuleBase.h:188
Definition ModuleFactoryRegister.h:42
Definition Archive.h:1208
Definition ModuleInput.h:670
Definition NameTypes.h:617
Definition VehicleBlackboard.h:19
Definition PhysicsProxyBase.h:97
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SkeletalMeshComponent.h:307
const FName SteeringControlName("Steering")
const FName PitchControlName("Pitch")
const FName ChangeDownControlName("ChangeDown")
const FName ClutchControlName("Clutch")
EWheelAxis
Definition SimulationModuleBase.h:151
@ Y
Definition SimulationModuleBase.h:153
@ X
Definition SimulationModuleBase.h:152
const FName ReverseControlName("Reverse")
const FName YawControlName("Yaw")
const FName RollControlName("Roll")
eSimModuleTypeFlags
Definition SimulationModuleBase.h:143
@ TorqueBased
Definition SimulationModuleBase.h:146
@ Velocity
Definition SimulationModuleBase.h:147
@ NonFunctional
Definition SimulationModuleBase.h:144
@ Raycast
Definition SimulationModuleBase.h:145
eSimModuleState
Definition SimulationModuleBase.h:137
@ Disabled
Definition SimulationModuleBase.h:138
@ Enabled
Definition SimulationModuleBase.h:139
constexpr bool TSimModuleTypeIsRecursive_v
Definition SimulationModuleBase.h:224
const FName BoostControlName("Boost")
const FName ThrottleControlName("Throttle")
const FName HandbrakeControlName("Handbrake")
const FName BrakeControlName("Brake")
const FName ChangeUpControlName("ChangeUp")
Definition SimulationModuleBase.h:65
FInputInterface & GetControls() const
Definition SimulationModuleBase.h:66
FInputInterface & GetState() const
Definition SimulationModuleBase.h:67
FInputInterface * ControlInputs
Definition SimulationModuleBase.h:71
FTransform VehicleWorldTransform
Definition SimulationModuleBase.h:69
FInputInterface * StateInputs
Definition SimulationModuleBase.h:72
bool bKeepVehicleAwake
Definition SimulationModuleBase.h:73
TMap< int32, FModuleHitResults > HitResults
Definition SimulationModuleBase.h:70
Definition SimulationModuleBase.h:77
FCreatedModules(const FName &InSimType, int InGuid, int InTreeIndex)
Definition SimulationModuleBase.h:78
int TreeIndex
Definition SimulationModuleBase.h:85
int Guid
Definition SimulationModuleBase.h:84
const FName & SimType
Definition SimulationModuleBase.h:83
Definition SimulationModuleBase.h:57
float Distance
Definition SimulationModuleBase.h:60
FVector ImpactPoint
Definition SimulationModuleBase.h:59
int SimIndex
Definition SimulationModuleBase.h:58
bool bBlockingHit
Definition SimulationModuleBase.h:61
Definition SimulationModuleBase.h:529
virtual bool IsDefaultState()
Definition SimulationModuleBase.h:551
virtual void FillSimState(ISimulationModuleBase *SimModule)=0
virtual void Lerp(const float LerpFactor, const FModuleNetData &Max, const FModuleNetData &MaxValue)=0
virtual void DeltaSerialize(FArchive &Ar, const FModuleNetData *Previous)
Definition SimulationModuleBase.h:541
int SimArrayIndex
Definition SimulationModuleBase.h:556
virtual void ApplyDefaultState()
Definition SimulationModuleBase.h:554
DEFINE_CHAOSSIMTYPENAME(FModuleNetData)
virtual void Serialize(FArchive &Ar)=0
FString DebugString
Definition SimulationModuleBase.h:560
virtual void FillNetState(const ISimulationModuleBase *SimModule)=0
virtual FString ToString() const =0
FModuleNetData(int InSimArrayIndex, const FString &InDebugString=FString())
Definition SimulationModuleBase.h:531
virtual ~FModuleNetData()
Definition SimulationModuleBase.h:538
virtual void DeltaSerializeWithStash(FArchive &Ar, const FModuleNetData *Previous, TMap< FName, uint32 > &InOutSerializationStash)
Definition SimulationModuleBase.h:542
Definition PhysicsObjectInternal.h:16
Definition SimulationModuleBase.h:89
FQuat CombinedRotation
Definition SimulationModuleBase.h:103
int AnimationSetupIndex
Definition SimulationModuleBase.h:104
FRotator AnimationRotOffset
Definition SimulationModuleBase.h:102
FVector AnimationLocOffset
Definition SimulationModuleBase.h:101
FName BoneName
Definition SimulationModuleBase.h:99
uint16 AnimFlags
Definition SimulationModuleBase.h:100
FSimModuleAnimationData()
Definition SimulationModuleBase.h:90
Definition SimulationModuleBase.h:567
DEFINE_CHAOSSIMTYPENAME(FSimOutputData)
virtual UE_API void FillOutputState(const ISimulationModuleBase *SimModule)
Definition SimulationModuleBase.cpp:143
int ModuleGuid
Definition SimulationModuleBase.h:579
FString DebugString
Definition SimulationModuleBase.h:583
virtual bool IsEnabled()
Definition SimulationModuleBase.h:572
virtual ~FSimOutputData()
Definition SimulationModuleBase.h:570
virtual FString ToString()
Definition SimulationModuleBase.h:582
FSimModuleAnimationData AnimationData
Definition SimulationModuleBase.h:578
bool bEnabled
Definition SimulationModuleBase.h:577
virtual FSimOutputData * MakeNewData()=0
Definition GeometryParticlesfwd.h:87
Definition SimulationModuleBase.h:216
Definition Color.h:486
static CORE_API const FColor Blue
Definition Color.h:754
static CORE_API const FColor Magenta
Definition Color.h:757
Definition SimulationModuleBase.h:20
float DrawForceScaling
Definition SimulationModuleBase.h:23
bool DisableForces
Definition SimulationModuleBase.h:25
bool ShowMass
Definition SimulationModuleBase.h:21
float LevelSlopeThreshold
Definition SimulationModuleBase.h:24
bool ShowForces
Definition SimulationModuleBase.h:22
static CORE_API const TVector< double > ZeroVector
Definition Vector.h:79