13 class FPBDCollisionConstraint;
14 class FPBDCollisionConstraints;
16 class FSolverBodyContainer;
55 const FPBDCollisionConstraint* GetConstraint(
const int32 Index)
const {
return CollisionConstraints[
Index]; }
59 void CachePrefetchSolver(
const int32 ConstraintIndex)
const;
60 void AddConstraint(FPBDCollisionConstraint& Constraint);
62 int32 CalculateConstraintMaxManifoldPoints(
const FPBDCollisionConstraint* Constraint)
const;
63 void PrepareSolverBuffer();
64 void UpdatePositionShockPropagation(
const FReal Dt,
const int32 It,
const int32 NumIts,
const int32 BeginIndex,
const int32 EndIndex,
const FPBDCollisionSolverSettings& SolverSettings);
65 void UpdateVelocityShockPropagation(
const FReal Dt,
const int32 It,
const int32 NumIts,
const int32 BeginIndex,
const int32 EndIndex,
const FPBDCollisionSolverSettings& SolverSettings);
66 void ApplyShockPropagation(
const FSolverReal ShockPropagation);
67 void SolvePositionImpl(
const FReal Dt,
const int32 It,
const int32 NumIts,
const int32 BeginIndex,
const int32 EndIndex,
const FPBDCollisionSolverSettings& SolverSettings);
68 void SolveVelocityImpl(
const FReal Dt,
const int32 It,
const int32 NumIts,
const int32 BeginIndex,
const int32 EndIndex,
const FPBDCollisionSolverSettings& SolverSettings);
72 const FPBDCollisionConstraints& ConstraintContainer;
79 Private::FScratchBuffer Scratch;
82 Private::FPBDCollisionSolver* CollisionSolvers;
83 int32 NumCollisionSolvers;
86 Private::FPBDCollisionSolverManifoldPoint* CollisionSolverManifoldPoints;
87 int32 NumCollisionSolverManifoldPoints;
88 int32 MaxCollisionSolverManifoldPoints;
91 TArray<bool> bCollisionConstraintPerIterationCollisionDetection;
92 bool bPerIterationCollisionDetection;
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition SolverConstraintContainer.h:29
A contact constraint.
Definition PBDCollisionConstraint.h:225
Definition PBDCollisionConstraints.h:49
Definition PBDCollisionContainerSolver.h:23
virtual void AddConstraints() override final
Definition PBDCollisionContainerSolver.cpp:529
int32 NumSolvers() const
Definition PBDCollisionContainerSolver.h:30
virtual void GatherInput(const FReal Dt) override final
Definition PBDCollisionContainerSolver.cpp:601
virtual void ApplyPositionConstraints(const FReal Dt, const int32 It, const int32 NumIts) override final
Definition PBDCollisionContainerSolver.cpp:687
UE_NONCOPYABLE(FPBDCollisionContainerSolver)
virtual void ScatterOutput(const FReal Dt) override final
Definition PBDCollisionContainerSolver.cpp:656
virtual void ApplyProjectionConstraints(const FReal Dt, const int32 It, const int32 NumIts) override final
Definition PBDCollisionContainerSolver.cpp:697
virtual void AddBodies(FSolverBodyContainer &SolverBodyContainer) override final
Definition PBDCollisionContainerSolver.cpp:565
~FPBDCollisionContainerSolver()
Definition PBDCollisionContainerSolver.cpp:414
const Private::FPBDCollisionSolver & GetConstraintSolver(const int32 ConstraintIndex) const
Definition PBDCollisionContainerSolver.h:51
virtual int32 GetNumConstraints() const override final
Definition PBDCollisionContainerSolver.h:34
virtual void ApplyVelocityConstraints(const FReal Dt, const int32 It, const int32 NumIts) override final
Definition PBDCollisionContainerSolver.cpp:692
Definition SolverBodyContainer.h:37
Definition ArrayView.h:139
Definition SkeletalMeshComponent.h:307
FRealDouble FReal
Definition Real.h:22
FRealSingle FSolverReal
Definition SolverBody.h:38
Definition OverriddenPropertySet.cpp:45
U16 Index
Definition radfft.cpp:71