15 static constexpr float SmoothingTimeToDamping(
float SmoothingTime)
133 const
FQuat& TargetRotation,
164 template <
typename TFloat>
175 static_assert(std::is_floating_point_v<TFloat>,
"TFloat must be floating point");
177 MaxSpeed = FMath::Max(MaxSpeed, 0.0f);
207 template <
typename TVector>
222 : TVector::ZeroVector;
248 template <
typename TVector>
298 template <
typename TVector>
304 const TVector& CurrentPosition,
351 template <
typename TVector>
360 float MaxAcceleration,
369 : TVector::ZeroVector;
420 template <
typename TVector>
427 const TVector& CurrentPosition,
433 float MaxAcceleration,
#define check(expr)
Definition AssertionMacros.h:314
#define PRAGMA_DISABLE_EXPERIMENTAL_WARNINGS
Definition CoreMiscDefines.h:370
#define PRAGMA_ENABLE_EXPERIMENTAL_WARNINGS
Definition CoreMiscDefines.h:371
#define UE_EXPERIMENTAL(Version, Message)
Definition CoreMiscDefines.h:369
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
#define UE_KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:131
#define UE_LN2
Definition UnrealMathUtility.h:160
Definition ArrayView.h:139
static constexpr UE_FORCEINLINE_HINT T Square(const T A)
Definition UnrealMathUtility.h:578
static constexpr auto FindDeltaAngleRadians(T A1, T2 A2) -> decltype(A1 - A2)
Definition UnrealMathUtility.h:914
static constexpr T InvExpApprox(T X)
Definition UnrealMathUtility.h:1546
Definition SpringMath.h:13
static constexpr void ExponentialSmoothingApproxQuat(FQuat &InOutRotation, const FQuat &InTargetRotation, const float InDeltaTime, const float InSmoothingTime)
Definition SpringMath.h:511
static void CriticalSpringDamperQuat(FQuat &InOutRotation, FVector &InOutAngularVelocityRadians, const FQuat &TargetRotation, float SmoothingTime, float DeltaTime)
Definition SpringMath.h:130
static void SpringCharacterPredict(TArrayView< TVector > OutPredictedPositions, TArrayView< TVector > OutPredictedVelocities, TArrayView< TVector > OutPredictedAccelerations, const TVector &CurrentPosition, const TVector &CurrentVelocity, const TVector &CurrentAcceleration, const TVector &TargetVelocity, float SmoothingTime, float SecondsPerPredictionStep, float VDeadzone=1e-2f, float ADeadzone=1e-4f)
Definition SpringMath.h:300
static constexpr float SmoothingTimeToStrength(float SmoothingTime)
Definition SpringMath.h:49
static constexpr float HalfLifeToSmoothingTime(float HalfLife)
Definition SpringMath.h:38
static constexpr void ExponentialSmoothingApproxAngle(float &InOutAngleRadians, const float &InTargetAngleRadians, const float InDeltaTime, const float InSmoothingTime)
Definition SpringMath.h:532
static void VelocitySpringCharacterUpdate(TVector &InOutPosition, TVector &InOutVelocity, TVector &InOutVelocityIntermediate, TVector &InOutAcceleration, TVector TargetVelocity, float SmoothingTime, float MaxAcceleration, float DeltaTime, float VDeadzone=1e-2f, float ADeadzone=1e-4f)
Definition SpringMath.h:353
static void VelocitySpringDamper(TVector &InOutX, TVector &InOutV, TVector &InOutXi, TVector TargetX, float MaxSpeed, float SmoothingTime, float DeltaTime)
Definition SpringMath.h:209
static void CriticalSpringDamperAngle(float &InOutAngleRadians, float &InOutAngularVelocityRadians, float TargetAngleRadians, float SmoothingTime, float DeltaTime)
Definition SpringMath.h:102
static constexpr float SmoothingTimeToHalfLife(float SmoothingTime)
Definition SpringMath.h:27
static void VelocitySpringCharacterPredict(TArrayView< TVector > OutPredictedPositions, TArrayView< TVector > OutPredictedVelocities, TArrayView< TVector > OutPredictedIntermediateVelocities, TArrayView< TVector > OutPredictedAccelerations, const TVector &CurrentPosition, const TVector &CurrentVelocity, const TVector &CurrentIntermediateVelocity, const TVector &CurrentAcceleration, const TVector &TargetVelocity, float SmoothingTime, float MaxAcceleration, float SecondsPerPredictionStep, float VDeadzone=1e-2f, float ADeadzone=1e-4f)
Definition SpringMath.h:422
static void SpringCharacterUpdate(TVector &InOutPosition, TVector &InOutVelocity, TVector &InOutAcceleration, const TVector &TargetVelocity, float SmoothingTime, float DeltaTime, float VDeadzone=1e-2f, float ADeadzone=1e-4f)
Definition SpringMath.h:250
static void CriticalSpringDamper(T &InOutX, T &InOutV, T TargetX, float SmoothingTime, float DeltaTime)
Definition SpringMath.h:77
static constexpr float StrengthToSmoothingTime(float Strength)
Definition SpringMath.h:60
static void VelocitySpringDamperF(TFloat &InOutX, TFloat &InOutV, TFloat &InOutXi, TFloat TargetX, TFloat MaxSpeed, float SmoothingTime, float DeltaTime)
Definition SpringMath.h:166
static void CriticalSpringDamperQuatPredict(TArrayView< FQuat > OutPredictedRotations, TArrayView< FVector > OutPredictedAngularVelocities, int32 PredictCount, const FQuat &CurrentRotation, const FVector &CurrentAngularVelocity, const FQuat &TargetRotation, float SmoothingTime, float SecondsPerPredictionStep)
Definition SpringMath.h:480
static TQuat< double > MakeFromRotationVector(const TVector< double > &RotationVector)
Definition Quat.h:1203
TQuat< T > Inverse() const
Definition Quat.h:1264
static UE_FORCEINLINE_HINT TQuat< double > Slerp(const TQuat< double > &Quat1, const TQuat< double > &Quat2, double Slerp)
Definition Quat.h:660
void EnforceShortestArcWith(const TQuat< T > &OtherQuat)
Definition Quat.h:1276
static CORE_API const TQuat< double > Identity
Definition Quat.h:63