10 class FPBDRigidDynamicSpringConstraints;
51 , CreationThreshold(1)
69 for (
int32 ConstraintIndex = 0; ConstraintIndex <
Constraints.Num(); ++ConstraintIndex)
73 SpringDistances.
Add({});
74 ConstraintSolverBodies.Add({
nullptr,
nullptr });
102 SpringDistances.
Add({});
103 ConstraintSolverBodies.Add({
nullptr,
nullptr });
104 return Handles.
Last();
113 if (ConstraintHandle !=
nullptr)
117 Handles[ConstraintIndex] =
nullptr;
122 Distances.RemoveAtSwap(ConstraintIndex);
124 ConstraintSolverBodies.RemoveAtSwap(ConstraintIndex);
128 if (ConstraintIndex < Handles.
Num())
175 return Handles[ConstraintIndex];
180 return Handles[ConstraintIndex];
236 FReal CreationThreshold;
246 template<
class T,
int d>
247 using TPBDRigidDynamicSpringConstraintHandle
UE_DEPRECATED(4.27,
"Deprecated. this class is to be deleted, use FPBDRigidDynamicSpringConstraintHandle instead") = FPBDRigidDynamicSpringConstraintHandle;
249 template<
class T,
int d>
250 using TPBDRigidDynamicSpringConstraints
UE_DEPRECATED(4.27,
"Deprecated. this class is to be deleted, use FPBDRigidDynamicSpringConstraints instead") = FPBDRigidDynamicSpringConstraints;
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
A type id for constraint handles to support safe up/down casting (including intermediate classes in t...
Definition ConstraintHandle.h:49
static const FConstraintHandleTypeID & StaticType()
Definition IndexedConstraintContainer.h:50
int32 GetConstraintIndex(const FIndexedConstraintHandle *ConstraintHandle) const
Definition IndexedConstraintContainer.h:255
void SetConstraintIndex(FIndexedConstraintHandle *ConstraintHandle, int32 ConstraintIndex) const
Definition IndexedConstraintContainer.h:260
Definition PBDRigidDynamicSpringConstraints.h:13
FPBDRigidDynamicSpringConstraintHandle()
Definition PBDRigidDynamicSpringConstraints.h:18
static const FConstraintHandleTypeID & StaticType()
Definition PBDRigidDynamicSpringConstraints.h:29
virtual CHAOS_API FParticlePair GetConstrainedParticles() const override final
Definition PBDRigidDynamicSpringConstraints.cpp:10
FPBDRigidDynamicSpringConstraintHandle(FConstraintContainer *InConstraintContainer, int32 InConstraintIndex)
Definition PBDRigidDynamicSpringConstraints.h:22
Definition PBDRigidDynamicSpringConstraints.h:41
void ApplyProjectionConstraints(const FReal Dt, const int32 It, const int32 NumIts)
Definition PBDRigidDynamicSpringConstraints.h:211
void GatherInput(const FReal Dt)
Definition PBDRigidDynamicSpringConstraints.h:207
CHAOS_API void ApplyPositionConstraints(const FReal Dt, const int32 It, const int32 NumIts)
Definition PBDRigidDynamicSpringConstraints.cpp:125
virtual void ResetConstraints() override final
Definition PBDRigidDynamicSpringConstraints.h:198
const FHandles & GetConstConstraintHandles() const
Definition PBDRigidDynamicSpringConstraints.h:167
FConstraintContainerHandle * AddConstraint(const FConstrainedParticlePair &InConstrainedParticles)
Definition PBDRigidDynamicSpringConstraints.h:97
virtual void UnprepareTick() override final
Definition PBDRigidDynamicSpringConstraints.h:201
FPBDRigidDynamicSpringConstraints(TArray< FConstrainedParticlePair > &&InConstraints, const FReal InCreationThreshold=(FReal) 1., const int32 InMaxSprings=1, const FReal InStiffness=(FReal) 1.)
Definition PBDRigidDynamicSpringConstraints.h:56
const FConstraintContainerHandle * GetConstraintHandle(int32 ConstraintIndex) const
Definition PBDRigidDynamicSpringConstraints.h:173
virtual void PrepareTick() override final
Definition PBDRigidDynamicSpringConstraints.h:200
virtual CHAOS_API void AddConstraintsToGraph(Private::FPBDIslandManager &IslandManager) override final
Definition PBDRigidDynamicSpringConstraints.cpp:100
virtual int32 GetNumConstraints() const override final
Definition PBDRigidDynamicSpringConstraints.h:197
int32 NumConstraints() const
Definition PBDRigidDynamicSpringConstraints.h:88
FHandles & GetConstraintHandles()
Definition PBDRigidDynamicSpringConstraints.h:163
void SetCreationThreshold(const FReal InCreationThreshold)
Definition PBDRigidDynamicSpringConstraints.h:146
void ApplyVelocityConstraints(const FReal Dt, const int32 It, const int32 NumIts)
Definition PBDRigidDynamicSpringConstraints.h:210
void ApplyProjectionConstraints(const TArrayView< int32 > &ConstraintIndices, const FReal Dt, const int32 It, const int32 NumIts)
Definition PBDRigidDynamicSpringConstraints.h:221
void SetMaxSprings(const int32 InMaxSprings)
Definition PBDRigidDynamicSpringConstraints.h:154
void ApplyVelocityConstraints(const TArrayView< int32 > &ConstraintIndices, const FReal Dt, const int32 It, const int32 NumIts)
Definition PBDRigidDynamicSpringConstraints.h:220
void RemoveConstraint(int ConstraintIndex)
Definition PBDRigidDynamicSpringConstraints.h:110
TArray< FConstraintContainerHandle * > FHandles
Definition PBDRigidDynamicSpringConstraints.h:47
FPBDRigidDynamicSpringConstraints(const FReal InStiffness=(FReal) 1.)
Definition PBDRigidDynamicSpringConstraints.h:49
CHAOS_API void UpdatePositionBasedState(const FReal Dt)
Definition PBDRigidDynamicSpringConstraints.cpp:18
TConstraintHandleAllocator< FPBDRigidDynamicSpringConstraints > FConstraintHandleAllocator
Definition PBDRigidDynamicSpringConstraints.h:46
void GatherInput(const TArrayView< int32 > &ConstraintIndices, const FReal Dt)
Definition PBDRigidDynamicSpringConstraints.h:217
virtual ~FPBDRigidDynamicSpringConstraints()
Definition PBDRigidDynamicSpringConstraints.h:79
const FConstrainedParticlePair & GetConstrainedParticles(int32 ConstraintIndex) const
Definition PBDRigidDynamicSpringConstraints.h:187
CHAOS_API void AddBodies(FSolverBodyContainer &SolverBodyContainer)
Definition PBDRigidDynamicSpringConstraints.cpp:105
CHAOS_API void ScatterOutput(const FReal Dt)
Definition PBDRigidDynamicSpringConstraints.cpp:113
FConstraintContainerHandle * GetConstraintHandle(int32 ConstraintIndex)
Definition PBDRigidDynamicSpringConstraints.h:178
void DisableConstraints(const TSet< FGeometryParticleHandle * > &RemovedParticles)
Definition PBDRigidDynamicSpringConstraints.h:137
Definition SolverBodyContainer.h:37
Definition IslandManager.h:453
FConstraintContainerHandle * AllocHandle(FConstraintContainer *ConstraintContainer, int32 ConstraintIndex)
Definition ConstraintHandle.h:295
void FreeHandle(FConstraintContainerHandle *Handle)
Definition ConstraintHandle.h:297
Definition IndexedConstraintContainer.h:68
int32 ConstraintIndex
Definition IndexedConstraintContainer.h:59
FConstraintContainer * ConcreteContainer()
Definition IndexedConstraintContainer.h:108
Definition IndexedConstraintContainer.h:268
Definition Constraints.Build.cs:6
Definition ArrayView.h:139
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType & Last(SizeType IndexFromTheEnd=0) UE_LIFETIMEBOUND
Definition Array.h:1263
UE_FORCEINLINE_HINT void RemoveAtSwap(SizeType Index, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2185
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
Definition SkeletalMeshComponent.h:307
FRealDouble FReal
Definition Real.h:22