32 RefVolume += GetVolume(P1, P2, P3,
Com);
116 return Stiffness *
S;
128 const FSolverVec3 Normal = FSolverVec3::CrossProduct(P2 - P1, P3 - P1).GetSafeNormal();
139 const FSolverVec3 H = FSolverVec3::DotProduct(
B, P3 - P1) *
B + P1;
145 return GetArea(P1, P2, P3) * FSolverVec3::DotProduct(P1 + P2 + P3, GetNormal(P1, P2, P3,
Com));
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32 Size
Definition VulkanMemory.cpp:4034
Definition PBDVolumeConstraintBase.h:15
TArray< FSolverReal > GetWeights(const FSolverParticles &InParticles, const FSolverReal Alpha) const
Definition PBDVolumeConstraintBase.h:38
TArray< TVec3< int32 > > Constraints
Definition PBDVolumeConstraintBase.h:122
virtual ~FPBDVolumeConstraintBase()
Definition PBDVolumeConstraintBase.h:36
FPBDVolumeConstraintBase(const FSolverParticles &InParticles, TArray< TVec3< int32 > > &&InConstraints, const FSolverReal InStiffness=(FSolverReal) 1.)
Definition PBDVolumeConstraintBase.h:17
void SetStiffness(FSolverReal InStiffness)
Definition PBDVolumeConstraintBase.h:119
TArray< FSolverVec3 > GetGradients(const FSolverParticles &InParticles) const
Definition PBDVolumeConstraintBase.h:57
FSolverReal GetScalingFactor(const FSolverParticles &InParticles, const TArray< FSolverVec3 > &Grads, const TArray< FSolverReal > &W) const
Definition PBDVolumeConstraintBase.h:93
Definition PBDSoftsSolverParticles.h:20
Definition Constraints.Build.cs:6
void SetNum(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2308
Definition CollectionEmbeddedSpringConstraintFacade.cpp:6
FRealSingle FSolverReal
Definition PBDSoftsEvolutionFwd.h:31
TVector< FSolverReal, 3 > FSolverVec3
Definition PBDSoftsEvolutionFwd.h:33
FRealSingle FSolverReal
Definition SolverBody.h:38
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592