23class FPBDCollisionConstraints;
25class FPBDCollisionConstraint;
67 const int32 NumCollisionsPerBlock = 1000,
68 const FReal RestitutionThreshold =
FReal(2000));
127 UE_DEPRECATED(5.6,
"Not supported. Use FPBDRigidsEvolutionGBF::ApplyMidPhaseModifier")
175 return CollisionSolverType;
195 return bCanDisableContacts;
205 return RestitutionThreshold;
215 return bEnableCollisions;
225 return bEnableRestitution;
231 GravitySize = GravityDirection.SafeNormalize();
236 return GravityDirection;
254 constexpr float MaxDepenetrationVelocity = 1e10f;
357 int32 NumActivePointConstraints;
365 FReal RestitutionThreshold;
366 bool bEnableCollisions;
367 bool bEnableRestitution;
368 bool bHandlesEnabled;
369 bool bEnableEdgePruning;
370 bool bIsDeterministic;
375 bool bCanDisableContacts;
380 FVec3 GravityDirection;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#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 CollisionContext.h:17
bool bAllowManifolds
Definition CollisionContext.h:59
const FString & GetName() const
Definition CollisionContext.h:73
FSharedDebugName EvolutionName
Definition CollisionContext.h:71
FReal BoundsExpansion
Definition CollisionContext.h:36
FReal BoundsVelocityInflation
Definition CollisionContext.h:39
FReal MaxVelocityBoundsExpansionMACD
Definition CollisionContext.h:48
FReal BoundsVelocityInflationMACD
Definition CollisionContext.h:45
FReal MaxVelocityBoundsExpansion
Definition CollisionContext.h:42
FPBDConstraintContainer * ConstraintContainer
Definition ConstraintHandle.h:213
A handle to a contact constraint.
Definition PBDCollisionConstraintHandle.h:49
virtual void SetEnabled(bool InEnabled) override final
Definition PBDCollisionConstraints.h:421
const FPBDCollisionConstraint & GetContact() const
Definition PBDCollisionConstraints.h:406
bool GetCCDEnabled() const
Definition PBDCollisionConstraints.h:416
virtual bool IsProbe() const override final
Definition PBDCollisionConstraints.h:431
virtual bool IsEnabled() const override final
Definition PBDCollisionConstraints.h:426
FVec3 GetAccumulatedImpulse() const
Definition PBDCollisionConstraints.h:436
virtual FParticlePair GetConstrainedParticles() const override final
Definition PBDCollisionConstraints.h:441
const FPBDCollisionConstraints * ConcreteContainer() const
Definition PBDCollisionConstraints.h:396
A contact constraint.
Definition PBDCollisionConstraint.h:225
FGeometryParticleHandle * GetParticle0() const
Definition PBDCollisionConstraint.h:349
FGeometryParticleHandle * GetParticle1() const
Definition PBDCollisionConstraint.h:350
bool GetIsProbe() const
Definition PBDCollisionConstraint.h:418
void SetDisabled(bool bInDisabled)
Definition PBDCollisionConstraint.h:410
bool GetCCDEnabled() const
Definition PBDCollisionConstraint.h:290
FVec3f AccumulatedImpulse
Definition PBDCollisionConstraint.h:978
bool GetDisabled() const
Definition PBDCollisionConstraint.h:413
Definition PBDCollisionConstraints.h:49
virtual void PrepareTick() override final
Definition PBDCollisionConstraints.h:165
CHAOS_API void DisableHandles()
Definition PBDCollisionConstraints.cpp:411
CHAOS_API void ApplyCollisionModifier(const TArray< ISimCallbackObject * > &CollisionModifiers, FReal Dt)
Definition PBDCollisionConstraints.cpp:622
CHAOS_API void EndDetectCollisions()
Called after collision detection to finalize the contacts.
Definition PBDCollisionConstraints.cpp:570
const FPBDCollisionSolverSettings & GetSolverSettings() const
Definition PBDCollisionConstraints.h:311
CHAOS_API FHandles GetConstraintHandles() const
Definition PBDCollisionConstraints.cpp:417
virtual CHAOS_API ~FPBDCollisionConstraints()
Definition PBDCollisionConstraints.cpp:361
virtual CHAOS_API void AddConstraintsToGraph(Private::FPBDIslandManager &IslandManager) override final
Definition PBDCollisionConstraints.cpp:653
void SetVelocityFrictionIterations(const int32 InNumIterations)
Definition PBDCollisionConstraints.h:271
void SetDepenetrationVelocity(const FRealSingle InVel)
Definition PBDCollisionConstraints.h:249
void SetVelocityShockPropagationIterations(const int32 InNumIterations)
Definition PBDCollisionConstraints.h:281
void ApplyMidPhaseModifier(const TArray< ISimCallbackObject * > &MidPhaseModifiers, FReal Dt)
Definition PBDCollisionConstraints.h:128
void SetSolverType(const Private::ECollisionSolverType InSolverType)
Definition PBDCollisionConstraints.h:179
bool GetRestitutionEnabled() const
Definition PBDCollisionConstraints.h:223
virtual void UnprepareTick() override final
Definition PBDCollisionConstraints.h:166
Private::FCollisionConstraintAllocator & GetConstraintAllocator()
Definition PBDCollisionConstraints.h:307
void SetRestitutionEnabled(bool bInEnableRestitution)
Definition PBDCollisionConstraints.h:218
void SetMaxPushOutVelocity(const FReal InMaxPushOutVelocity)
Definition PBDCollisionConstraints.h:244
virtual CHAOS_API TUniquePtr< FConstraintContainerSolver > CreateGroupSolver(const int32 Priority) override final
Definition PBDCollisionConstraints.cpp:371
CHAOS_API void UpdateConstraintMaterialProperties(FPBDCollisionConstraint &Contact)
Definition PBDCollisionConstraints.cpp:445
CHAOS_API const FPBDCollisionConstraint & GetConstConstraint(int32 Index) const
Definition PBDCollisionConstraints.cpp:765
virtual CHAOS_API void DisconnectConstraints(const TSet< FGeometryParticleHandle * > &ParticleHandles) override
Remove all constraints associated with the particles - called when particles are destroyed.
Definition PBDCollisionConstraints.cpp:640
CHAOS_API FConstHandles GetConstConstraintHandles() const
Definition PBDCollisionConstraints.cpp:422
friend class FPBDCollisionConstraintHandle
Definition PBDCollisionConstraints.h:51
void SetVelocityBoundsExpansion(const FReal BoundsVelocityMultiplier, const FReal MaxVelocityBoundsExpansion)
Definition PBDCollisionConstraints.h:330
virtual void ResetConstraints() override final
Definition PBDCollisionConstraints.h:163
bool GetCanDisableContacts() const
Definition PBDCollisionConstraints.h:193
void SetName(const FSharedDebugName &InName)
Definition PBDCollisionConstraints.h:73
CHAOS_API void BeginDetectCollisions()
Called before collision detection to reset contacts.
Definition PBDCollisionConstraints.cpp:563
void SetCanDisableContacts(bool bInCanDisableContacts)
Definition PBDCollisionConstraints.h:188
void SetAllowManifolds(const bool bAllowManifolds)
Definition PBDCollisionConstraints.h:342
const FCollisionDetectorSettings & GetDetectorSettings() const
Definition PBDCollisionConstraints.h:318
FReal GetRestitutionThreshold() const
Definition PBDCollisionConstraints.h:203
CHAOS_API void PruneEdgeCollisions()
Definition PBDCollisionConstraints.cpp:779
void SetCullDistance(const FReal InCullDistance)
Definition PBDCollisionConstraints.h:325
void SetIsDeterministic(const bool bInIsDeterministic)
Enable or disable determinism. Support for determinism requires that we sort active constraints each ...
Definition PBDCollisionConstraints.cpp:400
bool GetIsDeterministic() const
Get determinism. Support for determinism requires that we sort active constraints each tick,...
Definition PBDCollisionConstraints.cpp:406
CHAOS_API void Reset()
Definition PBDCollisionConstraints.cpp:556
virtual CHAOS_API TUniquePtr< FConstraintContainerSolver > CreateSceneSolver(const int32 Priority) override final
Definition PBDCollisionConstraints.cpp:365
CHAOS_API void BeginFrame()
Definition PBDCollisionConstraints.cpp:551
int32 NumConstraints() const
Definition PBDCollisionConstraints.h:291
CHAOS_API void DetectProbeCollisions(FReal Dt)
Called after collision resolution in order to detect probes.
Definition PBDCollisionConstraints.cpp:582
void SetSolverSettings(const FPBDCollisionSolverSettings &InSettings)
Definition PBDCollisionConstraints.h:313
void SetRestitutionThreshold(FReal InRestitutionThreshold)
Definition PBDCollisionConstraints.h:198
TArrayView< FPBDCollisionConstraint *const > FHandles
Definition PBDCollisionConstraints.h:56
CHAOS_API void RemoveConstraints(const TSet< FGeometryParticleHandle * > &ParticleHandle)
Definition PBDCollisionConstraints.cpp:645
bool GetCollisionsEnabled() const
Definition PBDCollisionConstraints.h:213
void SetPositionFrictionIterations(const int32 InNumIterations)
Definition PBDCollisionConstraints.h:266
void SetGravity(const FVec3 &InGravity)
Definition PBDCollisionConstraints.h:228
bool GetHandlesEnabled() const
Definition PBDCollisionConstraints.h:78
virtual int32 GetNumConstraints() const override final
Definition PBDCollisionConstraints.h:162
TArrayView< FPBDCollisionConstraint *const > GetConstraints() const
Definition PBDCollisionConstraints.h:296
CHAOS_API const FPBDCollisionConstraint & GetConstraint(int32 Index) const
Definition PBDCollisionConstraints.cpp:758
void SetDetectorSettings(const FCollisionDetectorSettings &InSettings)
Definition PBDCollisionConstraints.h:320
void SetPositionShockPropagationIterations(const int32 InNumIterations)
Definition PBDCollisionConstraints.h:276
void SetCollisionsEnabled(bool bInEnableCollisions)
Definition PBDCollisionConstraints.h:208
Private::ECollisionSolverType GetSolverType() const
Definition PBDCollisionConstraints.h:173
void DisableConstraints(const TSet< FGeometryParticleHandle * > &ParticleHandle)
Definition PBDCollisionConstraints.h:157
FVec3 GetGravityDirection() const
Definition PBDCollisionConstraints.h:234
TArrayView< const FPBDCollisionConstraint *const > FConstHandles
Definition PBDCollisionConstraints.h:57
CHAOS_API void ApplyCCDModifier(const TArray< ISimCallbackObject * > &CCDModifiers, FReal Dt)
Definition PBDCollisionConstraints.cpp:613
const FString & GetName() const
Definition PBDCollisionConstraints.h:72
FReal GetGravitySize() const
Definition PBDCollisionConstraints.h:239
void SetVelocityBoundsExpansionMACD(const FReal BoundsVelocityMultiplier, const FReal MaxVelocityBoundsExpansion)
Definition PBDCollisionConstraints.h:336
bool IsShockPropagationEnabled() const
Definition PBDCollisionConstraints.h:286
Settings to control the low-level collision solver behaviour.
Definition PBDCollisionSolverSettings.h:12
int32 NumVelocityShockPropagationIterations
Definition PBDCollisionSolverSettings.h:47
int32 NumPositionFrictionIterations
Definition PBDCollisionSolverSettings.h:34
FRealSingle DepenetrationVelocity
Definition PBDCollisionSolverSettings.h:31
int32 NumPositionShockPropagationIterations
Definition PBDCollisionSolverSettings.h:44
int32 NumVelocityFrictionIterations
Definition PBDCollisionSolverSettings.h:41
FReal MaxPushOutVelocity
Definition PBDCollisionSolverSettings.h:27
Definition PBDConstraintContainer.h:19
Definition IndexedConstraintContainer.h:243
Definition PBDRigidsSOAs.h:269
Definition ChaosDebugName.h:17
Definition SimCallbackObject.h:68
An allocator and container of collision constraints that supports reuse of constraints from the previ...
Definition CollisionConstraintAllocator.h:234
TArrayView< FPBDCollisionConstraint *const > GetConstraints() const
The set of collision constraints for the current tick (created or reinstated)
Definition CollisionConstraintAllocator.h:291
Definition IslandManager.h:453
Definition ArrayCollectionArray.h:15
FConstraint * GetConstraint()
Definition ConstraintHandle.h:270
Definition Serializable.h:10
Definition ArrayView.h:139
Definition UniquePtr.h:107
ECollisionSolverType
Definition PBDCollisionConstraints.h:36
Definition SkeletalMeshComponent.h:307
FRealDouble FReal
Definition Real.h:22
float FRealSingle
Definition Real.h:14
Definition OverriddenPropertySet.cpp:45
U16 Index
Definition radfft.cpp:71