8#if !COMPILE_WITHOUT_UNREAL_SUPPORT
26 std::array<Chaos::FReal, 3> angles;
39 template<
class T,
int d>
60 template<
typename OtherType>
67 BaseQuat::ToMatrix(
R);
145 return FMath::Max(FMath::Max(FMath::Abs(
X), FMath::Abs(
Y)), FMath::Max(FMath::Abs(
Z), FMath::Abs(W)));
188 return FromElements(V.X, V.Y, V.Z, W);
209 const ::Chaos::TVector<FRealSingle, 3>&
FinalVector);
242 return CalculateAngularVelocity(
InR0,
InR1, 1.0f);
279 template<
typename OtherType>
286 BaseQuat::ToMatrix(
R);
364 return FMath::Max(FMath::Max(FMath::Abs(
X), FMath::Abs(
Y)), FMath::Max(FMath::Abs(
Z), FMath::Abs(W)));
407 return FromElements(V.X, V.Y, V.Z, W);
428 const ::Chaos::TVector<FRealDouble, 3>&
FinalVector);
461 return CalculateAngularVelocity(
InR0,
InR1, 1.0f);
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void ToMatrixAxes(TVector< FRealDouble, 3 > &OutX, TVector< FRealDouble, 3 > &OutY, TVector< FRealDouble, 3 > &OutZ)
Definition Rotation.h:337
static CHAOSCORE_API TRotation< FRealDouble, 3 > Conjugate(const ::Chaos::TRotation< FRealDouble, 3 > &InR)
static TVector< FRealDouble, 3 > CalculateAngularVelocity(const TRotation< FRealDouble, 3 > &InR0, const TRotation< FRealDouble, 3 > &InR1, const FRealDouble InDt)
Definition Rotation.h:449
static CHAOSCORE_API TRotation< FRealDouble, 3 > IntegrateRotationWithAngularVelocity(const TRotation< FRealDouble, 3 > &InR0, const TVector< FRealDouble, 3 > &InW, const FRealDouble InDt)
static CHAOSCORE_API TVector< FRealDouble, 3 > CalculateAngularVelocity1(const TRotation< FRealDouble, 3 > &R0, const TRotation< FRealDouble, 3 > &InR1, const FRealDouble InDt)
TRotation(const FMatrix44d &Matrix)
Definition Rotation.h:275
TRotation(const BaseQuat &Quat)
Definition Rotation.h:273
static TRotation< FRealDouble, 3 > FromElements(const FRealDouble X, const FRealDouble Y, const FRealDouble Z, const FRealDouble W)
Definition Rotation.h:396
static TRotation< FRealDouble, 3 > FromElements(const ::Chaos::TVector< FRealDouble, 3 > &V, const FRealDouble W)
Definition Rotation.h:405
void ToSwingTwistX(BaseQuat &OutSwing, BaseQuat &OutTwist) const
Definition Rotation.h:353
static TVector< FRealDouble, 3 > CalculateAngularDelta(const TRotation< FRealDouble, 3 > &InR0, const TRotation< FRealDouble, 3 > &InR1)
Definition Rotation.h:459
TRotation(const UE::Math::TQuat< OtherType > &Other)
Definition Rotation.h:280
bool ToAxisAndAngleSafe(TVector< FRealDouble, 3 > &OutAxis, FRealDouble &OutAngle, const TVector< FRealDouble, 3 > &DefaultAxis, FRealDouble EpsilionSq=1e-6f) const
Definition Rotation.h:301
FORCEINLINE FRealDouble GetAbsMax() const
Return the large absolute element value.
Definition Rotation.h:362
static TRotation< FRealDouble, 3 > FromAxisAngle(const ::Chaos::TVector< FRealDouble, 3 > &Axis, const FRealDouble AngleRad)
Definition Rotation.h:413
static CHAOSCORE_API TRotation< FRealDouble, 3 > Negate(const ::Chaos::TRotation< FRealDouble, 3 > &InR)
TRotation()
Definition Rotation.h:271
static CHAOSCORE_API TRotation< FRealDouble, 3 > FromRotatedVector(const ::Chaos::TVector< FRealDouble, 3 > &InitialVector, const ::Chaos::TVector< FRealDouble, 3 > &FinalVector)
bool GetRotationAxisSafe(TVector< FRealDouble, 3 > &OutAxis, const TVector< FRealDouble, 3 > &DefaultAxis, FRealDouble EpsilionSq=1e-6f) const
Definition Rotation.h:317
PMatrix< FRealDouble, 3, 3 > ToMatrix() const
Definition Rotation.h:283
static CHAOSCORE_API TRotation< FRealDouble, 3 > FromVector(const ::Chaos::TVector< FRealDouble, 3 > &V)
static TRotation< FRealDouble, 3 > FromIdentity()
Definition Rotation.h:388
TRotation(const FMatrix44f &Matrix)
Definition Rotation.h:277
static CHAOSCORE_API TVector< FRealDouble, 3 > CalculateAngularVelocity2(const TRotation< FRealDouble, 3 > &R0, const TRotation< FRealDouble, 3 > &InR1, const FRealDouble InDt)
static bool IsNearlyEqual(const TRotation< FRealDouble, 3 > &A, const TRotation< FRealDouble, 3 > &B, const FRealDouble Epsilon)
Definition Rotation.h:476
static FRealDouble DotProduct(const TRotation< FRealDouble, 3 > &L, const TRotation< FRealDouble, 3 > &R)
Return the dot product of two quaternions.
Definition Rotation.h:370
static TRotation< FRealSingle, 3 > FromIdentity()
Definition Rotation.h:169
static TRotation< FRealSingle, 3 > FromAxisAngle(const ::Chaos::TVector< FRealSingle, 3 > &Axis, const FRealSingle AngleRad)
Definition Rotation.h:194
TRotation(const UE::Math::TQuat< OtherType > &Other)
Definition Rotation.h:61
static TVector< FRealSingle, 3 > CalculateAngularVelocity(const TRotation< FRealSingle, 3 > &InR0, const TRotation< FRealSingle, 3 > &InR1, const FRealSingle InDt)
Definition Rotation.h:230
TRotation(const FMatrix44d &Matrix)
Definition Rotation.h:58
FORCEINLINE FRealSingle GetAbsMax() const
Return the large absolute element value.
Definition Rotation.h:143
bool GetRotationAxisSafe(TVector< FRealSingle, 3 > &OutAxis, const TVector< FRealSingle, 3 > &DefaultAxis, FRealSingle EpsilionSq=1e-6f) const
Definition Rotation.h:98
static CHAOSCORE_API TRotation< FRealSingle, 3 > FromRotatedVector(const ::Chaos::TVector< FRealSingle, 3 > &InitialVector, const ::Chaos::TVector< FRealSingle, 3 > &FinalVector)
TRotation(const FMatrix44f &Matrix)
Definition Rotation.h:56
static CHAOSCORE_API TRotation< FRealSingle, 3 > FromVector(const ::Chaos::TVector< FRealSingle, 3 > &V)
static TRotation< FRealSingle, 3 > FromElements(const FRealSingle X, const FRealSingle Y, const FRealSingle Z, const FRealSingle W)
Definition Rotation.h:177
static FRealSingle DotProduct(const TRotation< FRealSingle, 3 > &L, const TRotation< FRealSingle, 3 > &R)
Return the dot product of two quaternions.
Definition Rotation.h:151
void ToSwingTwistX(BaseQuat &OutSwing, BaseQuat &OutTwist) const
Definition Rotation.h:134
PMatrix< FRealSingle, 3, 3 > ToMatrix() const
Definition Rotation.h:64
static bool IsNearlyEqual(const TRotation< FRealSingle, 3 > &A, const TRotation< FRealSingle, 3 > &B, const FRealSingle Epsilon)
Definition Rotation.h:257
static TRotation< FRealSingle, 3 > FromElements(const ::Chaos::TVector< FRealSingle, 3 > &V, const FRealSingle W)
Definition Rotation.h:186
TRotation(const BaseQuat &Quat)
Definition Rotation.h:54
bool ToAxisAndAngleSafe(TVector< FRealSingle, 3 > &OutAxis, FRealSingle &OutAngle, const TVector< FRealSingle, 3 > &DefaultAxis, FRealSingle EpsilionSq=1e-6f) const
Definition Rotation.h:82
void ToMatrixAxes(TVector< FRealSingle, 3 > &OutX, TVector< FRealSingle, 3 > &OutY, TVector< FRealSingle, 3 > &OutZ)
Definition Rotation.h:118
static CHAOSCORE_API TVector< FRealSingle, 3 > CalculateAngularVelocity2(const TRotation< FRealSingle, 3 > &R0, const TRotation< FRealSingle, 3 > &InR1, const FRealSingle InDt)
static CHAOSCORE_API TRotation< FRealSingle, 3 > Negate(const ::Chaos::TRotation< FRealSingle, 3 > &InR)
static TVector< FRealSingle, 3 > CalculateAngularDelta(const TRotation< FRealSingle, 3 > &InR0, const TRotation< FRealSingle, 3 > &InR1)
Definition Rotation.h:240
TRotation()
Definition Rotation.h:52
Definition SkeletalMeshComponent.h:307
@ Y
Definition SimulationModuleBase.h:153
@ X
Definition SimulationModuleBase.h:152
FRealDouble FReal
Definition Real.h:22
float FRealSingle
Definition Real.h:14
double FRealDouble
Definition Real.h:13
static UE_FORCEINLINE_HINT bool IsNearlyEqual(float A, float B, float ErrorTolerance=UE_SMALL_NUMBER)
Definition UnrealMathUtility.h:388
TQuat< T > GetNormalized(T Tolerance=UE_SMALL_NUMBER) const
Definition Quat.h:1140
TQuat< T > Inverse() const
Definition Quat.h:1264
FRealSingle FReal
Definition Quat.h:45