66 template<
typename T_CONTAINER>
127 template<
typename Constra
intContainerType>
147 return ConstraintIndices.
Num();
175 ConstraintIndices.
Add(ConstraintIndex);
182 ConstraintContainer.AddBodies(ConstraintIndices, SolverBodyContainer);
187 ConstraintContainer.GatherInput(ConstraintIndices, Dt);
192 check(BeginIndex >= 0);
195 const int32 RangeSize = EndIndex - BeginIndex;
205 ConstraintContainer.ScatterOutput(ConstraintIndices, Dt);
210 const int32 RangeSize = EndIndex - BeginIndex;
220 ConstraintContainer.ApplyPositionConstraints(ConstraintIndices, Dt, It,
NumIts);
225 ConstraintContainer.ApplyVelocityConstraints(ConstraintIndices, Dt, It,
NumIts);
230 ConstraintContainer.ApplyProjectionConstraints(ConstraintIndices, Dt, It,
NumIts);
266 template<
typename Consta
intContainerType>
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition SolverConstraintContainer.h:29
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 * AsUnsafe()
Definition ConstraintHandle.h:189
virtual bool IsValid() const
Definition ConstraintHandle.h:124
FPBDConstraintContainer * ConstraintContainer
Definition ConstraintHandle.h:213
static const FConstraintHandleTypeID & StaticType()
Definition ConstraintHandle.h:194
virtual bool IsSleeping() const
Definition ConstraintHandle.h:172
Definition IndexedConstraintContainer.h:15
int32 ConstraintIndex
Definition IndexedConstraintContainer.h:59
FIndexedConstraintHandle()
Definition IndexedConstraintContainer.h:19
TGeometryParticleHandle< FReal, 3 > FGeometryParticleHandle
Definition IndexedConstraintContainer.h:17
FIndexedConstraintHandle(FPBDConstraintContainer *InContainer, int32 InConstraintIndex)
Definition IndexedConstraintContainer.h:25
static const FConstraintHandleTypeID & StaticType()
Definition IndexedConstraintContainer.h:50
int32 GetConstraintIndex() const
Definition IndexedConstraintContainer.h:40
virtual ~FIndexedConstraintHandle()
Definition IndexedConstraintContainer.h:31
void SetConstraintIndex(const int32 InConstraintIndex)
Definition IndexedConstraintContainer.h:45
virtual bool IsValid() const override
Definition IndexedConstraintContainer.h:35
Definition PBDConstraintContainer.h:19
Definition IndexedConstraintContainer.h:243
virtual bool IsConstraintEnabled(int32 ConstraintIndex) const
Definition IndexedConstraintContainer.h:251
virtual void SetConstraintEnabled(int32 ConstraintIndex, bool bEnabled)
Definition IndexedConstraintContainer.h:250
int32 GetConstraintIndex(const FIndexedConstraintHandle *ConstraintHandle) const
Definition IndexedConstraintContainer.h:255
void SetConstraintIndex(FIndexedConstraintHandle *ConstraintHandle, int32 ConstraintIndex) const
Definition IndexedConstraintContainer.h:260
FPBDIndexedConstraintContainer(FConstraintHandleTypeID InType)
Definition IndexedConstraintContainer.h:245
Definition SolverBodyContainer.h:37
Definition IslandManager.h:151
Definition ParticleHandle.h:436
Definition IndexedConstraintContainer.h:129
ConstraintContainerType FConstraintContainerType
Definition IndexedConstraintContainer.h:131
virtual void AddConstraints(const TArrayView< Private::FPBDIslandConstraint * > &IslandConstraints) override final
Definition IndexedConstraintContainer.h:156
virtual void ApplyProjectionConstraints(const FReal Dt, const int32 It, const int32 NumIts) override final
Definition IndexedConstraintContainer.h:228
virtual void GatherInput(const FReal Dt, const int32 BeginIndex, const int32 EndIndex) override final
Definition IndexedConstraintContainer.h:190
virtual void GatherInput(const FReal Dt) override final
Definition IndexedConstraintContainer.h:185
virtual void AddConstraints() override final
Definition IndexedConstraintContainer.h:150
virtual void ScatterOutput(const FReal Dt, const int32 BeginIndex, const int32 EndIndex) override final
Definition IndexedConstraintContainer.h:208
TIndexedConstraintContainerSolver(FConstraintContainerType &InConstraintContainer, const int32 InPriority)
Definition IndexedConstraintContainer.h:134
virtual int32 GetNumConstraints() const override final
Definition IndexedConstraintContainer.h:145
virtual void AddBodies(FSolverBodyContainer &SolverBodyContainer) override final
Definition IndexedConstraintContainer.h:180
virtual void ApplyVelocityConstraints(const FReal Dt, const int32 It, const int32 NumIts) override final
Definition IndexedConstraintContainer.h:223
virtual void ScatterOutput(const FReal Dt) override final
Definition IndexedConstraintContainer.h:203
virtual void ApplyPositionConstraints(const FReal Dt, const int32 It, const int32 NumIts) override final
Definition IndexedConstraintContainer.h:218
typename FConstraintContainerType::FConstraintContainerHandle FConstraintHandleType
Definition IndexedConstraintContainer.h:132
virtual void Reset(const int32 MaxConstraints) override final
Definition IndexedConstraintContainer.h:140
Definition IndexedConstraintContainer.h:68
int32 ConstraintIndex
Definition IndexedConstraintContainer.h:59
TIndexedContainerConstraintHandle()
Definition IndexedConstraintContainer.h:74
FConstraintContainer * ConcreteContainer()
Definition IndexedConstraintContainer.h:108
typename Base::FGeometryParticleHandle FGeometryParticleHandle
Definition IndexedConstraintContainer.h:71
virtual bool IsEnabled() const override
Definition IndexedConstraintContainer.h:92
const FConstraintContainer * ConcreteContainer() const
Definition IndexedConstraintContainer.h:113
virtual void SetEnabled(bool bInEnabled) override
Definition IndexedConstraintContainer.h:84
TIndexedContainerConstraintHandle(FConstraintContainer *InConstraintContainer, int32 InConstraintIndex)
Definition IndexedConstraintContainer.h:79
T_CONTAINER FConstraintContainer
Definition IndexedConstraintContainer.h:72
void RemoveConstraint()
Definition IndexedConstraintContainer.h:102
Definition IndexedConstraintContainer.h:268
virtual TUniquePtr< FConstraintContainerSolver > CreateSceneSolver(const int32 Priority) override final
Definition IndexedConstraintContainer.h:278
virtual TUniquePtr< FConstraintContainerSolver > CreateGroupSolver(const int32 Priority) override final
Definition IndexedConstraintContainer.h:284
TPBDIndexedConstraintContainer(FConstraintHandleTypeID InType)
Definition IndexedConstraintContainer.h:272
ConstaintContainerType FConstaintContainerType
Definition IndexedConstraintContainer.h:270
Definition ArrayView.h:139
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition UniquePtr.h:107
Definition SkeletalMeshComponent.h:307
FRealDouble FReal
Definition Real.h:22