UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PBDRigidsEvolutionGBF.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
19#include "Chaos/CCDUtilities.h"
23
24namespace Chaos
25{
26 class FChaosArchive;
27 class IResimCacheBase;
28 class FEvolutionResimCache;
29
31
32 namespace CVars
33 {
40 }
41
43
45
49
51 {
52 public:
54
60
61 // Default settings for FChaosSolverConfiguration
62 static constexpr int32 DefaultNumPositionIterations = 8;
63 static constexpr int32 DefaultNumVelocityIterations = 2;
66 static constexpr FRealSingle DefaultCollisionMarginMax = 10.0f;
70 static constexpr int32 DefaultRestitutionThreshold = 1000;
71
79 bool InIsSingleThreaded = false);
81
82 virtual void SetName(const FString& InName)
83 {
86 }
87
92
97
102
107
112
113 UE_DEPRECATED(5.4, "Use SetPreSolveCallback")
115
120
128
129 void SetIsDeterministic(const bool bInIsDeterministic);
130
132
133 CHAOS_API void Advance(const FReal Dt, const FReal MaxStepDt, const int32 MaxSteps);
135
138
141
144
147
148 UE_DEPRECATED(5.5, "No longer used, see combined constraint in FPBDRigidsEvolutionGBF::GetJointCombinedConstraints")
150 UE_DEPRECATED(5.5, "No longer used, see combined constraint in FPBDRigidsEvolutionGBF::GetJointCombinedConstraints")
152
155
158
161
162
163 //
164 // Particle API (most of the particle API is in the base class)
165 //
166
172 CHAOS_API void SetParticleTransform(FGeometryParticleHandle* InParticle, const FVec3& InPos, const FRotation3& InRot, const bool bIsTeleport, const bool bWakeUp = true);
173
180
186
187 /*
188 * [EXPERIMENTAL] Apply a momentumless correction to the particle transform, usually as a result of a server correction.
189 * This will shift the particle by the supplied delta and handle updating of friction anchors or anything else that might prevent or undo the shift.
190 * If bApplyToConnectedBodies is true, any particle attached by a joint with locked linear limits will also get moved.
191 * NOTE: must be called prior to Integrate() to be effective.
192 * NOTE: be careful with bApplyToConnectedBodies - only one particle in the connected graph should have ApplyParticleTransformCorrectionDelta called on
193 * it, otherwise you will get multiple particles trying to recorrect each other leading to very strange behaviour.
194 * Use @param ExcludeConnections to exclude particles from being corrected, this includes particles connected to the excluded particle as long as they are not connected to a non-excluded particle.
195 */
197
198 /*
199 * [EXPERIMENTAL] Similar to ApplyParticleTransformCorrectionDelta, but supplied an absolute transform to jump to. This is used for snaps.
200 */
202
203 /*
204 * [EXPERIMENTAL] Apply sleep state on connected particles that are dynamic
205 */
207
211 CHAOS_API void OnParticleMoved(FGeometryParticleHandle* InParticle, const FVec3& PrevX, const FRotation3& PrevR, const bool bIsTeleport, const bool bWakeUp = true);
212
217
222
227
232
234
235 virtual void DestroyTransientConstraints(FGeometryParticleHandle* Particle) override final;
236 virtual void DestroyTransientConstraints() override final;
237
241
243 {
244 Particles.GetNonDisabledDynamicView().ParallelFor([&](auto& Particle, int32 Index) {
245 Particle.Acceleration() = FVec3(0);
246 Particle.AngularAcceleration() = FVec3(0);
247 });
248 }
249
250 // Called when a the material changes one or more shapes on a particle. Required because collisions cache material properties
252
254
255 CHAOS_API void Integrate(FReal Dt);
256
257 CHAOS_API virtual void ApplyKinematicTargets(const FReal Dt, const FReal StepFraction) override final;
258
260
263
265
266 // Create a joint constraint connecting two particles
268
269 // Destroy a joint constraint
271
272 // Change the settings of a joint constraint.
273 // NOTE: May recreate the joint which would change the handle pointer. (Currently only when changing linear/non-linear solver type)
275
277
278 // Resets VSmooth value to something plausible based on external forces to prevent object from going back to sleep if it was just impulsed.
279 template <bool bPersistent>
281 {
283
284 // Reset VSmooth to something roughly in the same direction as what V will be after integration.
285 // This is temp fix, if this is only re-computed after solve, island will get incorrectly put back to sleep even if it was just impulsed.
286 FReal FakeDT = (FReal)1. / (FReal)30.;
287 if (Particle.LinearImpulseVelocity().IsNearlyZero() == false || Particle.Acceleration().IsNearlyZero() == false)
288 {
289 const FVec3 PredictedLinearVelocity = Particle.GetV() + Particle.Acceleration() * FakeDT + Particle.LinearImpulseVelocity();
291 }
292 if (Particle.AngularImpulseVelocity().IsNearlyZero() == false || Particle.AngularAcceleration().IsNearlyZero() == false)
293 {
294 const FVec3 PredictedAngularVelocity = Particle.GetW() + Particle.AngularAcceleration() * FakeDT + Particle.AngularImpulseVelocity();
296 }
297 }
298
299 template<typename TParticleView>
300 UE_DEPRECATED(5.4, "Use Integrate(Dt)")
302
303 // Internal used only
304 UE_INTERNAL virtual void WaitIntegrationComplete() override;
305
306 protected:
307
309
311
312 // Update the particle transform and fix collision anchors (used by client corrections)
314
315 /* Get all the particles that are connected to InParticle by a joint with locked position limits
316 * Use @param ExcludeConnections to exclude particles, this includes particles connected to the excluded particle as long as they are not connected to a non-excluded particle. */
318
320
325
327
328 template <typename LambdaType>
330
332
336
341
349
350 // @todo(chaos): evolution and collision constraints should not know about ISimCallbackObject. Fix this.
354
356
358
359 // Used to track whether we have applied the latest Inertia Conditioning Cvars
361
362#if CHAOS_EVOLUTION_COLLISION_TESTMODE
364#endif
365
366#if CHAOS_DEBUG_DRAW
367 public:
368 void SetDebugDrawScene(const ChaosDD::Private::FChaosDDScenePtr& InCDDScene);
369
370 private:
371 ChaosDD::Private::FChaosDDScenePtr CDDScene;
372 ChaosDD::Private::FChaosDDTimelinePtr CDDTickTimeline;
373#endif
374 };
375
376}
377
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define FORCEINLINE
Definition AndroidPlatform.h:140
#define UE_INTERNAL
Definition CoreMiscDefines.h:345
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
Definition CCDUtilities.h:84
Definition ChaosArchive.h:167
Definition Defines.h:85
Container class for all character ground constraints on the physics thread.
Definition CharacterGroundConstraintContainer.h:228
Definition EvolutionResimCache.h:14
Definition PBDCollisionConstraints.h:49
void SetName(const FSharedDebugName &InName)
Definition PBDCollisionConstraints.h:73
Definition PBDJointConstraints.h:28
Definition PBDJointConstraints.h:168
Definition PBDJointConstraintTypes.h:114
Definition PBDRigidsEvolution.h:271
FSharedDebugName EvolutionName
Definition PBDRigidsEvolution.h:1076
virtual void SetName(const FString &InName)
Definition PBDRigidsEvolution.h:871
FPBDRigidsSOAs & Particles
Definition PBDRigidsEvolution.h:967
THandleArray< FChaosPhysicsMaterial > & SolverPhysicsMaterials
Definition PBDRigidsEvolution.h:968
Definition PBDRigidsEvolutionGBF.h:51
FORCEINLINE const FRigidClustering & GetRigidClustering() const
Definition PBDRigidsEvolutionGBF.h:145
FCharacterGroundConstraintContainer CharacterGroundConstraints
Definition PBDRigidsEvolutionGBF.h:335
CHAOS_API void SetParticleVelocities(FGeometryParticleHandle *InParticle, const FVec3 &InV, const FVec3f &InW)
Definition PBDRigidsEvolutionGBF.cpp:2001
void SetPostIntegrateCallback(const FPBDRigidsEvolutionCallback &Cb)
Definition PBDRigidsEvolutionGBF.h:93
void SetPostSolveCallback(const FPBDRigidsEvolutionCallback &Cb)
Definition PBDRigidsEvolutionGBF.h:103
FORCEINLINE const FJointConstraints & GetJointCombinedConstraints() const
Definition PBDRigidsEvolutionGBF.h:154
FCollisionConstraints CollisionConstraints
Definition PBDRigidsEvolutionGBF.h:338
FORCEINLINE const FCollisionDetector & GetCollisionDetector() const
Definition PBDRigidsEvolutionGBF.h:140
CHAOS_API void AdvanceOneTimeStep(const FReal dt, const FSubStepInfo &SubStepInfo=FSubStepInfo())
Definition PBDRigidsEvolutionGBF.cpp:405
void SetShockPropagationIterations(const int32 InPositionIts, const int32 InVelocityIts)
Definition PBDRigidsEvolutionGBF.cpp:1298
FPBDRigidsEvolutionCallback PostIntegrateCallback
Definition PBDRigidsEvolutionGBF.h:343
FORCEINLINE void DoInternalParticleInitilization(const FGeometryParticleHandle *OldParticle, FGeometryParticleHandle *NewParticle)
Definition PBDRigidsEvolutionGBF.h:121
FPBDRigidsEvolutionInternalHandleCallback InternalParticleInitilization
Definition PBDRigidsEvolutionGBF.h:347
void ApplyMidPhaseModifier(FReal Dt)
Definition PBDRigidsEvolutionGBF.cpp:1277
static constexpr FRealSingle DefaultCollisionCullDistance
Definition PBDRigidsEvolutionGBF.h:67
FORCEINLINE FCollisionDetector & GetCollisionDetector()
Definition PBDRigidsEvolutionGBF.h:139
FRigidClustering Clustering
Definition PBDRigidsEvolutionGBF.h:331
TArray< FGeometryParticleHandle * > GetConnectedParticles(FGeometryParticleHandle *InParticle, const TArray< FParticleID > &ExcludeConnections=TArray< FParticleID >())
Definition PBDRigidsEvolutionGBF.cpp:1938
FEvolutionResimCache * GetCurrentStepResimCache()
Definition PBDRigidsEvolutionGBF.h:321
FORCEINLINE FCharacterGroundConstraintContainer & GetCharacterGroundConstraints()
Definition PBDRigidsEvolutionGBF.h:159
FGravityForces GravityForces
Definition PBDRigidsEvolutionGBF.h:337
CHAOS_API void OnParticleMoved(FGeometryParticleHandle *InParticle, const FVec3 &PrevX, const FRotation3 &PrevR, const bool bIsTeleport, const bool bWakeUp=true)
Definition PBDRigidsEvolutionGBF.cpp:1805
FORCEINLINE const FPBDSuspensionConstraints & GetSuspensionConstraints() const
Definition PBDRigidsEvolutionGBF.h:157
CHAOS_API void AdvanceOneTimeStepImpl(const FReal Dt, const FSubStepInfo &SubStepInfo)
Definition PBDRigidsEvolutionGBF.cpp:528
static constexpr int32 DefaultNumVelocityIterations
Definition PBDRigidsEvolutionGBF.h:63
CHAOS_API void Integrate(FReal Dt)
Definition PBDRigidsEvolutionGBF.cpp:856
virtual CHAOS_API void SetParticleTransformSwept(FGeometryParticleHandle *InParticle, const FVec3 &InPos, const FRotation3 &InRot, const bool bIsTeleport)
Definition PBDRigidsEvolutionGBF.cpp:1749
CHAOS_API void SetParticleMassProps(FPBDRigidParticleHandle *Rigid, const FParticleMassProps &MassProperties)
Definition PBDRigidsEvolutionGBF.cpp:1862
FPBDRigidsEvolutionCallback PostDetectCollisionsCallback
Definition PBDRigidsEvolutionGBF.h:344
FSpatialAccelerationCollisionDetector CollisionDetector
Definition PBDRigidsEvolutionGBF.h:340
FORCEINLINE const FGravityForces & GetGravityForces() const
Definition PBDRigidsEvolutionGBF.h:143
static constexpr FRealSingle DefaultCollisionMarginFraction
Definition PBDRigidsEvolutionGBF.h:65
CHAOS_API void ApplyParticleTransformCorrectionDelta(FGeometryParticleHandle *InParticle, const FVec3 &InPosDelta, const FVec3 &InRotDelta, const bool bApplyToConnectedBodies, const bool bInRecalculateFrictionOnConnectedBodies=true, const TArray< FParticleID > &ExcludeConnections=TArray< FParticleID >())
Definition PBDRigidsEvolutionGBF.cpp:1868
CHAOS_API void SetParticleDynamics(FPBDRigidParticleHandle *Rigid, const FParticleDynamics &Dynamics)
Definition PBDRigidsEvolutionGBF.cpp:1855
CHAOS_API void ApplySleepOnConnectedParticles(FGeometryParticleHandle *InParticle)
Definition PBDRigidsEvolutionGBF.cpp:1923
static constexpr int32 DefaultRestitutionThreshold
Definition PBDRigidsEvolutionGBF.h:70
FORCEINLINE FPBDJointConstraints & GetJointConstraints()
Definition PBDRigidsEvolutionGBF.h:149
void ResetVSmoothFromForces(TPBDRigidParticleHandleImp< FReal, 3, bPersistent > &Particle)
Definition PBDRigidsEvolutionGBF.h:280
void SetIsDeterministic(const bool bInIsDeterministic)
Definition PBDRigidsEvolutionGBF.cpp:1289
void Integrate(const TParticleView &InParticles, FReal Dt)
Definition PBDRigidsEvolutionGBF.h:301
FPBDRigidsEvolutionCallback PreSolveCallback
Definition PBDRigidsEvolutionGBF.h:345
CHAOS_API ~FPBDRigidsEvolutionGBF()
Definition PBDRigidsEvolutionGBF.cpp:1393
void ReloadParticlesCache()
Definition PBDRigidsEvolutionGBF.cpp:432
FORCEINLINE FRigidClustering & GetRigidClustering()
Definition PBDRigidsEvolutionGBF.h:146
CHAOS_API FPBDJointConstraintHandle * CreateJointConstraint(const FParticlePair &InParticlePair, const FPBDJointSettings &InJointSettings)
Definition PBDRigidsEvolutionGBF.cpp:1415
const TArray< ISimCallbackObject * > * CCDModifiers
Definition PBDRigidsEvolutionGBF.h:352
static constexpr FRealSingle DefaultCollisionMaxPushOutVelocity
Definition PBDRigidsEvolutionGBF.h:68
static constexpr FRealSingle DefaultCollisionDepenetrationVelocity
Definition PBDRigidsEvolutionGBF.h:69
FORCEINLINE FJointConstraints & GetJointCombinedConstraints()
Definition PBDRigidsEvolutionGBF.h:153
FORCEINLINE FPBDSuspensionConstraints & GetSuspensionConstraints()
Definition PBDRigidsEvolutionGBF.h:156
CHAOS_API void ApplyParticleTransformCorrection(FGeometryParticleHandle *InParticle, const FVec3 &InPos, const FRotation3 &InRot, const bool bApplyToConnectedBodies, const bool bInRecalculateFrictionOnConnectedBodies=true, const TArray< FParticleID > &ExcludeConnections=TArray< FParticleID >())
Definition PBDRigidsEvolutionGBF.cpp:1877
virtual void DestroyTransientConstraints() override final
Definition PBDRigidsEvolutionGBF.cpp:1711
FPBDJointCombinedConstraints JointConstraints
Definition PBDRigidsEvolutionGBF.h:333
void ApplyParticleTransformCorrectionImpl(FGeometryParticleHandle *InParticle, const FRigidTransform3 &InTransform, const bool bInRecalculateFriction=true)
Definition PBDRigidsEvolutionGBF.cpp:1902
int32 InertiaConditioningEpoch
Definition PBDRigidsEvolutionGBF.h:360
static constexpr FRealSingle DefaultCollisionMarginMax
Definition PBDRigidsEvolutionGBF.h:66
void SetPreSolveCallback(const FPBDRigidsEvolutionCallback &Cb)
Definition PBDRigidsEvolutionGBF.h:98
CHAOS_API TUniquePtr< IResimCacheBase > CreateExternalResimCache() const
Definition PBDRigidsEvolutionGBF.cpp:1405
const TArray< ISimCallbackObject * > * MidPhaseModifiers
Definition PBDRigidsEvolutionGBF.h:351
CHAOS_API void Advance(const FReal Dt, const FReal MaxStepDt, const int32 MaxSteps)
Definition PBDRigidsEvolutionGBF.cpp:374
FORCEINLINE void SetInternalParticleInitilizationFunction(const FPBDRigidsEvolutionInternalHandleCallback &Cb)
Definition PBDRigidsEvolutionGBF.h:116
virtual UE_INTERNAL void WaitIntegrationComplete() override
Definition PBDRigidsEvolutionGBF.cpp:1136
FCCDManager CCDManager
Definition PBDRigidsEvolutionGBF.h:355
CHAOS_API void SetParticleKinematicTarget(FGeometryParticleHandle *ParticleHandle, const FKinematicTarget &NewKinematicTarget)
Definition PBDRigidsEvolutionGBF.cpp:1778
CHAOS_API void TransferJointConstraintCollisions()
Definition PBDRigidsEvolutionGBF.cpp:1518
void SetPreApplyCallback(const FPBDRigidsEvolutionCallback &Cb)
Definition PBDRigidsEvolutionGBF.h:114
FSpatialAccelerationBroadPhase & GetBroadPhase()
Definition PBDRigidsEvolutionGBF.h:264
CHAOS_API void DestroyJointConstraint(FPBDJointConstraintHandle *InJointHandle)
Definition PBDRigidsEvolutionGBF.cpp:1446
static constexpr int32 DefaultNumProjectionIterations
Definition PBDRigidsEvolutionGBF.h:64
static constexpr int32 DefaultNumPositionIterations
Definition PBDRigidsEvolutionGBF.h:62
void SetPreIntegrateCallback(const FPBDRigidsEvolutionCallback &Cb)
Definition PBDRigidsEvolutionGBF.h:88
void DestroyParticleCollisionsInAllocator(FGeometryParticleHandle *Particle)
Definition PBDRigidsEvolutionGBF.cpp:1690
CHAOS_API FPBDJointConstraintHandle * SetJointConstraintSettings(FPBDJointConstraintHandle *InJointHandle, const FPBDJointSettings &InJointSettings)
Definition PBDRigidsEvolutionGBF.cpp:1486
FORCEINLINE FGravityForces & GetGravityForces()
Definition PBDRigidsEvolutionGBF.h:142
FPBDRigidsEvolutionCallback PreIntegrateCallback
Definition PBDRigidsEvolutionGBF.h:342
FEvolutionResimCache * CurrentStepResimCacheImp
Definition PBDRigidsEvolutionGBF.h:348
FPBDRigidsEvolutionCallback PostSolveCallback
Definition PBDRigidsEvolutionGBF.h:346
virtual CHAOS_API void ApplyKinematicTargets(const FReal Dt, const FReal StepFraction) override final
Definition PBDRigidsEvolutionGBF.cpp:1061
void SetPostDetectCollisionsCallback(const FPBDRigidsEvolutionCallback &Cb)
Definition PBDRigidsEvolutionGBF.h:108
void ParticleMaterialChanged(FGeometryParticleHandle *Particle)
Definition PBDRigidsEvolutionGBF.cpp:2031
FORCEINLINE const FCharacterGroundConstraintContainer & GetCharacterGroundConstraints() const
Definition PBDRigidsEvolutionGBF.h:160
FORCEINLINE const FCollisionConstraints & GetCollisionConstraints() const
Definition PBDRigidsEvolutionGBF.h:137
virtual void ResetCollisions() override
Definition PBDRigidsEvolutionGBF.cpp:1316
void DispatchKinematicTargetsTasks(int32 DispatchBatchIndex, int32 NumParticles, FReal Dt, FReal StepFraction, bool IsLastStep, LambdaType ReturnHandle)
Definition PBDRigidsEvolutionGBF.cpp:1142
FPBDSuspensionConstraints SuspensionConstraints
Definition PBDRigidsEvolutionGBF.h:334
void UpdateCollisionSolverType()
Definition PBDRigidsEvolutionGBF.cpp:502
const TArray< ISimCallbackObject * > * CollisionModifiers
Definition PBDRigidsEvolutionGBF.h:353
CHAOS_API const FChaosPhysicsMaterial * GetFirstClusteredPhysicsMaterial(const FGeometryParticleHandle *Particle) const
Definition PBDRigidsEvolutionGBF.cpp:2045
void UpdateInertiaConditioning()
Definition PBDRigidsEvolutionGBF.cpp:2078
FSpatialAccelerationBroadPhase BroadPhase
Definition PBDRigidsEvolutionGBF.h:339
bool bIsDeterministic
Definition PBDRigidsEvolutionGBF.h:357
CHAOS_API void SetCurrentStepResimCache(IResimCacheBase *InCurrentStepResimCache)
Definition PBDRigidsEvolutionGBF.cpp:1410
CHAOS_API void SetParticleTransform(FGeometryParticleHandle *InParticle, const FVec3 &InPos, const FRotation3 &InRot, const bool bIsTeleport, const bool bWakeUp=true)
Definition PBDRigidsEvolutionGBF.cpp:1719
virtual void SetName(const FString &InName)
Definition PBDRigidsEvolutionGBF.h:82
FORCEINLINE FCollisionConstraints & GetCollisionConstraints()
Definition PBDRigidsEvolutionGBF.h:136
Definition PBDRigidsSOAs.h:269
const TParticleView< FPBDRigidParticles > & GetNonDisabledDynamicView() const
Definition PBDRigidsSOAs.h:926
Definition PBDSuspensionConstraints.h:53
Definition ParticleDirtyFlags.h:177
Definition ParticleDirtyFlags.h:293
Definition PerParticleExternalForces.h:10
Definition PerParticleGravity.h:11
Definition PBDRigidClustering.h:56
Definition SpatialAccelerationBroadPhase.h:335
Definition SpatialAccelerationCollisionDetector.h:14
Definition ResimCacheBase.h:11
Definition ParticleHandle.h:436
Definition Handles.h:152
const TVector< T, d > GetW() const
Definition ParticleHandle.h:957
const TVector< T, d > GetV() const
Definition ParticleHandle.h:948
Definition ParticleHandle.h:987
const TVector< T, d > & AngularImpulseVelocity() const
Definition ParticleHandle.h:1172
const TVector< T, d > & LinearImpulseVelocity() const
Definition ParticleHandle.h:1168
const TVector< T, d > & WSmooth() const
Definition ParticleHandle.h:1148
const TVector< T, d > & Acceleration() const
Definition ParticleHandle.h:1152
const TVector< T, d > & AngularAcceleration() const
Definition ParticleHandle.h:1161
const TVector< T, d > & VSmooth() const
Definition ParticleHandle.h:1144
Definition ParticleIterator.h:639
Definition Vector.h:407
Definition Array.h:670
Definition UniquePtr.h:107
CHAOS_API int32 ChaosSolverDrawCCDThresholds
bool bChaosCollisionCCDUseTightBoundingBox
Definition PBDRigidsEvolutionGBF.cpp:69
int32 ChaosCollisionCCDConstraintMaxProcessCount
Definition CCDUtilities.cpp:32
FRealSingle HackMaxVelocity
Definition PBDRigidsEvolutionGBF.cpp:52
FRealSingle SmoothedPositionLerpRate
Definition PBDRigidsEvolutionGBF.cpp:62
FRealSingle HackMaxAngularVelocity
Definition PBDRigidsEvolutionGBF.cpp:49
Definition SkeletalMeshComponent.h:307
FRealDouble FReal
Definition Real.h:22
float FRealSingle
Definition Real.h:14
TVector< FReal, 3 > FVec3
Definition Core.h:17
CHAOS_API int32 AccelerationStructureUseDynamicTree
Definition PBDRigidsEvolution.cpp:43
FAutoConsoleVariableRef CVars[]
Definition MassProcessingPhaseManager.cpp:29
U16 Index
Definition radfft.cpp:71
Definition PBDJointConstraints.h:480
FPBDJointConstraints LinearConstraints
Definition PBDJointConstraints.h:488
Definition PhysicsSolverBase.h:62
Definition PhysSubstepTasks.h:18
static constexpr UE_FORCEINLINE_HINT T Lerp(const T &A, const T &B, const U &Alpha)
Definition UnrealMathUtility.h:1116
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592