27 class IResimCacheBase;
28 class FEvolutionResimCache;
82 virtual void SetName(
const FString& InName)
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")
245 Particle.Acceleration() =
FVec3(0);
246 Particle.AngularAcceleration() =
FVec3(0);
279 template <
bool bPersistent>
299 template<
typename TParticleView>
328 template <
typename LambdaType>
362#if CHAOS_EVOLUTION_COLLISION_TESTMODE
368 void SetDebugDrawScene(
const ChaosDD::Private::FChaosDDScenePtr&
InCDDScene);
371 ChaosDD::Private::FChaosDDScenePtr CDDScene;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define UE_INTERNAL
Definition CoreMiscDefines.h:345
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition CCDUtilities.h:84
Definition ChaosArchive.h:167
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
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 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