18#include <unordered_map>
25 template <
typename T,
typename ParticleType>
33 ReferencePositions.SetNum(PAndInvM.
Num());
34 for (
int32 i = 0; i < PAndInvM.
Num(); ++i)
36 ReferencePositions[i] = PAndInvM[i].P;
133 if (ComponentIndex[
i1] == ComponentIndex[
i2])
142 if (FSolverVec3::DistSquared(this->ReferencePositions[
i1], this->ReferencePositions[
i2]) <
DiamSq)
183 struct FSphereSpatialEntry
190 return (*Points)[
Index];
193 template<
typename TPayloadType>
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define TRACE_CPUPROFILER_EVENT_SCOPE(Name)
Definition CpuProfilerTrace.h:528
UE::Math::TVector< double > FVector3d
Definition MathFwd.h:60
uint32 Size
Definition VulkanMemory.cpp:4034
Definition GaussSeidelSphereRepulsionConstraints.h:27
virtual ~FGaussSeidelSphereRepulsionConstraints()
Definition GaussSeidelSphereRepulsionConstraints.h:40
void ReturnSphereRepulsionConstraints(TArray< TArray< int32 > > &ExtraConstraints, TArray< TArray< int32 > > &ExtraIncidentElements, TArray< TArray< int32 > > &ExtraIncidentElementsLocal)
Definition GaussSeidelSphereRepulsionConstraints.h:165
void AddSphereRepulsionResidual(const ParticleType &InParticles, const int32 p, const T Dt, TVec3< T > &res)
Definition GaussSeidelSphereRepulsionConstraints.h:45
FGaussSeidelSphereRepulsionConstraints(FSolverReal InRadius, FSolverReal InStiffness, const ParticleType &InParticles, const FDeformableXPBDWeakConstraintParams &InParams)
Definition GaussSeidelSphereRepulsionConstraints.h:30
void UpdateSphereRepulsionConstraints(const FSolverParticles &Particles, const TArray< int32 > &SurfaceVertices, const TArray< int32 > &ComponentIndex)
Definition GaussSeidelSphereRepulsionConstraints.h:101
FSolverReal Radius
Definition GaussSeidelSphereRepulsionConstraints.h:179
void AddSphereRepulsionHessian(const int32 p, const T Dt, Chaos::PMatrix< T, 3, 3 > &ParticleHessian)
Definition GaussSeidelSphereRepulsionConstraints.h:50
void VisualizeAllBindings(const FSolverParticles &InParticles, const T Dt) const
Definition GaussSeidelSphereRepulsionConstraints.h:73
TArray< T > ConstraintStiffness
Definition GaussSeidelSphereRepulsionConstraints.h:181
FSolverReal Stiffness
Definition GaussSeidelSphereRepulsionConstraints.h:180
TArray< TVec2< int32 > > Constraints
Definition GaussSeidelSphereRepulsionConstraints.h:178
void AddSphereRepulsionResidualAndHessian(const ParticleType &InParticles, const int32 ConstraintIndex, const int32 LocalIndex, const T Dt, TVec3< T > &ParticleResidual, Chaos::PMatrix< T, 3, 3 > &ParticleHessian)
Definition GaussSeidelSphereRepulsionConstraints.h:55
void Init(const FSolverParticles &InParticles, const T Dt) const
Definition GaussSeidelSphereRepulsionConstraints.h:92
Definition PBDSoftsSolverParticles.h:20
Definition ArrayCollectionArray.h:15
const T M(const int32 Index) const
Definition DynamicParticles.h:43
const T InvM(const int32 Index) const
Definition DynamicParticles.h:48
const TArrayCollectionArray< TVector< T, d > > & XArray() const
Definition Particles.h:134
Definition HierarchicalSpatialHash.h:484
TArray< TVec2< PayloadType > > FindAllSelfProximities(int32 CellRadius, int32 MaxNumExpectedConnections, TFunctionRef< bool(const int32 Payload0, const int32 Payload1)> NarrowTest, bool bForceSingleThreaded=false) const
Definition HierarchicalSpatialHash.h:527
void InitializePoints(const ParticlesType &Particles, bool bForceSingleThreaded=false)
Definition HierarchicalSpatialHash.h:504
Definition Constraints.Build.cs:6
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition CollectionEmbeddedSpringConstraintFacade.cpp:6
FRealSingle FSolverReal
Definition PBDSoftsEvolutionFwd.h:31
TArray< TArray< int > > ComputeIncidentElements(const TArray< TVector< int32, d > > &Mesh, TArray< TArray< int32 > > *LocalIndex=nullptr)
Definition Utilities.h:1013
U16 Index
Definition radfft.cpp:71
static CORE_API const FColor Red
Definition Color.h:752
static CORE_API const FColor Green
Definition Color.h:753
static constexpr UE_FORCEINLINE_HINT T Square(const T A)
Definition UnrealMathUtility.h:578