UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DeferredForcesModular.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
8
9#define UE_API CHAOSVEHICLESCORE_API
10
11enum class EForceFlags : uint32
12{
13 None = 0, // No flags.
14
15 AllowSubstepping = 1 << 0,
16 AccelChange = 1 << 1,
17 VelChange = 1 << 2,
18 IsLocalForce = 1 << 3,
19 LevelSlope = 1 << 4
20
21};
23
24
26
28{
29public:
30
53
78
100
119
138
140 {
141 ApplyForceDatas.Add(ApplyForceDataIn);
142 }
143
145 {
146 ApplyForceAtPositionDatas.Add(ApplyForceAtPositionDataIn);
147 }
148
150 {
151 ApplyForceAtCOMDatas.Add(ApplyForceAtPositionDataIn);
152 }
153
155 {
156 ApplyTorqueDatas.Add(ApplyTorqueDataIn);
157 }
158
160 {
161 ApplyImpulseDatas.Add(ApplyImpulseDataIn);
162 }
163
165 {
166 ApplyImpulseAtPositionDatas.Add(ApplyImpulseAtPositionDataIn);
167 }
168
170
172 , int TransformIndex
173 , int32 ParticleIdx
175 , const TManagedArray<FTransform>& Transforms
179
181 , int TransformIndex
182 , int32 ParticleIdx
184 , const FTransform& Transform
188
191 , int32 ParticleIdx
194
198 , int32 ParticleIdx
201
203
205 , const TManagedArray<FTransform>& Transforms
208
210 , const TManagedArray<FTransform3f>& Transforms
213
215
218
220
221private:
222
223 template<typename TransformType>
224 void ApplyTemplate(FGeometryCollectionPhysicsProxy* Proxy
225 , const TManagedArray<TransformType>& Transforms
228
233
234 TArray<FApplyForceData> ApplyForceDatas;
235 TArray<FApplyForceAtPositionData> ApplyForceAtCOMDatas;
236 TArray<FApplyForceAtPositionData> ApplyForceAtPositionDatas;
237 TArray<FAddTorqueInRadiansData> ApplyTorqueDatas;
238 TArray<FAddImpulseData> ApplyImpulseDatas;
239 TArray<FAddImpulseAtPositionData> ApplyImpulseAtPositionDatas;
240
241 FTransform ParticleOffsetTransform; // Odd rotation coming through from CU physics bodies
242};
243
244#undef UE_API
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 DeferredForcesModular.h:9
EForceFlags
Definition DeferredForcesModular.h:12
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition ParticleHandle.h:987
Definition DeferredForcesModular.h:28
void Add(const FAddImpulseAtPositionData &ApplyImpulseAtPositionDataIn)
Definition DeferredForcesModular.h:164
UE_API Chaos::FPBDRigidParticleHandle * GetParticleFromUniqueIndex(int32 ParticleUniqueIdx, const TArray< Chaos::FPBDRigidParticleHandle * > &Particles) const
Definition DeferredForcesModular.cpp:24
void AddCOM(const FApplyForceAtPositionData &ApplyForceAtPositionDataIn)
Definition DeferredForcesModular.h:149
UE_API Chaos::FPBDRigidParticleHandle * GetParticle(FGeometryCollectionPhysicsProxy *Proxy, int TransformIndex, int32 ParticleIdx, const FVector &PositionalOffset, const TManagedArray< FTransform > &Transforms, const TManagedArray< FTransform > &CollectionMassToLocal, const TManagedArray< int32 > &Parent, FTransform &TransformOut)
Definition DeferredForcesModular.cpp:41
void Add(const FAddImpulseData &ApplyImpulseDataIn)
Definition DeferredForcesModular.h:159
void Add(const FApplyForceAtPositionData &ApplyForceAtPositionDataIn)
Definition DeferredForcesModular.h:144
void Add(const FAddTorqueInRadiansData &ApplyTorqueDataIn)
Definition DeferredForcesModular.h:154
void Add(const FApplyForceData &ApplyForceDataIn)
Definition DeferredForcesModular.h:139
UE_API void Apply(FGeometryCollectionPhysicsProxy *Proxy, const TManagedArray< FTransform > &Transforms, const TManagedArray< FTransform > &CollectionMassToLocal, const TManagedArray< int32 > &Parent)
Definition DeferredForcesModular.cpp:231
UE_API Chaos::FPBDRigidParticleHandle * GetClusterParticle(TArray< Chaos::FPBDRigidClusteredParticleHandle * > &ClusterParticles)
Definition DeferredForcesModular.cpp:181
UE_API Chaos::FPBDRigidParticleHandle * GetParticle(const FTransform &OffsetTransform, FGeometryCollectionPhysicsProxy *Proxy, int32 ParticleIdx, const FVector &PositionalOffset, FTransform &TransformOut)
Definition GeometryCollectionPhysicsProxy.h:143
Definition Array.h:670
Definition ManagedArray.h:1099
Definition Color.h:486
Definition DeferredForcesModular.h:121
int32 ParticleIdx
Definition DeferredForcesModular.h:134
FTransform OffsetTransform
Definition DeferredForcesModular.h:132
FAddImpulseAtPositionData(const FTransform &OffsetTransformIn, int TransformIndexIn, int ParticleIndexIn, const FVector &ImpulseIn, const FVector &PositionIn)
Definition DeferredForcesModular.h:122
int TransformIndex
Definition DeferredForcesModular.h:133
FVector Position
Definition DeferredForcesModular.h:136
FVector Impulse
Definition DeferredForcesModular.h:135
Definition DeferredForcesModular.h:102
int32 ParticleIdx
Definition DeferredForcesModular.h:115
FVector Impulse
Definition DeferredForcesModular.h:116
FAddImpulseData(const FTransform &OffsetTransformIn, int TransformIndexIn, int ParticleIndexIn, const FVector &ImpulseIn, const bool bVelChangeIn)
Definition DeferredForcesModular.h:103
int TransformIndex
Definition DeferredForcesModular.h:114
EForceFlags Flags
Definition DeferredForcesModular.h:117
FTransform OffsetTransform
Definition DeferredForcesModular.h:113
Definition DeferredForcesModular.h:80
FTransform OffsetTransform
Definition DeferredForcesModular.h:93
int32 ParticleIdx
Definition DeferredForcesModular.h:95
EForceFlags Flags
Definition DeferredForcesModular.h:97
FVector Torque
Definition DeferredForcesModular.h:96
int TransformIndex
Definition DeferredForcesModular.h:94
FColor DebugColor
Definition DeferredForcesModular.h:98
FAddTorqueInRadiansData(const FTransform &OffsetTransformIn, int TransformIndexIn, int ParticleIndexIn, const FVector &TorqueIn, bool bAllowSubsteppingIn, bool bAccelChangeIn, const FColor &ColorIn)
Definition DeferredForcesModular.h:81
Definition DeferredForcesModular.h:55
FVector Position
Definition DeferredForcesModular.h:74
FVector Force
Definition DeferredForcesModular.h:73
int TransformIndex
Definition DeferredForcesModular.h:71
FTransform OffsetTransform
Definition DeferredForcesModular.h:70
EForceFlags Flags
Definition DeferredForcesModular.h:75
FColor DebugColor
Definition DeferredForcesModular.h:76
int32 ParticleIdx
Definition DeferredForcesModular.h:72
FApplyForceAtPositionData(const FTransform &OffsetTransformIn, int TransformIndexIn, int ParticleIndexIn, const FVector &ForceIn, const FVector &PositionIn, bool bAllowSubsteppingIn, bool bIsLocalForceIn, bool bLevelSlope, const FColor &ColorIn)
Definition DeferredForcesModular.h:56
Definition DeferredForcesModular.h:32
FApplyForceData(const FTransform &OffsetTransformIn, int TransformIndexIn, int ParticleIndexIn, const FVector &ForceIn, bool bAllowSubsteppingIn, bool bAccelChangeIn, bool bLevelSlope, const FColor &ColorIn)
Definition DeferredForcesModular.h:33
FVector Force
Definition DeferredForcesModular.h:49
int32 ParticleIdx
Definition DeferredForcesModular.h:48
int TransformIndex
Definition DeferredForcesModular.h:47
FColor DebugColor
Definition DeferredForcesModular.h:51
FTransform OffsetTransform
Definition DeferredForcesModular.h:46
EForceFlags Flags
Definition DeferredForcesModular.h:50