106 template<
typename SolverParticlesOrRange>
119 for (
int32 j = 0; j < 3; j++)
141 template<
typename SolverParticlesOrRange>
144 template<
typename SolverParticlesOrRange>
146 template<
typename SolverParticlesOrRange>
150 const int32 ParticleOffset;
151 const int32 ParticleCount;
168 bool bDmInitialized =
false;
183#if !defined(CHAOS_XPBD_STRETCH_BIAS_ELEMENT_ISPC_ENABLED_DEFAULT)
184#define CHAOS_XPBD_STRETCH_BIAS_ELEMENT_ISPC_ENABLED_DEFAULT 1
188#if !INTEL_ISPC || UE_BUILD_SHIPPING
191extern CHAOS_API bool bChaos_XPBDStretchBiasElement_ISPC_Enabled;
#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
#define CHAOS_XPBD_STRETCH_BIAS_ELEMENT_ISPC_ENABLED_DEFAULT
Definition XPBDStretchBiasElementConstraints.h:184
Definition TriangleMesh.h:24
Definition CollectionPropertyFacade.h:49
Definition PBDStiffness.h:21
void SetWeightedValue(const FSolverVec2 &InWeightedValue, FSolverReal MaxStiffness=DefaultPBDMaxStiffness)
Definition PBDStiffness.h:65
void ApplyXPBDValues(const FSolverReal MaxStiffnesss)
Definition PBDStiffness.h:164
Definition PBDWeightMap.h:19
void ApplyValues(bool *bOutUpdated=nullptr)
Definition PBDWeightMap.h:71
void SetWeightedValue(const FSolverVec2 &InWeightedValue)
Definition PBDWeightMap.h:62
bool HasWeightMap() const
Definition PBDWeightMap.h:55
Definition SoftsSolverParticlesRange.h:12
Definition PBDSoftsSolverParticles.h:20
Definition XPBDStretchBiasElementConstraints.h:20
void SetProperties(const FSolverVec2 &InStiffnessWarp, const FSolverVec2 &InStiffnessWeft, const FSolverVec2 &InStiffnessBias, const FSolverVec2 &InDampingRatio, const FSolverVec2 &InWarpScale, const FSolverVec2 &InWeftScale)
Definition XPBDStretchBiasElementConstraints.h:85
static constexpr FSolverReal MaxWarpWeftScale
Definition XPBDStretchBiasElementConstraints.h:29
static constexpr FSolverReal MinDamping
Definition XPBDStretchBiasElementConstraints.h:25
CHAOS_API void Apply(SolverParticlesOrRange &Particles, const FSolverReal Dt) const
static constexpr FSolverReal MaxStiffness
Definition XPBDStretchBiasElementConstraints.h:24
CHAOS_API void AddStretchBiasElementResidualAndHessian(const FSolverParticles &Particles, const int32 ConstraintIndex, const int32 ConstraintIndexLocal, const FSolverReal Dt, TVec3< FSolverReal > &ParticleResidual, Chaos::PMatrix< FSolverReal, 3, 3 > &ParticleHessian)
Definition XPBDStretchBiasElementConstraints.cpp:886
static bool IsEnabled(const FCollectionPropertyConstFacade &PropertyCollection)
Definition XPBDStretchBiasElementConstraints.h:32
CHAOS_API void CalculateUVStretch(const int32 ConstraintIndex, const FSolverVec3 &P0, const FSolverVec3 &P1, const FSolverVec3 &P2, FSolverVec3 &DXDu, FSolverVec3 &DXDv) const
Definition XPBDStretchBiasElementConstraints.cpp:756
FSolverVec2 GetWarpWeftScale(const int32 ConstraintIndex) const
Definition XPBDStretchBiasElementConstraints.h:127
const TArray< FSolverVec3 > GetRestStretchLengths() const
Definition XPBDStretchBiasElementConstraints.h:126
static constexpr FSolverReal DefaultWarpWeftScale
Definition XPBDStretchBiasElementConstraints.h:30
static constexpr FSolverReal MinWarpWeftScale
Definition XPBDStretchBiasElementConstraints.h:28
CHAOS_API void SetProperties(const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps)
Definition XPBDStretchBiasElementConstraints.cpp:405
static constexpr bool bDefaultUse3dRestLengths
Definition XPBDStretchBiasElementConstraints.h:27
static constexpr FSolverReal MaxDamping
Definition XPBDStretchBiasElementConstraints.h:26
void ApplyProperties(const FSolverReal, const int32)
Definition XPBDStretchBiasElementConstraints.h:96
CHAOS_API void InitializeDmInvAndMeasures(const FSolverParticles &Particles)
Definition XPBDStretchBiasElementConstraints.cpp:859
CHAOS_API void AddInternalForceDifferential(const FSolverParticles &InParticles, const TArray< TVector< FSolverReal, 3 > > &DeltaParticles, TArray< TVector< FSolverReal, 3 > > &ndf)
Definition XPBDStretchBiasElementConstraints.cpp:1112
const TArray< TVec3< int32 > > & GetConstraints() const
Definition XPBDStretchBiasElementConstraints.h:110
void Init()
Definition XPBDStretchBiasElementConstraints.h:75
static constexpr FSolverReal MinStiffness
Definition XPBDStretchBiasElementConstraints.h:23
TArray< TArray< int32 > > GetConstraintsArray() const
Definition XPBDStretchBiasElementConstraints.h:112
const TArray< int32 > & GetConstraintsPerColorStartIndex() const
Definition XPBDStretchBiasElementConstraints.h:132
virtual ~FXPBDStretchBiasElementConstraints()
Definition XPBDStretchBiasElementConstraints.h:73
Definition Constraints.Build.cs:6
void SetNum(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2308
Definition UnrealString.h.inl:34
Definition CollectionEmbeddedSpringConstraintFacade.cpp:6
TVector< FSolverReal, 2 > FSolverVec2
Definition PBDSoftsEvolutionFwd.h:32
FRealSingle FSolverReal
Definition PBDSoftsEvolutionFwd.h:31
Definition SkeletalMeshComponent.h:307