18 template<
int32 Valence>
40 template<
int32 Valence>
68 template<
typename SolverParticlesOrRange>
76 template<
typename SolverParticlesOrRange>
87 template<
typename SolverParticlesOrRange>
177 bool bWarpWeftScaleEnabled =
false;
250#if !defined(CHAOS_SPRING_ISPC_ENABLED_DEFAULT)
251#define CHAOS_SPRING_ISPC_ENABLED_DEFAULT 1
254#if !defined(USE_ISPC_KERNEL_CONSOLE_VARIABLES_IN_SHIPPING)
255#define USE_ISPC_KERNEL_CONSOLE_VARIABLES_IN_SHIPPING 0
259#if !INTEL_ISPC || (UE_BUILD_SHIPPING && !USE_ISPC_KERNEL_CONSOLE_VARIABLES_IN_SHIPPING)
262extern CHAOS_API bool bChaos_Spring_ISPC_Enabled;
#define UE_CHAOS_DECLARE_INDEXED_PROPERTYCOLLECTION_NAME(PropertyName, Type)
Definition CollectionPropertyFacade.h:893
@ ForceInit
Definition CoreMiscDefines.h:155
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define CHAOS_SPRING_ISPC_ENABLED_DEFAULT
Definition PBDSpringConstraints.h:251
Definition TriangleMesh.h:24
Definition CollectionPropertyFacade.h:49
Definition PBDSpringConstraints.h:189
CHAOS_API void SetProperties(const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps)
Definition PBDSpringConstraints.cpp:402
FPBDBendingSpringConstraints(const FSolverParticles &Particles, int32 ParticleOffset, int32 ParticleCount, const TArray< TVec2< int32 > > &InConstraints, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, const FCollectionPropertyConstFacade &PropertyCollection, bool bTrimKinematicConstraints=false)
Definition PBDSpringConstraints.h:213
FPBDBendingSpringConstraints(const FSolverParticlesRange &Particles, const TArray< TVec2< int32 > > &InConstraints, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, const FCollectionPropertyConstFacade &PropertyCollection, bool bTrimKinematicConstraints=false)
Definition PBDSpringConstraints.h:196
static bool IsEnabled(const FCollectionPropertyConstFacade &PropertyCollection)
Definition PBDSpringConstraints.h:191
UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME(BendingSpringStiffness, float)
virtual ~FPBDBendingSpringConstraints() override=default
Definition PBDSpringConstraints.h:95
FPBDEdgeSpringConstraints(const FSolverParticles &Particles, int32 ParticleOffset, int32 ParticleCount, const TArray< TVec3< int32 > > &InConstraints, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, const FCollectionPropertyConstFacade &PropertyCollection, bool bTrimKinematicConstraints=false)
Definition PBDSpringConstraints.h:123
static bool IsEnabled(const FCollectionPropertyConstFacade &PropertyCollection)
Definition PBDSpringConstraints.h:97
CHAOS_API void ApplyProperties(const FSolverReal Dt, const int32 NumIterations)
Definition PBDSpringConstraints.cpp:356
UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME(EdgeSpringStiffness, float)
CHAOS_API void SetProperties(const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps)
Definition PBDSpringConstraints.cpp:293
FPBDEdgeSpringConstraints(const FSolverParticlesRange &Particles, const TArray< TVec3< int32 > > &InConstraints, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, const FCollectionPropertyConstFacade &PropertyCollection, bool bTrimKinematicConstraints=false)
Definition PBDSpringConstraints.h:102
UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME(EdgeSpringWeftScale, float)
virtual ~FPBDEdgeSpringConstraints() override=default
CHAOS_API void ResetRestLengths(const TConstArrayView< FSolverVec3 > &Positions)
Definition PBDSpringConstraints.cpp:374
UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME(EdgeSpringWarpScale, float)
Definition PBDSpringConstraintsBase.h:17
FPBDStiffness Stiffness
Definition PBDSpringConstraintsBase.h:160
const int32 ParticleCount
Definition PBDSpringConstraintsBase.h:159
const int32 ParticleOffset
Definition PBDSpringConstraintsBase.h:158
TArray< TVec2< int32 > > Constraints
Definition PBDSpringConstraintsBase.h:156
Definition PBDSpringConstraints.h:16
CHAOS_API TArray< int32 > InitColor(const SolverParticlesOrRange &InParticles)
FPBDSpringConstraints(const FSolverParticlesRange &Particles, const TArray< TVector< int32, Valence > > &InConstraints, const TConstArrayView< FRealSingle > &StiffnessMultipliers, const FSolverVec2 &InStiffness, bool bTrimKinematicConstraints=false, bool bInitColor=true, typename TEnableIf< Valence >=2 &&Valence<=4 >::Type *=nullptr)
Definition PBDSpringConstraints.h:19
const int32 ParticleCount
Definition PBDSpringConstraintsBase.h:159
const int32 ParticleOffset
Definition PBDSpringConstraintsBase.h:158
CHAOS_API void Apply(SolverParticlesOrRange &Particles, const FSolverReal Dt) const
FPBDSpringConstraintsBase Base
Definition PBDSpringConstraints.h:80
virtual ~FPBDSpringConstraints() override
Definition PBDSpringConstraints.h:66
FPBDSpringConstraints(const FSolverParticles &Particles, int32 InParticleOffset, int32 InParticleCount, const TArray< TVector< int32, Valence > > &InConstraints, const TConstArrayView< FRealSingle > &StiffnessMultipliers, const FSolverVec2 &InStiffness, bool bTrimKinematicConstraints=false, bool bInitColor=true, typename TEnableIf< Valence >=2 &&Valence<=4 >::Type *=nullptr)
Definition PBDSpringConstraints.h:41
const TArray< int32 > & GetConstraintsPerColorStartIndex() const
Definition PBDSpringConstraints.h:71
Definition PBDWeightMap.h:19
Definition SoftsSolverParticlesRange.h:12
Definition PBDSoftsSolverParticles.h:20
Definition UnrealString.h.inl:34
Definition CollectionEmbeddedSpringConstraintFacade.cpp:6
FRealSingle FSolverReal
Definition PBDSoftsEvolutionFwd.h:31
Definition SkeletalMeshComponent.h:307