4#if !COMPILE_WITHOUT_UNREAL_SUPPORT
31 TArray<int32> PotentialIntersections = Hierarchy.FindAllIntersections(InParticles.P(Index));
32 for (int32 i = 0; i < PotentialIntersections.Num(); ++i)
34 int32 Index2 = PotentialIntersections[i];
35 if (Index == Index2 || DisabledCollisionElements.Contains(TVector<int32, 2>(Index, Index2)))
37 if ((InParticles.P(Index2) - InParticles.P(Index)).Size() < Height)
39 CriticalSection.Lock();
40 MConstraints.FindOrAdd(Index).Add(Index2);
41 CriticalSection.Unlock();
52 for (
int32 i = 0; i < MConstraints[
Index].Num(); ++i)
69template <
typename T,
int d>
70using TPBDCollisionSphereConstraints
UE_DEPRECATED(4.27,
"Deprecated. this class is to be deleted, use FPBDCollisionSphereConstraints instead") = FPBDCollisionSphereConstraints;
#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
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
Definition PBDCollisionSphereConstraints.h:19
void Apply(FPBDParticles &InParticles, const FReal Dt, const int32 Index) const override
Definition PBDCollisionSphereConstraints.h:48
FPBDCollisionSphereConstraints(const FPBDParticles &InParticles, const TSet< TVec2< int32 > > &DisabledCollisionElements, const FReal Dt, const FReal Height=(FReal) 0.)
Definition PBDCollisionSphereConstraints.h:21
virtual ~FPBDCollisionSphereConstraints()
Definition PBDCollisionSphereConstraints.h:46
Definition PerParticleRule.h:18
Definition BoundingVolumeHierarchy.h:60
Definition PBDParticles.h:12
Definition UnrealString.h.inl:34
Definition SkeletalMeshComponent.h:307
TSphere< FReal, 3 > FSphere
Definition ImplicitObject.h:36
void CHAOS_API PhysicsParallelFor(int32 InNum, TFunctionRef< void(int32)> InCallable, bool bForceSingleThreaded=false)
Definition Parallel.cpp:55
FRealDouble FReal
Definition Real.h:22
U16 Index
Definition radfft.cpp:71