4#if !COMPILE_WITHOUT_UNREAL_SUPPORT
11#include "Containers/Set.h"
59 template<
typename SpatialAccelerator,
typename SolverParticlesOrRange>
60 UE_DEPRECATED(5.4,
"Use Init with CollidableSubMesh. This method is much less efficient as it recreates the CollidableSubMesh each call.")
100 template<
typename SolverParticlesOrRange>
104 const int32 Index1 = Constraint[0];
105 const int32 Index2 = Constraint[1];
109 if (Particles.InvM(Index1) > 0)
111 Particles.P(Index1) += Particles.InvM(Index1) *
Delta;
115 Particles.P(Index2) -= Particles.InvM(Index2) * Barys[ConstraintIndex][0] *
Delta;
119 Particles.P(
Index3) -= Particles.InvM(
Index3) * Barys[ConstraintIndex][1] *
Delta;
123 Particles.P(
Index4) -= Particles.InvM(
Index4) * Barys[ConstraintIndex][2] *
Delta;
127 template<
typename SolverParticlesOrRange>
153 const int32 Index1 = Constraint[0] - Offset;
154 const int32 Index2 = Constraint[1] - Offset;
163 switch (ConstraintTypes[ConstraintIndex])
166 case EConstraintType::Default:
168 case EConstraintType::GIAFlipped:
182 UE_DEPRECATED(5.6,
"Use KinematicCollisions.Thickness instead")
199 template<
typename SolverParticlesOrRange>
218 bool bGlobalIntersectionAnalysis;
222#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_6
223#if !defined(CHAOS_COLLISION_SPRING_ISPC_ENABLED_DEFAULT)
224#define CHAOS_COLLISION_SPRING_ISPC_ENABLED_DEFAULT 1
228UE_DEPRECATED(5.6,
"This variable has been renamed bChaos_KinematicTriangleMesh_ISPC_Enabled")
#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
void Init()
Definition LockFreeList.h:4
Definition TriangleMesh.h:24
Definition SoftsEvolutionLinearSystem.h:45
Definition PBDCollisionSpringConstraintsBase.h:24
void Apply(SolverParticlesOrRange &Particles, const FSolverReal Dt, const int32 ConstraintIndex) const
Definition PBDCollisionSpringConstraintsBase.h:101
FSolverReal KinematicColliderStiffness
Definition PBDCollisionSpringConstraintsBase.h:185
static constexpr FSolverReal DefaultProximityStiffness
Definition PBDCollisionSpringConstraintsBase.h:32
CHAOS_API void UpdateLinearSystem(const FSolverParticlesRange &Particles, const FSolverReal Dt, FEvolutionLinearSystem &LinearSystem) const
Definition PBDCollisionSpringConstraintsBase.cpp:423
TConstArrayView< int32 > GetFaceCollisionLayers() const
Definition PBDCollisionSpringConstraintsBase.h:140
void SetThicknessWeighted(const FSolverVec2 InThickness)
Definition PBDCollisionSpringConstraintsBase.h:97
const FPBDFlatWeightMap & GetThicknessWeighted() const
Definition PBDCollisionSpringConstraintsBase.h:84
static constexpr FSolverReal DefaultKinematicColliderStiffness
Definition PBDCollisionSpringConstraintsBase.h:30
FSolverReal GetMaxThickness() const
Definition PBDCollisionSpringConstraintsBase.h:82
FPBDFlatWeightMap ThicknessWeighted
Definition PBDCollisionSpringConstraintsBase.h:174
FSolverReal KinematicColliderThickness
Definition PBDCollisionSpringConstraintsBase.h:183
FPBDFlatWeightMap KinematicColliderFrictionCoefficient
Definition PBDCollisionSpringConstraintsBase.h:179
FSolverReal GetConstraintFrictionCoefficient(const int32 ConstraintIndex) const
Definition PBDCollisionSpringConstraintsBase.h:161
CHAOS_API FSolverVec3 GetDelta(const SolverParticlesOrRange &InParticles, const int32 i) const
FSolverReal Stiffness
Definition PBDCollisionSpringConstraintsBase.h:175
FSolverReal GetParticleThickness(int32 ParticleIndex) const
Definition PBDCollisionSpringConstraintsBase.h:83
bool GetGlobalIntersectionAnalysis() const
Definition PBDCollisionSpringConstraintsBase.h:86
static constexpr FSolverReal DefaultKinematicColliderFrictionCoefficient
Definition PBDCollisionSpringConstraintsBase.h:31
FPBDKinematicTriangleMeshCollisions KinematicCollisions
Definition PBDCollisionSpringConstraintsBase.h:180
void SetFrictionCoefficient(FSolverReal InFrictionCoefficient)
Definition PBDCollisionSpringConstraintsBase.h:98
CHAOS_API void Apply(SolverParticlesOrRange &InParticles, const FSolverReal Dt) const
const TArray< bool > & GetFlipNormals() const
Definition PBDCollisionSpringConstraintsBase.h:87
FSolverReal ProximityStiffness
Definition PBDCollisionSpringConstraintsBase.h:187
static constexpr FSolverReal DefaultKinematicColliderThickness
Definition PBDCollisionSpringConstraintsBase.h:29
int32 GetNumParticles() const
Definition PBDCollisionSpringConstraintsBase.h:191
const TArray< TVector< int32, 2 > > & GetVertexCollisionLayers() const
Definition PBDCollisionSpringConstraintsBase.h:141
static constexpr FSolverReal BackCompatThickness
Definition PBDCollisionSpringConstraintsBase.h:26
FSolverReal GetConstraintThickness(const int32 ConstraintIndex) const
Definition PBDCollisionSpringConstraintsBase.h:143
bool bOnlyCollideKinematics
Definition PBDCollisionSpringConstraintsBase.h:177
const TArray< TVec4< int32 > > & GetConstraints() const
Definition PBDCollisionSpringConstraintsBase.h:70
static constexpr FSolverReal BackCompatFrictionCoefficient
Definition PBDCollisionSpringConstraintsBase.h:28
const FTriangleMesh * GetKinematicColliderTriangleMesh() const
Definition PBDCollisionSpringConstraintsBase.h:94
static constexpr FSolverReal BackCompatStiffness
Definition PBDCollisionSpringConstraintsBase.h:27
void Apply(FSolverParticles &InParticles, const FSolverReal Dt, const TArray< int32 > &InConstraintIndices) const
Definition PBDCollisionSpringConstraintsBase.h:130
CHAOS_API void UpdateCollisionLayers(const TConstArrayView< int32 > &InFaceCollisionLayers)
Definition PBDCollisionSpringConstraintsBase.cpp:69
FSolverReal FrictionCoefficient
Definition PBDCollisionSpringConstraintsBase.h:176
const TArray< TMap< int32, FSolverReal > > & GetKinematicColliderTimers() const
Definition PBDCollisionSpringConstraintsBase.h:93
const TArray< FSolverVec3 > & GetBarys() const
Definition PBDCollisionSpringConstraintsBase.h:74
const FTriangleMesh & GetTriangleMesh() const
Definition PBDCollisionSpringConstraintsBase.h:95
FSolverReal GetThickness() const
Definition PBDCollisionSpringConstraintsBase.h:80
const TArray< int32 > & GetKinematicCollidingParticles() const
Definition PBDCollisionSpringConstraintsBase.h:92
virtual ~FPBDCollisionSpringConstraintsBase()
Definition PBDCollisionSpringConstraintsBase.h:52
void ResetKinematicCollider()
Definition PBDCollisionSpringConstraintsBase.h:54
Definition PBDFlatWeightMap.h:98
FSolverReal GetHigh() const
Definition PBDFlatWeightMap.h:159
FSolverReal GetLow() const
Definition PBDFlatWeightMap.h:156
void SetWeightedValue(const FSolverVec2 &InWeightedValue)
Definition PBDFlatWeightMap.h:142
bool HasWeightMap() const
Definition PBDFlatWeightMap.h:137
FSolverReal GetValue(int32 Index) const
Definition PBDFlatWeightMap.h:167
Definition PBDKinematicTriangleMeshCollisions.h:16
const FTriangleMesh * GetTriangleMesh() const
Definition PBDKinematicTriangleMeshCollisions.h:77
const TArray< TMap< int32, FSolverReal > > & GetTimers() const
Definition PBDKinematicTriangleMeshCollisions.h:76
const TArray< int32 > & GetCollidingParticles() const
Definition PBDKinematicTriangleMeshCollisions.h:74
void Reset()
Definition PBDKinematicTriangleMeshCollisions.h:35
Definition PBDTriangleMeshCollisions.h:18
Definition SoftsSolverParticlesRange.h:12
Definition PBDSoftsSolverParticles.h:20
Definition Constraints.Build.cs:6
Definition CollectionEmbeddedSpringConstraintFacade.cpp:6
TVector< FSolverReal, 2 > FSolverVec2
Definition PBDSoftsEvolutionFwd.h:32
FRealSingle FSolverReal
Definition PBDSoftsEvolutionFwd.h:31
Definition SkeletalMeshComponent.h:307
EConstraintType
Definition PBDConstraintBaseData.h:19
@ false
Definition radaudio_common.h:23