33 for (
int32 ElementIndex = 0; ElementIndex <
InMesh.Num(); ElementIndex++)
40 Volumes[ElementIndex] = FSolverVec3::DotProduct(FSolverVec3::CrossProduct(P2 - P1, P3 - P1),
P4 - P1) / (
FSolverReal)6.;
59 for (
int i = 0; i < 4; i++)
158 const int32 i1 = Constraint[0];
159 const int32 i2 = Constraint[1];
160 const int32 i3 = Constraint[2];
161 const int32 i4 = Constraint[3];
170 for (
int i = 0; i < 4; i++)
172 for (
int j = 0; j < 3; j++)
180 for (
int i = 0; i < 4; i++)
182 for (
int j = 0; j < 3; j++)
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_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
static TArray< TArray< int32 > > ComputeGraphColoring(const TArray< TVector< int32, N > > &Graph, const TDynamicParticles< T, 3 > &InParticles, const int32 GraphParticlesStart, const int32 GraphParticlesEnd)
Definition GraphColoring.h:24
Definition PBDSoftsSolverParticles.h:20
const FSolverVec3 & P(const int32 index) const
Definition PBDSoftsSolverParticles.h:36
Definition XPBDVolumeConstraints.h:17
TArray< FSolverReal > LambdaArray
Definition XPBDVolumeConstraints.h:193
TVec4< FSolverVec3 > GetVolumeDelta(const FSolverParticles &Particles, const FSolverReal Dt, const int32 ElementIndex) const
Definition XPBDVolumeConstraints.h:143
TArray< int32 > ConstraintsPerColorStartIndex
Definition XPBDVolumeConstraints.h:200
virtual void ApplyOneElement(FSolverParticles &Particles, const FSolverReal Dt, const int32 ElementIndex) const
Definition XPBDVolumeConstraints.h:54
void ApplyInSerial(FSolverParticles &Particles, const FSolverReal Dt) const
Definition XPBDVolumeConstraints.h:67
FXPBDVolumeConstraints(const Chaos::Softs::FSolverParticles &InParticles, int32 ParticleOffset, int32 ParticleCount, const TArray< TVector< int32, 4 > > &InMesh, const FSolverReal InStiffness)
Definition XPBDVolumeConstraints.h:21
FSolverReal Stiffness
Definition XPBDVolumeConstraints.h:199
TArray< FSolverReal > Volumes
Definition XPBDVolumeConstraints.h:198
virtual ~FXPBDVolumeConstraints()
Definition XPBDVolumeConstraints.h:46
TArray< TVector< int32, 4 > > MeshConstraints
Definition XPBDVolumeConstraints.h:197
void Init() const
Definition XPBDVolumeConstraints.h:49
void ApplyInParallel(FSolverParticles &Particles, const FSolverReal Dt) const
Definition XPBDVolumeConstraints.h:79
const T InvM(const int32 Index) const
Definition DynamicParticles.h:48
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
void Init(const ElementType &Element, SizeType Number)
Definition Array.h:3043
void SetNumUninitialized(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2369
Definition CollectionEmbeddedSpringConstraintFacade.cpp:6
FRealSingle FSolverReal
Definition PBDSoftsEvolutionFwd.h:31
TVector< FSolverReal, 3 > FSolverVec3
Definition PBDSoftsEvolutionFwd.h:33
void CHAOS_API PhysicsParallelFor(int32 InNum, TFunctionRef< void(int32)> InCallable, bool bForceSingleThreaded=false)
Definition Parallel.cpp:55
U16 Index
Definition radfft.cpp:71