26#if ENABLE_VECTORIZED_TRANSFORM
28struct Z_Construct_UScriptStruct_FTransform3d_Statics;
29struct Z_Construct_UScriptStruct_FTransform3f_Statics;
30struct Z_Construct_UScriptStruct_FTransform_Statics;
61struct alignas( TAlignOfTransform<T>::Value ) TTransform
64 static_assert(std::is_floating_point_v<T>,
"TTransform only supports float and double types.");
86#if ENABLE_NAN_DIAGNOSTIC
264#if ENABLE_NAN_DIAGNOSTIC
371 return InverseFast();
432#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) && WITH_EDITORONLY_DATA
453 Translation = FMath::Lerp<TransformVectorRegister>(
Atom1.Translation,
Atom2.Translation, BlendWeight);
454 Scale3D = FMath::Lerp<TransformVectorRegister>(
Atom1.Scale3D,
Atom2.Scale3D, BlendWeight);
468#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) && WITH_EDITORONLY_DATA
696 if constexpr (std::is_same_v<T, float>)
757 return A.Private_RotationEquals(
B.Rotation, Tolerance);
763 return A.Private_TranslationEquals(
B.Translation, Tolerance);
769 return A.Private_Scale3DEquals(
B.Scale3D, Tolerance);
794 return Private_TranslationEquals(
Other.Translation, Tolerance) && Private_RotationEquals(
Other.Rotation, Tolerance) && Private_Scale3DEquals(
Other.Scale3D, Tolerance);
806 return Private_TranslationEquals(
Other.Translation, Tolerance) && Private_RotationEquals(
Other.Rotation, Tolerance);
1281 TVector<T>
InScale = M.ExtractScaling(0);
1290 M.SetAxis(0, -M.GetScaledAxis(
EAxis::X ));
1305#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) && WITH_EDITORONLY_DATA
1311 if constexpr (std::is_same_v<T, double>)
1361#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) && WITH_EDITORONLY_DATA
1495 template<
typename FArg UE_REQUIRES(!std::is_same_v<T, FArg> && std::is_same_v<T,
float>)>
1502 template<
typename FArg UE_REQUIRES(!std::is_same_v<T, FArg> && std::is_same_v<T,
double>)>
1509#if !defined(_MSC_VER) || defined(__clang__)
1530 DiagnosticCheckNaN_Translate();
1537 ScaleTranslation( TVector<T>(
InScale) );
1545 NormalizeRotation();
1547 DiagnosticCheckNaN_Rotate();
1548 DiagnosticCheckNaN_Scale3D();
1554 ConstructTransformFromMatrixWithDesiredScale(
A->ToMatrixWithScale(),
B->ToMatrixWithScale(),
VectorMultiply(
A->Scale3D,
B->Scale3D), *OutTransform);
1600 A.DiagnosticCheckNaN_Scale3D();
1616 A.DiagnosticCheckNaN_Scale3D();
1624 DiagnosticCheckNaN_All();
1651 DiagnosticCheckNaN_All();
1680 DiagnosticCheckNaN_All();
1701 DiagnosticCheckNaN_All();
1721 DiagnosticCheckNaN_All();
1737 DiagnosticCheckNaN_All();
1753 DiagnosticCheckNaN_All();
1778 DiagnosticCheckNaN_All();
1798 DiagnosticCheckNaN_All();
1820 DiagnosticCheckNaN_All();
1835 return GetRotation() * Q;
1841 return GetRotation().Inverse() * Q;
1895 return TransformVectorNoScale(TVector<T>(1.f, 0.f, 0.f));
1899 return TransformVectorNoScale(TVector<T>(0.f, 1.f, 0.f));
1902 return TransformVectorNoScale(TVector<T>(0.f, 0.f, 1.f));
1910 M.
Mirror(MirrorAxis, FlipAxis);
1919 DiagnosticCheckNaN_Scale3D();
1942 DiagnosticCheckNaN_Scale3D();
1972 if (FMath::Abs(
InScale.X) <= Tolerance)
1981 if (FMath::Abs(
InScale.Y) <= Tolerance)
1990 if (FMath::Abs(
InScale.Z) <= Tolerance)
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
ENoInit
Definition CoreMiscDefines.h:158
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_SERIALIZE_VARIANT_FROM_MISMATCHED_TAG(AR_OR_SLOT, ALIAS, TYPE, ALT_TYPE)
Definition LargeWorldCoordinatesSerializer.h:9
#define logOrEnsureNanError(_FormatString_,...)
Definition LogMacros.h:436
@ One
Definition PropertyPathHelpersTest.h:16
#define ScalarRegister
Definition ScalarRegister.h:239
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
FORCEINLINE VectorRegister4Float VectorSubtract(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:731
FORCEINLINE uint32 VectorAnyGreaterThan(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1917
FORCEINLINE VectorRegister4Float VectorMin(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1686
FORCEINLINE VectorRegister4Float VectorDot4(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:901
FORCEINLINE VectorRegister4Float MakeVectorRegister(uint32 X, uint32 Y, uint32 Z, uint32 W)
Definition UnrealMathFPU.h:195
FORCEINLINE VectorRegister4Float VectorSet_W1(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1407
#define VectorShuffle(Vec1, Vec2, X, Y, Z, W)
Definition UnrealMathFPU.h:652
FORCEINLINE VectorRegister4Float VectorMultiply(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:758
FORCEINLINE VectorRegister4Float VectorMax(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1713
FORCEINLINE VectorRegister4Float VectorLoadFloat1(const float *Ptr)
Definition UnrealMathFPU.h:468
VectorRegister4Float VectorLoadAligned(const float *Ptr)
Definition UnrealMathFPU.h:451
FORCEINLINE VectorRegister4Float VectorMultiplyAdd(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2, const VectorRegister4Float &Vec3)
Definition UnrealMathFPU.h:786
FORCEINLINE VectorRegister4Float VectorSelect(const VectorRegister4Float &Mask, const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1105
FORCEINLINE VectorRegister4Double VectorOneDouble(void)
Definition UnrealMathFPU.h:351
FORCEINLINE VectorRegister4Float VectorCompareGE(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1000
FORCEINLINE VectorRegister4Double MakeVectorRegisterDouble(uint64 X, uint64 Y, uint64 Z, uint64 W)
Definition UnrealMathFPU.h:185
FORCEINLINE VectorRegister4Float VectorSet_W0(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1391
FORCEINLINE VectorRegister4Float VectorNegate(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:687
FORCEINLINE VectorRegister4Float VectorAbs(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:661
FORCEINLINE VectorRegister4Float VectorAdd(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:704
void VectorStoreAligned(const VectorRegister4Float &Vec, float *Ptr)
Definition UnrealMathFPU.h:534
#define VectorSwizzle(Vec, X, Y, Z, W)
Definition UnrealMathFPU.h:639
FORCEINLINE VectorRegister4Float VectorQuaternionMultiply2(const VectorRegister4Float &Quat1, const VectorRegister4Float &Quat2)
Definition UnrealMathFPU.h:1517
bool VectorContainsNaNOrInfinite(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1960
FORCEINLINE void VectorStoreFloat3(const VectorRegister4Float &Vec, float *Dst)
Definition UnrealMathFPU.h:594
FORCEINLINE void VectorStoreFloat1(const VectorRegister4Float &Vec, float *Dst)
Definition UnrealMathFPU.h:610
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloatFromDouble(const VectorRegister4Double &Vec4d)
Definition UnrealMathFPU.h:262
#define VectorReplicate(Vec, ElementIndex)
Definition UnrealMathFPU.h:627
FORCEINLINE VectorRegister4Float VectorSign(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2204
#define UE_SMALL_NUMBER
Definition UnrealMathUtility.h:130
#define UE_KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:131
FORCEINLINE VectorRegister4Float VectorAccumulateQuaternionShortestPath(VectorRegister4Float A, VectorRegister4Float B)
Definition UnrealMathVectorCommon.h.inl:571
FORCEINLINE VectorRegister4Float VectorZero(void)
Definition UnrealMathVectorCommon.h.inl:16
FORCEINLINE VectorRegister4Float VectorReciprocalAccurate(VectorRegister4Float Vec)
Definition UnrealMathVectorCommon.h.inl:391
FORCEINLINE VectorRegister4Float VectorNormalizeSafe(VectorRegister4Float Vector, VectorRegister4Float DefaultValue)
Definition UnrealMathVectorCommon.h.inl:425
FORCEINLINE uint32 VectorAnyLesserThan(VectorRegister4Float Vec1, VectorRegister4Float Vec2)
Definition UnrealMathVectorCommon.h.inl:450
FORCEINLINE VectorRegister4Float VectorOne(void)
Definition UnrealMathVectorCommon.h.inl:21
FORCEINLINE VectorRegister4Float VectorQuaternionInverse(VectorRegister4Float NormalizedQuat)
Definition UnrealMathVectorCommon.h.inl:723
FORCEINLINE VectorRegister4Float VectorQuaternionRotateVector(VectorRegister4Float Quat, VectorRegister4Float VectorW0)
Definition UnrealMathVectorCommon.h.inl:741
FORCEINLINE VectorRegister4Float VectorQuaternionInverseRotateVector(VectorRegister4Float Quat, VectorRegister4Float VectorW0)
Definition UnrealMathVectorCommon.h.inl:783
FORCEINLINE VectorRegister4Float VectorLerpQuat(VectorRegister4Float A, VectorRegister4Float B, VectorRegister4Float Alpha)
Definition UnrealMathVectorCommon.h.inl:660
FORCEINLINE VectorRegister4Float VectorLoadFloat3_W0(const float *Ptr)
VectorLoadFloat3_W0.
Definition UnrealMathVectorCommon.h.inl:129
FORCEINLINE VectorRegister4Float VectorNormalizeQuaternion(VectorRegister4Float UnnormalizedQuat)
Definition UnrealMathVectorCommon.h.inl:600
#define ZERO_ANIMWEIGHT_THRESH
Definition VectorRegister.h:133
std::conditional_t< std::is_same_v< T, float >, PersistentVectorRegister4Float, std::conditional_t< std::is_same_v< T, double >, PersistentVectorRegister4Double, void > > TPersistentVectorRegisterType
Definition VectorRegister.h:115
typename UE::Math::VectorRegisterPrivate::TVectorRegisterTypeHelper< T >::Type TVectorRegisterType
Definition VectorRegister.h:49
Definition Archive.h:1208
Definition NameTypes.h:617
constexpr VectorRegister4Float FloatZero
Definition UnrealMathVectorConstants.h.inl:41
constexpr VectorRegister4Float ThreshQuatNormalized
Definition UnrealMathVectorConstants.h.inl:54
constexpr VectorRegister4Float SmallNumber
Definition UnrealMathVectorConstants.h.inl:53
constexpr VectorRegister4Float FloatMinus1_111
Definition UnrealMathVectorConstants.h.inl:49
constexpr VectorRegister4Float Float0001
Definition UnrealMathVectorConstants.h.inl:43
constexpr VectorRegister4Float Float1110
Definition UnrealMathVectorConstants.h.inl:45
constexpr float Tolerance
Definition StaticMesh.cpp:310
UE_STRING_CLASS Result(Forward< LhsType >(Lhs), RhsLen)
Definition String.cpp.inl:732
Definition AdvancedWidgetsModule.cpp:13
static float Log2(float Value)
Definition UnrealMathUtility.h:722
void Mirror(EAxis::Type MirrorAxis, EAxis::Type FlipAxis)
Definition Matrix.inl:847
TVector< T > GetScaledAxis(EAxis::Type Axis) const
Definition Matrix.inl:647
void SetAxis(int32 i, const TVector< T > &Axis)
Definition Matrix.inl:691
TVector< T > GetOrigin() const
Definition Matrix.inl:641
void RemoveScaling(T Tolerance=UE_SMALL_NUMBER)
Definition Matrix.inl:435
static UE_FORCEINLINE_HINT TQuat< T > MakeFromRotator(const TRotator< T > &R)
Definition Quat.h:122