14#if !defined(CHAOS_PER_PARTICLE_COLLISION_ISPC_ENABLED_DEFAULT)
15#define CHAOS_PER_PARTICLE_COLLISION_ISPC_ENABLED_DEFAULT 1
19#if !INTEL_ISPC || UE_BUILD_SHIPPING
102 template<
bool bLockAndWriteContacts,
bool bWithFriction,
bool bGeneratePlanarConstra
ints>
104 template<
bool bLockAndWriteContacts,
bool bWithFriction,
bool bGeneratePlanarConstra
ints>
106 template<
bool bLockAndWriteContacts,
bool bWithFriction>
#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
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
return true
Definition ExternalRpcRegistry.cpp:601
#define CHAOS_PER_PARTICLE_COLLISION_ISPC_ENABLED_DEFAULT
Definition PBDSoftBodyCollisionConstraint.h:15
const bool bChaos_SoftBodyCollision_ISPC_Enabled
Definition PBDSoftBodyCollisionConstraint.h:20
Definition CollectionPropertyFacade.h:49
Definition SoftsEvolutionLinearSystem.h:45
Definition PBDPlanarConstraints.h:12
TArray< FSolverVec3 > TargetNormals
Definition PBDPlanarConstraints.h:50
TArray< int32 > UniqueConstraintIndices
Definition PBDPlanarConstraints.h:48
TArray< FSolverVec3 > TargetPositions
Definition PBDPlanarConstraints.h:49
TArray< FSolverVec3 > TargetVelocities
Definition PBDPlanarConstraints.h:51
Definition PBDSoftBodyCollisionConstraint.h:39
FPBDSoftBodyCollisionConstraintBase(const TArray< FSolverRigidTransform3 > &InLastCollisionTransforms, FSolverReal InCollisionThickness, FSolverReal InFrictionCoefficient, bool bInUseCCD, FSolverReal InProximityStiffness, TArray< bool > *InCollisionParticleCollided=nullptr, TArray< FSolverVec3 > *InContacts=nullptr, TArray< FSolverVec3 > *InNormals=nullptr, TArray< FSolverReal > *InPhis=nullptr, const FSolverReal InSoftBodyCollisionThickness=0.f, bool bInEnableSimpleColliders=true, bool bInEnableComplexColliders=true, bool bInUsePlanarConstraintForSimpleColliders=bDefaultUsePlanarConstraintForSimpleColliders, bool bInUsePlanarConstraintForComplexColliders=bDefaultUsePlanarConstraintForComplexColliders, const TMap< FParticleRangeIndex, FPBDComplexColliderBoneData > &InComplexBoneData=TMap< FParticleRangeIndex, FPBDComplexColliderBoneData >())
Definition PBDSoftBodyCollisionConstraint.h:44
void OnCollisionRangeRemoved(int32 CollisionRangeId)
Definition PBDSoftBodyCollisionConstraint.h:89
FSolverReal ProximityStiffness
Definition PBDSoftBodyCollisionConstraint.h:122
TArray< FSolverVec3 > *const Normals
Definition PBDSoftBodyCollisionConstraint.h:135
TArray< FSolverVec3 > *const Contacts
Definition PBDSoftBodyCollisionConstraint.h:134
TArray< bool > *const CollisionParticleCollided
Definition PBDSoftBodyCollisionConstraint.h:132
CHAOS_API void Apply(FSolverParticlesRange &Particles, const FSolverReal Dt, const TArray< FSolverCollisionParticlesRange > &CollisionParticles)
Definition PBDSoftBodyCollisionConstraint.cpp:316
TMap< FParticleRangeIndex, FPBDComplexColliderBoneData > ComplexBoneData
Definition PBDSoftBodyCollisionConstraint.h:128
bool bUsePlanarConstraintForSimpleColliders
Definition PBDSoftBodyCollisionConstraint.h:125
FSolverReal FrictionCoefficient
Definition PBDSoftBodyCollisionConstraint.h:120
bool bWriteDebugContacts
Definition PBDSoftBodyCollisionConstraint.h:131
bool bUsePlanarConstraintForComplexColliders
Definition PBDSoftBodyCollisionConstraint.h:126
void SetWriteDebugContacts(bool bWrite)
Definition PBDSoftBodyCollisionConstraint.h:79
CHAOS_API void UpdateLinearSystem(const FSolverParticlesRange &Particles, const FSolverReal Dt, const TArray< FSolverCollisionParticlesRange > &CollisionParticles, FEvolutionLinearSystem &LinearSystem) const
Definition PBDSoftBodyCollisionConstraint.cpp:1216
FSolverReal SoftBodyCollisionThickness
Definition PBDSoftBodyCollisionConstraint.h:119
TArray< FSolverReal > *const Phis
Definition PBDSoftBodyCollisionConstraint.h:136
Chaos::Softs::FPBDSoftBodyCollisionConstraintBase::FPBDSoftBodyCollisionPlanarConstraint PlanarConstraint
static constexpr bool bDefaultUsePlanarConstraintForComplexColliders
Definition PBDSoftBodyCollisionConstraint.h:42
static constexpr bool bDefaultUsePlanarConstraintForSimpleColliders
Definition PBDSoftBodyCollisionConstraint.h:41
bool bEnableComplexColliders
Definition PBDSoftBodyCollisionConstraint.h:124
bool bUseCCD
Definition PBDSoftBodyCollisionConstraint.h:121
bool bEnableSimpleColliders
Definition PBDSoftBodyCollisionConstraint.h:123
FSolverReal CollisionThickness
Definition PBDSoftBodyCollisionConstraint.h:118
const TArray< FSolverRigidTransform3 > & LastCollisionTransforms
Definition PBDSoftBodyCollisionConstraint.h:117
FCriticalSection DebugMutex
Definition PBDSoftBodyCollisionConstraint.h:137
CHAOS_API void ApplyWithPlanarConstraints(FSolverParticlesRange &Particles, const FSolverReal Dt, const TArray< FSolverCollisionParticlesRange > &CollisionParticles, bool bGeneratePlanarConstraints)
Definition PBDSoftBodyCollisionConstraint.cpp:107
Definition PBDSoftBodyCollisionConstraint.h:168
CHAOS_API void SetProperties(const FCollectionPropertyConstFacade &PropertyCollection)
Definition PBDSoftBodyCollisionConstraint.cpp:1278
static constexpr FSolverReal DefaultSoftBodyCollisionThickness
Definition PBDSoftBodyCollisionConstraint.h:173
static constexpr FSolverReal DefaultCollisionThickness
Definition PBDSoftBodyCollisionConstraint.h:172
FPBDSoftBodyCollisionConstraint(const TArray< FSolverRigidTransform3 > &InLastCollisionTransforms, const FCollectionPropertyConstFacade &PropertyCollection, FSolverReal InMeshScale, TArray< bool > *InCollisionParticleCollided=nullptr, TArray< FSolverVec3 > *InContacts=nullptr, TArray< FSolverVec3 > *InNormals=nullptr, TArray< FSolverReal > *InPhis=nullptr, const TMap< FParticleRangeIndex, FPBDComplexColliderBoneData > &InComplexBoneData=TMap< FParticleRangeIndex, FPBDComplexColliderBoneData >())
Definition PBDSoftBodyCollisionConstraint.h:177
static constexpr FSolverReal DefaultProximityStiffness
Definition PBDSoftBodyCollisionConstraint.h:175
static constexpr FSolverReal DefaultFrictionCoefficient
Definition PBDSoftBodyCollisionConstraint.h:174
Definition SoftsSolverParticlesRange.h:12
Definition UnrealString.h.inl:34
Definition CollectionEmbeddedSpringConstraintFacade.cpp:6
FRealSingle FSolverReal
Definition PBDSoftsEvolutionFwd.h:31
@ false
Definition radaudio_common.h:23
Definition PBDSoftBodyCollisionConstraint.h:28
TConstArrayView< FSolverRotation3 > R
Definition PBDSoftBodyCollisionConstraint.h:34
TConstArrayView< FSolverVec3 > V
Definition PBDSoftBodyCollisionConstraint.h:33
TConstArrayView< int32 > MappedBoneIndices
Definition PBDSoftBodyCollisionConstraint.h:30
TConstArrayView< FSolverVec3 > X
Definition PBDSoftBodyCollisionConstraint.h:32
TConstArrayView< FSolverVec3 > W
Definition PBDSoftBodyCollisionConstraint.h:35
Definition PBDSoftBodyCollisionConstraint.h:140
TArray< int32 > & GetUniqueConstraintIndices()
Definition PBDSoftBodyCollisionConstraint.h:147
FPBDSoftBodyCollisionPlanarConstraint()=default
TArray< FSolverVec3 > & GetTargetNormals()
Definition PBDSoftBodyCollisionConstraint.h:149
TArray< FSolverVec3 > & GetTargetVelocities()
Definition PBDSoftBodyCollisionConstraint.h:150
FPBDSoftBodyCollisionPlanarConstraint(const FSolverReal InFriction)
Definition PBDSoftBodyCollisionConstraint.h:143
~FPBDSoftBodyCollisionPlanarConstraint()=default
TArray< FSolverVec3 > & GetTargetPositions()
Definition PBDSoftBodyCollisionConstraint.h:148