45 , VelocityTargetStiffness(
56 check(NumParticles == CoarseToFinePositionBaryCoordsAndDist.Num());
57 check(NumParticles == CoarseToFineSourceMeshVertIndices.Num());
106 const int32 NumParticles;
107 const int32 CoarseSoftBodyId;
123 bool bStiffnessEntriesInitialized =
false;
132#if !defined(CHAOS_MULTIRES_ISPC_ENABLED_DEFAULT)
133#define CHAOS_MULTIRES_ISPC_ENABLED_DEFAULT 1
137#if !INTEL_ISPC || UE_BUILD_SHIPPING
140extern CHAOS_API bool bChaos_MultiRes_ISPC_Enabled;
#define check(expr)
Definition AssertionMacros.h:314
#define UE_CHAOS_DECLARE_PROPERTYCOLLECTION_NAME(PropertyName, Type)
Definition CollectionPropertyFacade.h:969
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define CHAOS_MULTIRES_ISPC_ENABLED_DEFAULT
Definition SoftsMultiResConstraints.h:133
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32 Size
Definition VulkanMemory.cpp:4034
Definition TriangleMesh.h:24
Definition CollectionPropertyFacade.h:49
Definition SoftsMultiResConstraints.h:14
static constexpr FSolverReal MinStiffness
Definition SoftsMultiResConstraints.h:21
FMultiResConstraints(const FSolverParticlesRange &FineParticles, const int32 InCoarseSoftBodyId, const FTriangleMesh &InCoarseMesh, TArray< TVec4< FSolverReal > > &&InCoarseToFinePositionBaryCoordsAndDist, TArray< TVec3< int32 > > &&InCoarseToFineSourceMeshVertIndices, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, const FCollectionPropertyConstFacade &PropertyCollection)
Definition SoftsMultiResConstraints.h:24
void ApplyProperties(const FSolverReal Dt, const int32 NumIterations)
Definition SoftsMultiResConstraints.h:71
bool IsConstraintActive(const int32 ParticleIndex) const
Definition SoftsMultiResConstraints.h:96
void Init() const
Definition SoftsMultiResConstraints.h:62
~FMultiResConstraints()
Definition SoftsMultiResConstraints.h:60
CHAOS_API void Apply(FSolverParticlesRange &FineParticles, const FSolverReal Dt) const
Definition SoftsMultiResConstraints.cpp:134
const FTriangleMesh & GetCoarseMesh() const
Definition SoftsMultiResConstraints.h:95
const TArray< FSolverVec3 > & GetFineTargetPositions() const
Definition SoftsMultiResConstraints.h:93
CHAOS_API void SetProperties(const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps)
Definition SoftsMultiResConstraints.cpp:33
static bool IsEnabled(const FCollectionPropertyConstFacade &PropertyCollection)
Definition SoftsMultiResConstraints.h:16
CHAOS_API void UpdateFineTargets(const FSolverParticlesRange &CoarseParticles)
Definition SoftsMultiResConstraints.cpp:253
static constexpr FSolverReal MaxStiffness
Definition SoftsMultiResConstraints.h:22
int32 GetCoarseSoftBodyId() const
Definition SoftsMultiResConstraints.h:94
Definition PBDStiffness.h:21
void ApplyPBDValues(const FSolverReal Dt, const int32 NumIterations)
Definition PBDStiffness.h:124
void ApplyXPBDValues(const FSolverReal MaxStiffnesss)
Definition PBDStiffness.h:164
bool HasWeightMap() const
Definition PBDWeightMap.h:55
Definition SoftsSolverParticlesRange.h:12
void SetNumZeroed(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2340
void Reset(SizeType NewSize=0)
Definition Array.h:2246
Definition UnrealString.h.inl:34
Definition CollectionEmbeddedSpringConstraintFacade.cpp:6
FRealSingle FSolverReal
Definition PBDSoftsEvolutionFwd.h:31
@ false
Definition radaudio_common.h:23