37 CollidingParticles.
Reset();
38 CollidingElements.Reset();
124 if (SkinnedTriangleMesh)
169 if (!bEnableSkinnedTriangleMeshCollisions)
175 Iter.Value().SetGeometryAndInit(Particles, Dt);
181 if (!bEnableSkinnedTriangleMeshCollisions)
234 Iter.Value().SetColliderThickness(CollisionThickness);
245 Iter.RemoveCurrent();
252 return bUseSelfCollisionSubstepsForSkinnedTriangleMeshes;
257 return bEnableSkinnedTriangleMeshCollisions;
262 return CollisionThickness;
267 return FMath::Max(ClothCollisionThickness.
GetLow(), ClothCollisionThickness.
GetHigh());
275 bool bEnableSkinnedTriangleMeshCollisions =
true;
276 bool bUseSelfCollisionSubstepsForSkinnedTriangleMeshes =
true;
290#if !defined(CHAOS_KINEMATIC_TRIANGLE_COLLISIONS_ISPC_ENABLED_DEFAULT)
291#define CHAOS_KINEMATIC_TRIANGLE_COLLISIONS_ISPC_ENABLED_DEFAULT 1
295#if !INTEL_ISPC || UE_BUILD_SHIPPING
298extern CHAOS_API bool bChaos_KinematicTriangleMesh_ISPC_Enabled;
#define check(expr)
Definition AssertionMacros.h:314
#define UE_CHAOS_DECLARE_PROPERTYCOLLECTION_NAME(PropertyName, Type)
Definition CollectionPropertyFacade.h:969
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
void Init()
Definition LockFreeList.h:4
#define CHAOS_KINEMATIC_TRIANGLE_COLLISIONS_ISPC_ENABLED_DEFAULT
Definition PBDKinematicTriangleMeshCollisions.h:291
Definition TriangleMesh.h:24
Definition CollectionPropertyFacade.h:49
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
int32 Num() const
Definition PBDFlatWeightMap.h:134
Definition PBDKinematicTriangleMeshCollisions.h:16
const FPBDFlatWeightMap & Thickness
Definition PBDKinematicTriangleMeshCollisions.h:80
CHAOS_API void Apply(FSolverParticlesRange &InParticles, const FSolverReal Dt) const
Definition PBDKinematicTriangleMeshCollisions.cpp:143
TConstArrayView< FPAndInvM > PAndInvM
Definition PBDKinematicTriangleMeshCollisions.h:88
void SetGeometry(const FTriangleMesh &InTriangleMesh, const TConstArrayView< FSolverVec3 > &InPositions, const TConstArrayView< FSolverVec3 > &InVelocities, const FTriangleMesh::TSpatialHashType< FSolverReal > &InSpatialHash)
Definition PBDKinematicTriangleMeshCollisions.h:42
const FTriangleMesh * GetTriangleMesh() const
Definition PBDKinematicTriangleMeshCollisions.h:77
const FTriangleMesh::TSpatialHashType< FSolverReal > * SpatialHash
Definition PBDKinematicTriangleMeshCollisions.h:90
static constexpr int32 MaxKinematicConnectionsPerPoint
Definition PBDKinematicTriangleMeshCollisions.h:18
void SetGeometry(const FTriangleMesh &InTriangleMesh, const TConstArrayView< FSolverVec3 > &InPositions, const TConstArrayView< FPAndInvM > &InPAndInvM, const TConstArrayView< FSolverVec3 > &InVelocities, const FTriangleMesh::TSpatialHashType< FSolverReal > &InSpatialHash)
Definition PBDKinematicTriangleMeshCollisions.h:51
FSolverReal Stiffness
Definition PBDKinematicTriangleMeshCollisions.h:82
const TArray< TMap< int32, FSolverReal > > & GetTimers() const
Definition PBDKinematicTriangleMeshCollisions.h:76
const TArray< int32 > & GetCollidingParticles() const
Definition PBDKinematicTriangleMeshCollisions.h:74
TConstArrayView< FSolverVec3 > Velocities
Definition PBDKinematicTriangleMeshCollisions.h:89
void Reset()
Definition PBDKinematicTriangleMeshCollisions.h:35
FSolverReal ColliderThickness
Definition PBDKinematicTriangleMeshCollisions.h:84
const TArray< TVector< int32, MaxKinematicConnectionsPerPoint > > & GetCollidingElements() const
Definition PBDKinematicTriangleMeshCollisions.h:75
const FTriangleMesh * TriangleMesh
Definition PBDKinematicTriangleMeshCollisions.h:86
TConstArrayView< FSolverVec3 > Positions
Definition PBDKinematicTriangleMeshCollisions.h:87
void SetStiffness(const FSolverReal InStiffness)
Definition PBDKinematicTriangleMeshCollisions.h:60
FPBDKinematicTriangleMeshCollisions(int32 InNumParticles, const FPBDFlatWeightMap &InThickness, const FPBDFlatWeightMap &InFrictionCoefficient, const FSolverReal InStiffness, const FSolverReal InColliderThickness)
Definition PBDKinematicTriangleMeshCollisions.h:20
void SetColliderThickness(const FSolverReal InColliderThickness)
Definition PBDKinematicTriangleMeshCollisions.h:65
int32 NumParticles
Definition PBDKinematicTriangleMeshCollisions.h:79
const FPBDFlatWeightMap & FrictionCoefficient
Definition PBDKinematicTriangleMeshCollisions.h:81
Definition PBDKinematicTriangleMeshCollisions.h:137
static constexpr FSolverReal DefaultFrictionCoefficient
Definition PBDKinematicTriangleMeshCollisions.h:140
bool GetUseSelfCollisionSubstepsForSkinnedTriangleMeshes() const
Definition PBDKinematicTriangleMeshCollisions.h:250
FPBDSkinnedTriangleMeshCollisionConstraints(int32 InNumParticles, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, const FCollectionPropertyConstFacade &PropertyCollection)
Definition PBDKinematicTriangleMeshCollisions.h:142
FSolverReal GetMaxClothCollisionThickness() const
Definition PBDKinematicTriangleMeshCollisions.h:265
void AddSkinnedTriangleMesh(const FParticleRangeIndex &Index, const FSkinnedTriangleMeshPtr &SkinnedTriangleMesh, const TArray< FSolverVec3 > &Velocities)
Definition PBDKinematicTriangleMeshCollisions.h:162
void Apply(FSolverParticlesRange &InParticles, const FSolverReal Dt) const
Definition PBDKinematicTriangleMeshCollisions.h:179
void OnCollisionRangeRemoved(int32 CollisionRangeId)
Definition PBDKinematicTriangleMeshCollisions.h:239
FSolverReal GetCollisionThickness() const
Definition PBDKinematicTriangleMeshCollisions.h:260
void Init(const FSolverParticlesRange &Particles, const FSolverReal Dt)
Definition PBDKinematicTriangleMeshCollisions.h:167
static constexpr FSolverReal DefaultClothCollisionThickness
Definition PBDKinematicTriangleMeshCollisions.h:139
void SetProperties(const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps)
Definition PBDKinematicTriangleMeshCollisions.h:191
bool IsEnabled() const
Definition PBDKinematicTriangleMeshCollisions.h:255
Definition PBDKinematicTriangleMeshCollisions.h:102
void SetGeometryAndInit(const FSolverParticlesRange &Particles, const FSolverReal Dt)
Definition PBDKinematicTriangleMeshCollisions.h:122
FPBDSkinnedTriangleMeshCollisions(int32 InNumParticles, const FSkinnedTriangleMeshPtr &InSkinnedTriangleMesh, const TArray< FSolverVec3 > &InVelocities, const FPBDFlatWeightMap &InThickness, const FPBDFlatWeightMap &InFrictionCoefficient, const FSolverReal InColliderThickness)
Definition PBDKinematicTriangleMeshCollisions.h:104
Definition SoftsSolverParticlesRange.h:12
Definition HierarchicalSpatialHash.h:214
void Reset(SizeType NewSize=0)
Definition Array.h:2246
void Init(const ElementType &Element, SizeType Number)
Definition Array.h:3043
Definition UnrealString.h.inl:34
Definition RefCounting.h:454
Definition CollectionEmbeddedSpringConstraintFacade.cpp:6
TVector< FSolverReal, 2 > FSolverVec2
Definition PBDSoftsEvolutionFwd.h:32
FRealSingle FSolverReal
Definition PBDSoftsEvolutionFwd.h:31
U16 Index
Definition radfft.cpp:71
Definition ParticlesRange.h:12