18 class FPBDSuspensionConstraints;
22 class FPBDCollisionSolver;
23 class FPBDCollisionSolverManifoldPoint;
69 if (ConstrainedParticles.Num() > 0)
71 Handles.
Reserve(ConstrainedParticles.Num());
72 for (
int32 ConstraintIndex = 0; ConstraintIndex < ConstrainedParticles.Num(); ++ConstraintIndex)
90 return ConstrainedParticles.Num();
127 ConstrainedParticles[ConstraintIndex] =
nullptr;
137 return ConstraintEnabledStates[ConstraintIndex];
149 ConstraintEnabledStates[ConstraintIndex] =
true;
155 ConstraintEnabledStates[ConstraintIndex] =
false;
185 return ConstraintResults[ConstraintIndex];
199 return Handles[ConstraintIndex];
204 return Handles[ConstraintIndex];
212 return { ConstrainedParticles[ConstraintIndex],
nullptr };
220 return SuspensionLocalOffset[ConstraintIndex];
225 SuspensionLocalOffset[ConstraintIndex] =
Position;
@ INDEX_NONE
Definition CoreMiscDefines.h:150
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
Definition ChaosConstraintSettings.h:16
A type id for constraint handles to support safe up/down casting (including intermediate classes in t...
Definition ConstraintHandle.h:49
Base class for constraint handles.
Definition ConstraintHandle.h:102
T * As()
Definition PBDConstraintContainer.h:136
bool Disabled() const
Definition ParticleHandle.h:1953
const FGeometryParticleHandle * Handle() const
Definition ParticleHandle.h:1800
Definition ParticleHandle.h:2590
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 PBDSuspensionConstraints.h:27
FPBDSuspensionConstraints FConstraintContainer
Definition PBDSuspensionConstraints.h:30
static const FConstraintHandleTypeID & StaticType()
Definition PBDSuspensionConstraints.h:42
CHAOS_API void SetSettings(const FPBDSuspensionSettings &Settings)
Definition PBDSuspensionConstraints.cpp:54
CHAOS_API FPBDSuspensionSettings & GetSettings()
Definition PBDSuspensionConstraints.cpp:49
FPBDSuspensionConstraintHandle()
Definition PBDSuspensionConstraints.h:32
virtual CHAOS_API FParticlePair GetConstrainedParticles() const override final
Definition PBDSuspensionConstraints.cpp:59
Definition PBDSuspensionConstraints.h:53
const FPBDSuspensionSettings & GetSettings(int32 ConstraintIndex) const
Definition PBDSuspensionConstraints.h:163
const FVec3 & GetConstraintPosition(int ConstraintIndex) const
Definition PBDSuspensionConstraints.h:218
TArray< FConstraintContainerHandle * > FHandles
Definition PBDSuspensionConstraints.h:58
FHandles & GetConstraintHandles()
Definition PBDSuspensionConstraints.h:188
FPBDSuspensionConstraintHandle FConstraintContainerHandle
Definition PBDSuspensionConstraints.h:56
FPBDSuspensionConstraints(TArray< FVec3 > &&Locations, TArray< TGeometryParticleHandle< FReal, 3 > * > &&InConstrainedParticles, TArray< FVec3 > &&InLocalOffset, TArray< FPBDSuspensionSettings > &&InConstraintSettings)
Definition PBDSuspensionConstraints.h:65
virtual void UnprepareTick() override final
Definition PBDSuspensionConstraints.h:235
virtual ~FPBDSuspensionConstraints()
Definition PBDSuspensionConstraints.h:79
CHAOS_API void GatherInput(const FReal Dt)
Definition PBDSuspensionConstraints.cpp:130
bool IsConstraintEnabled(int32 ConstraintIndex) const
Definition PBDSuspensionConstraints.h:135
void ApplyProjectionConstraints(const TArrayView< int32 > &ConstraintIndices, const FReal Dt, const int32 It, const int32 NumIts)
Definition PBDSuspensionConstraints.h:255
virtual void ResetConstraints() override final
Definition PBDSuspensionConstraints.h:232
int32 NumConstraints() const
Definition PBDSuspensionConstraints.h:88
void SetConstraintPosition(const int32 ConstraintIndex, const FVec3 &Position)
Definition PBDSuspensionConstraints.h:223
CHAOS_API FConstraintContainerHandle * AddConstraint(TGeometryParticleHandle< FReal, 3 > *Particle, const FVec3 &InConstraintFrame, const FPBDSuspensionSettings &InConstraintSettings)
Definition PBDSuspensionConstraints.cpp:64
void ApplyProjectionConstraints(const FReal Dt, const int32 It, const int32 NumIts)
Definition PBDSuspensionConstraints.h:245
FConstraintContainerHandle * GetConstraintHandle(int32 ConstraintIndex)
Definition PBDSuspensionConstraints.h:202
void SetConstraintEnabled(int32 ConstraintIndex, bool bEnabled)
Definition PBDSuspensionConstraints.h:140
TVec2< TGeometryParticleHandle< FReal, 3 > * > GetConstrainedParticles(int32 ConstraintIndex) const
Definition PBDSuspensionConstraints.h:210
void SetTarget(int32 ConstraintIndex, const FVector &TargetPos)
Definition PBDSuspensionConstraints.h:178
void SetSettings(int32 ConstraintIndex, const FPBDSuspensionSettings &Settings)
Definition PBDSuspensionConstraints.h:173
TConstraintHandleAllocator< FPBDSuspensionConstraints > FConstraintHandleAllocator
Definition PBDSuspensionConstraints.h:57
virtual CHAOS_API void AddConstraintsToGraph(Private::FPBDIslandManager &IslandManager) override final
Definition PBDSuspensionConstraints.cpp:117
void DisconnectConstraints(const TSet< TGeometryParticleHandle< FReal, 3 > * > &RemovedParticles)
Definition PBDSuspensionConstraints.h:112
CHAOS_API void ApplyVelocityConstraints(const FReal Dt, const int32 It, const int32 NumIts)
Definition PBDSuspensionConstraints.cpp:154
FPBDSuspensionConstraints(const FPBDSuspensionSolverSettings &InSolverSettings=FPBDSuspensionSolverSettings())
Definition PBDSuspensionConstraints.h:60
const FHandles & GetConstConstraintHandles() const
Definition PBDSuspensionConstraints.h:192
virtual int32 GetNumConstraints() const override final
Definition PBDSuspensionConstraints.h:231
CHAOS_API void AddBodies(FSolverBodyContainer &SolverBodyContainer)
Definition PBDSuspensionConstraints.cpp:122
virtual void PrepareTick() override final
Definition PBDSuspensionConstraints.h:234
CHAOS_API void ScatterOutput(const FReal Dt)
Definition PBDSuspensionConstraints.cpp:138
CHAOS_API void ApplyPositionConstraints(const FReal Dt, const int32 It, const int32 NumIts)
Definition PBDSuspensionConstraints.cpp:146
CHAOS_API void RemoveConstraint(int ConstraintIndex)
Definition PBDSuspensionConstraints.cpp:82
const FPBDSuspensionResults & GetResults(int32 ConstraintIndex) const
Definition PBDSuspensionConstraints.h:183
FPBDSuspensionSettings & GetSettings(int32 ConstraintIndex)
Definition PBDSuspensionConstraints.h:168
const FConstraintContainerHandle * GetConstraintHandle(int32 ConstraintIndex) const
Definition PBDSuspensionConstraints.h:197
Definition PBDSuspensionConstraintTypes.h:75
Definition PBDSuspensionConstraintTypes.h:28
Definition PBDSuspensionConstraintTypes.h:95
Definition SolverBodyContainer.h:37
Definition IslandManager.h:453
FConstraintContainerHandle * AllocHandle(FConstraintContainer *ConstraintContainer, int32 ConstraintIndex)
Definition ConstraintHandle.h:295
Definition ParticleHandle.h:436
Definition IndexedConstraintContainer.h:68
int32 ConstraintIndex
Definition IndexedConstraintContainer.h:59
FConstraintContainer * ConcreteContainer()
Definition IndexedConstraintContainer.h:108
Definition IndexedConstraintContainer.h:268
Definition ArrayView.h:139
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
Definition OverriddenPropertySet.cpp:45