12 class FPBDJointSolver;
200 return LinearRowIndexBegin;
205 return LinearRowIndexEnd;
210 return AngularRowIndexBegin;
215 return AngularRowIndexEnd;
220 return LinearRowIndexEnd - LinearRowIndexBegin;
225 return AngularRowIndexEnd - AngularRowIndexBegin;
254 void AddPointPositionConstraint(
259 void AddSphericalPositionConstraint(
264 void AddCylindricalPositionConstraint(
266 const int32 AxisIndex,
272 void AddPlanarPositionConstraint(
274 const int32 AxisIndex,
279 void AddPositionDrive(
284 const int32 AxisIndex);
286 void AddTwistConstraint(
293 void AddSwingConstraint(
395 FORCEINLINE void UpdateSingleLockedSwingConstraint(
402 FORCEINLINE void UpdateSingleLimitedSwingConstraint(
445 int32 LinearRowIndexBegin;
446 int32 LinearRowIndexEnd;
447 int32 AngularRowIndexBegin;
448 int32 AngularRowIndexEnd;
449 FReal PositionTolerance;
450 FReal AngleTolerance;
451 bool bNeedSwingTwist;
452 bool bNeedLockedAxes;
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void Init()
Definition LockFreeList.h:4
Definition JointSolverConstraints.h:149
FReal Damping
Definition JointSolverConstraints.h:171
int32 NumRows
Definition JointSolverConstraints.h:169
bool bIsSoft
Definition JointSolverConstraints.h:174
int32 JointIndex
Definition JointSolverConstraints.h:167
int32 ConstraintIndex
Definition JointSolverConstraints.h:168
FReal Limit
Definition JointSolverConstraints.h:172
FReal Stiffness
Definition JointSolverConstraints.h:170
bool bIsAccelerationMode
Definition JointSolverConstraints.h:173
static const int32 MaxConstrainedBodies
Definition JointSolverConstraints.h:151
EJointSolverConstraintUpdateType UpdateType
Definition JointSolverConstraints.h:166
FJointSolverConstraintRowData()
Definition JointSolverConstraints.h:153
Definition JointSolverConstraints.h:112
FJointSolverConstraintRowState()
Definition JointSolverConstraints.h:116
FVec3 Axis
Definition JointSolverConstraints.h:138
FVec3 DRs[MaxConstrainedBodies]
Definition JointSolverConstraints.h:137
FVec3 DPs[MaxConstrainedBodies]
Definition JointSolverConstraints.h:136
FReal Error
Definition JointSolverConstraints.h:139
FORCEINLINE void IterationReset()
Definition JointSolverConstraints.inl:157
static const int32 MaxConstrainedBodies
Definition JointSolverConstraints.h:114
FORCEINLINE void CalculateError(FReal Position, FReal Limit)
Definition JointSolverConstraints.inl:168
FORCEINLINE void TickReset()
Definition JointSolverConstraints.inl:150
FReal Lambda
Definition JointSolverConstraints.h:142
Definition JointSolverConstraints.h:182
FORCEINLINE int32 GetAngularRowIndexBegin() const
Definition JointSolverConstraints.h:208
FORCEINLINE int32 NumAngularConstraints() const
Definition JointSolverConstraints.h:223
FORCEINLINE int32 NumLinearConstraints() const
Definition JointSolverConstraints.h:218
void AddPositionConstraints(TArray< FJointSolverConstraintRowData > &RowDatas, const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
Definition JointSolverConstraints.cpp:37
FORCEINLINE void SetJointIndex(int32 InJointIndex)
Definition JointSolverConstraints.h:188
void UpdateRotationConstraints(const TArray< FJointSolverConstraintRowData > &RowDatas, TArray< FJointSolverConstraintRowState > &RowStates, const FJointSolverJointState &JointState, const FPBDJointSettings &JointSettings)
Definition JointSolverConstraints.cpp:328
FORCEINLINE int32 GetLinearRowIndexBegin() const
Definition JointSolverConstraints.h:198
FORCEINLINE int32 GetJointIndex() const
Definition JointSolverConstraints.h:193
void AddRotationConstraints(TArray< FJointSolverConstraintRowData > &RowDatas, const FPBDJointSolverSettings &SolverSettings, const FPBDJointSettings &JointSettings)
Definition JointSolverConstraints.cpp:204
FORCEINLINE int32 GetLinearRowIndexEnd() const
Definition JointSolverConstraints.h:203
FORCEINLINE int32 GetAngularRowIndexEnd() const
Definition JointSolverConstraints.h:213
void UpdatePositionConstraints(const TArray< FJointSolverConstraintRowData > &RowDatas, TArray< FJointSolverConstraintRowState > &RowStates, const FJointSolverJointState &JointState, const FPBDJointSettings &JointSettings)
Definition JointSolverConstraints.cpp:157
FJointSolverConstraints()
Definition JointSolverConstraints.cpp:24
Definition JointSolverConstraints.h:44
FVec3 PrevPs[MaxConstrainedBodies]
Definition JointSolverConstraints.h:97
FVec3 PrevXs[MaxConstrainedBodies]
Definition JointSolverConstraints.h:99
FVec3 Ps[MaxConstrainedBodies]
Definition JointSolverConstraints.h:92
FRotation3 Rs[MaxConstrainedBodies]
Definition JointSolverConstraints.h:89
FORCEINLINE void UpdateDerivedState()
Definition JointSolverConstraints.inl:77
FORCEINLINE void InitDerivedState()
Definition JointSolverConstraints.inl:55
FVec3 DPs[MaxConstrainedBodies]
Definition JointSolverConstraints.h:101
FVec3 Xs[MaxConstrainedBodies]
Definition JointSolverConstraints.h:88
FVec3 DRs[MaxConstrainedBodies]
Definition JointSolverConstraints.h:102
FRotation3 PrevQs[MaxConstrainedBodies]
Definition JointSolverConstraints.h:98
FORCEINLINE void ApplyDelta(const FVec3 &DP0, const FVec3 &DR0, const FVec3 &DP1, const FVec3 &DR1)
Definition JointSolverConstraints.inl:98
static const int32 MaxConstrainedBodies
Definition JointSolverConstraints.h:46
FReal PositionTolerance
Definition JointSolverConstraints.h:104
FMatrix33 InvIs[MaxConstrainedBodies]
Definition JointSolverConstraints.h:94
FReal AngleTolerance
Definition JointSolverConstraints.h:105
FRotation3 Qs[MaxConstrainedBodies]
Definition JointSolverConstraints.h:93
FORCEINLINE void ApplyRotationDelta(const FVec3 &DR0, const FVec3 &DR1)
Definition JointSolverConstraints.inl:125
FRigidTransform3 XLs[MaxConstrainedBodies]
Definition JointSolverConstraints.h:83
FReal InvMs[MaxConstrainedBodies]
Definition JointSolverConstraints.h:85
FVec3 InvILs[MaxConstrainedBodies]
Definition JointSolverConstraints.h:84
Definition JointSolverConstraints.h:456
static int32 ApplyRotationConstraints(const FReal Dt, TArray< FJointSolverJointState > &JointStates, const TArray< FJointSolverConstraintRowData > &RowDatas, TArray< FJointSolverConstraintRowState > &RowStates, int32 JointIndexBegin, int32 JointIndexEnd, int32 RowIndexBegin, int32 RowIndexEnd)
Definition JointSolverConstraints.cpp:775
static int32 ApplyPositionConstraints(const FReal Dt, TArray< FJointSolverJointState > &JointStates, const TArray< FJointSolverConstraintRowData > &RowDatas, TArray< FJointSolverConstraintRowState > &RowStates, int32 JointIndexBegin, int32 JointIndexEnd, int32 RowIndexBegin, int32 RowIndexEnd)
Definition JointSolverConstraints.cpp:719
Definition PBDJointConstraintTypes.h:114
Definition PBDJointConstraintTypes.h:219
Definition PBDJointSolverGaussSeidel.h:29
Definition SkeletalMeshComponent.h:307
EJointSolverConstraintUpdateType
Definition JointSolverConstraints.h:16
@ Angular_SingleLimitedSwing
@ Angular_SingleLockedSwing
FRealDouble FReal
Definition Real.h:22
EJointAngularConstraintIndex
Definition PBDJointConstraintTypes.h:48
@ Update
Definition PendingSpatialData.h:19
EJointMotionType
Definition PBDJointConstraintTypes.h:23
@ false
Definition radaudio_common.h:23