10#include <initializer_list>
12#if !COMPILE_WITHOUT_UNREAL_SUPPORT
25 float Atan2(
float x,
float y) {
return atan2(x, y); }
26 double Atan2(
double x,
double y) {
return atan2(x, y); }
32 template<
class T,
int d>
39 template<
class T,
int d>
78 TVector(
const T& V0,
const T& V1,
const T& V2)
86 TVector(
const T& V0,
const T& V1,
const T& V2,
const T& V3)
94#if !COMPILE_WITHOUT_UNREAL_SUPPORT
116 V[i] =
static_cast<T
>(
Other[i]);
125 (*this)[i] =
Other[i];
155#if COMPILE_WITHOUT_UNREAL_SUPPORT
167 Stream.write(
reinterpret_cast<const char*
>(&V[i]),
sizeof(
FElement));
175 if (L.V[i] !=
R.V[i])
192 if (!FMath::IsFinite(V[i]))
383#if !COMPILE_WITHOUT_UNREAL_SUPPORT
429#if COMPILE_WITHOUT_UNREAL_SUPPORT
432 Stream.read(
reinterpret_cast<char*
>(&
X),
sizeof(
X));
433 Stream.read(
reinterpret_cast<char*
>(&
Y),
sizeof(
Y));
434 Stream.read(
reinterpret_cast<char*
>(&
Z),
sizeof(
Z));
439 Stream.write(
reinterpret_cast<const char*
>(&
X),
sizeof(
X));
440 Stream.write(
reinterpret_cast<const char*
>(&
Y),
sizeof(
Y));
441 Stream.write(
reinterpret_cast<const char*
>(&
Z),
sizeof(
Z));
449 return X <= V.X &&
Y <= V.Y &&
Z <= V.Z;
453 return X >= V.X &&
Y >= V.Y &&
Z >= V.Z;
521 return (
X >
Y &&
X >
Z) ?
X : (
Y >
Z ?
Y :
Z);
525 return (
X <
Y &&
X <
Z) ?
X : (
Y <
Z ?
Y :
Z);
529 return (
X >
Y &&
X >
Z) ? 0 : (
Y >
Z ? 1 : 2);
533 return (
X ==
Y || !((
Y <
X) ^ (
X <
Z))) ?
X : !((
X <
Y) ^ (
Y <
Z)) ?
Y :
Z;
539 return TVector<FRealSingle, 3>(V1.X > V2.X ? V1.X : V2.X, V1.Y > V2.Y ? V1.Y : V2.Y, V1.Z > V2.Z ? V1.Z : V2.Z);
543 if ((
X >= -Epsilon) && (
X <= Epsilon)) {
X = 0.0f; }
544 if ((
Y >= -Epsilon) && (
Y <= Epsilon)) {
Y = 0.0f; }
545 if ((
Z >= -Epsilon) && (
Z <= Epsilon)) {
Z = 0.0f; }
572 *
this = AxisVector(0);
576 *
this = (*this) /
Size;
599 return FMath::Atan2(s, c);
604 return (P1 - P0) / Dt;
609 return (
B -
A).IsNearlyZero(Epsilon);
635#if COMPILE_WITHOUT_UNREAL_SUPPORT
638 Stream.read(
reinterpret_cast<char*
>(&
X),
sizeof(
X));
639 Stream.read(
reinterpret_cast<char*
>(&
Y),
sizeof(
Y));
640 Stream.read(
reinterpret_cast<char*
>(&
Z),
sizeof(
Z));
645 Stream.write(
reinterpret_cast<const char*
>(&
X),
sizeof(
X));
646 Stream.write(
reinterpret_cast<const char*
>(&
Y),
sizeof(
Y));
647 Stream.write(
reinterpret_cast<const char*
>(&
Z),
sizeof(
Z));
655 return X <= V.X &&
Y <= V.Y &&
Z <= V.Z;
659 return X >= V.X &&
Y >= V.Y &&
Z >= V.Z;
727 return (
X >
Y &&
X >
Z) ?
X : (
Y >
Z ?
Y :
Z);
731 return (
X <
Y&&
X <
Z) ?
X : (
Y <
Z ?
Y :
Z);
735 return (
X >
Y &&
X >
Z) ? 0 : (
Y >
Z ? 1 : 2);
739 return (
X ==
Y || !((
Y <
X) ^ (
X <
Z))) ?
X : !((
X <
Y) ^ (
Y <
Z)) ?
Y :
Z;
745 return TVector<FRealDouble, 3>(V1.X > V2.X ? V1.X : V2.X, V1.Y > V2.Y ? V1.Y : V2.Y, V1.Z > V2.Z ? V1.Z : V2.Z);
749 if ((
X >= -Epsilon) && (
X <= Epsilon)) {
X = 0.0; }
750 if ((
Y >= -Epsilon) && (
Y <= Epsilon)) {
Y = 0.0; }
751 if ((
Z >= -Epsilon) && (
Z <= Epsilon)) {
Z = 0.0; }
780 *
this = AxisVector(0);
784 *
this = (*this) /
Size;
807 return FMath::Atan2(s, c);
812 return (P1 - P0) / Dt;
817 return (
B -
A).IsNearlyZero(Epsilon);
837#if COMPILE_WITHOUT_UNREAL_SUPPORT
840 Stream.read(
reinterpret_cast<char*
>(&
X),
sizeof(
X));
841 Stream.read(
reinterpret_cast<char*
>(&
Y),
sizeof(
Y));
844 template <
typename OtherT>
847 X = ((
decltype(
X))InVector[0]);
848 Y = ((
decltype(
Y))InVector[1]);
850#if COMPILE_WITHOUT_UNREAL_SUPPORT
853 Stream.write(
reinterpret_cast<const char*
>(&
X),
sizeof(
X));
854 Stream.write(
reinterpret_cast<const char*
>(&
Y),
sizeof(
Y));
868 return X >
Y ?
X :
Y;
872 return X <
Y ?
X :
Y;
925#if COMPILE_WITHOUT_UNREAL_SUPPORT
928 Stream.read(
reinterpret_cast<char*
>(&
X),
sizeof(
X));
929 Stream.read(
reinterpret_cast<char*
>(&
Y),
sizeof(
Y));
932 template <
typename OtherT>
935 X = ((
decltype(
X))InVector[0]);
936 Y = ((
decltype(
Y))InVector[1]);
938#if COMPILE_WITHOUT_UNREAL_SUPPORT
941 Stream.write(
reinterpret_cast<const char*
>(&
X),
sizeof(
X));
942 Stream.write(
reinterpret_cast<const char*
>(&
Y),
sizeof(
Y));
956 return X >
Y ?
X :
Y;
960 return X <
Y ?
X :
Y;
1018#if !COMPILE_WITHOUT_UNREAL_SUPPORT
1021 X =
static_cast<T
>(
Other.X);
1022 Y =
static_cast<T
>(
Other.Y);
1023 Z =
static_cast<T
>(
Other.Z);
1033#if COMPILE_WITHOUT_UNREAL_SUPPORT
1036 Stream.read(
reinterpret_cast<char*
>(&
X),
sizeof(T));
1037 Stream.read(
reinterpret_cast<char*
>(&
Y),
sizeof(T));
1038 Stream.read(
reinterpret_cast<char*
>(&
Z),
sizeof(T));
1042 Stream.write(
reinterpret_cast<const char*
>(&
X),
sizeof(T));
1043 Stream.write(
reinterpret_cast<const char*
>(&
Y),
sizeof(T));
1044 Stream.write(
reinterpret_cast<const char*
>(&
Z),
sizeof(T));
1064 Result[
Axis] = (T)1;
1073 return (
X ==
Y || !((
Y <
X) ^ (
X <
Z))) ?
X : !((
X <
Y) ^ (
Y <
Z)) ?
Y :
Z;
1085 return AxisVector(0);
1086 return (*
this) / FMath::Sqrt(
SizeSqr);
1090 T
Size = SizeSquared();
1093 *
this = AxisVector(0);
1097 *
this = (*this) /
Size;
1103 return !FMath::IsFinite(
X) || !FMath::IsFinite(
Y) || !FMath::IsFinite(
Z);
1149#if COMPILE_WITHOUT_UNREAL_SUPPORT
1152 return V1[0] * V2[0] + V1[1] * V2[1] + V1[2] * V2[2];
1157 Result[0] = V1[1] * V2[2] - V1[2] * V2[1];
1158 Result[1] = V1[2] * V2[0] - V1[0] * V2[2];
1159 Result[2] = V1[0] * V2[1] - V1[1] * V2[0];
1207 template<
typename OtherT>
1212#if COMPILE_WITHOUT_UNREAL_SUPPORT
1215 Stream.read(
reinterpret_cast<char*
>(&
X),
sizeof(
int32));
1216 Stream.read(
reinterpret_cast<char*
>(&
Y),
sizeof(
int32));
1233#if COMPILE_WITHOUT_UNREAL_SUPPORT
1241 template<
typename OtherT>
1280 return {
X *
S,
Y *
S};
1291 return (L.X ==
R.X) && (L.Y ==
R.Y);
1332 template<
typename T,
int d>
1335 static_assert(std::is_same_v<T, float> || std::is_same_v<T, double>,
"only float or double are supported by this function");
1336 for (
int32 Idx = 0; Idx < d; ++Idx)
1358 template<
typename T,
int d>
1362 for (
int32 Idx = 0; Idx < d; ++Idx)
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32 Size
Definition VulkanMemory.cpp:4034
TVector< FRealDouble, 2 > operator*(const TVector< FRealDouble, 2 > &Other) const
Definition Vector.h:991
TVector(const FRealDouble x, const FRealDouble y)
Definition Vector.h:921
TVector(const TVector< OtherT, 2 > &InVector)
Definition Vector.h:933
TVector< FRealDouble, 2 > operator/(const FRealDouble Other) const
Definition Vector.h:983
static Pair< FRealDouble, int32 > MaxAndAxis(const TVector< FRealDouble, 2 > &V1, const TVector< FRealDouble, 2 > &V2)
Definition Vector.h:966
FRealDouble Max() const
Definition Vector.h:954
static TVector< FRealDouble, 2 > Max(const TVector< FRealDouble, 2 > &V1, const TVector< FRealDouble, 2 > &V2)
Definition Vector.h:962
FRealDouble Min() const
Definition Vector.h:958
TVector(const FVector2d &vec)
Definition Vector.h:923
FRealDouble Product() const
Definition Vector.h:950
decltype(FVector2d::X) FElement
Definition Vector.h:913
TVector(const FRealDouble x)
Definition Vector.h:919
static TVector< FRealDouble, 2 > AxisVector(const int32 Axis)
Definition Vector.h:945
TVector< FRealDouble, 2 > operator/(const TVector< T2, 2 > &Other) const
Definition Vector.h:979
TVector< FRealDouble, 2 > operator*(const FRealDouble Other) const
Definition Vector.h:987
TVector(const UE::Math::TVector< FRealSingle > &vec)
Definition Vector.h:629
bool operator>=(const TVector< FRealDouble, 3 > &V) const
Definition Vector.h:657
FRealDouble Min() const
Definition Vector.h:729
TVector< FRealDouble, 3 > GetOrthogonalVector() const
Definition Vector.h:787
bool operator<=(const TVector< FRealDouble, 3 > &V) const
Definition Vector.h:653
static bool IsNearlyEqual(const TVector< FRealDouble, 3 > &A, const TVector< FRealDouble, 3 > &B, const FRealDouble Epsilon)
Definition Vector.h:815
TVector< FRealDouble, 3 > operator*(const FRealDouble Other) const
Definition Vector.h:673
void FlushToZero(FRealDouble Epsilon)
Definition Vector.h:747
static TVector< FRealDouble, 3 > CalculateVelocity(const TVector< FRealDouble, 3 > &P0, const TVector< FRealDouble, 3 > &P1, const FRealDouble Dt)
Definition Vector.h:810
TVector< FRealDouble, 3 > ComponentwiseMax(const TVector< FRealDouble, 3 > &Other) const
Definition Vector.h:742
static TVector< FRealDouble, 3 > Lerp(const TVector< FRealDouble, 3 > &V1, const TVector< FRealDouble, 3 > &V2, const FRealDouble F)
Definition Vector.h:650
FRealDouble Mid() const
Definition Vector.h:737
TVector(const FVector4 &vec)
Definition Vector.h:633
TVector< FRealDouble, 3 > operator+(const FRealDouble Other) const
Definition Vector.h:665
FRealDouble Max() const
Definition Vector.h:725
TVector< FRealDouble, 3 > ComponentwiseMin(const TVector< FRealDouble, 3 > &Other) const
Definition Vector.h:741
FRealDouble Product() const
Definition Vector.h:721
static Pair< FRealDouble, int32 > MaxAndAxis(const TVector< FRealDouble, 3 > &V1, const TVector< FRealDouble, 3 > &V2)
Definition Vector.h:757
TVector< FRealDouble, 3 > operator-(const TVector< FRealDouble, 3 > &Other) const
Definition Vector.h:689
static FRealDouble DotProduct(const TVector< FRealDouble, 3 > &V1, const TVector< FRealDouble, 3 > &V2)
Definition Vector.h:652
FRealDouble FElement
Definition Vector.h:618
TVector< FRealDouble, 3 > operator*(const TVector< T2, 3 > &Other) const
Definition Vector.h:712
TVector< FRealDouble, 3 > operator-() const
Definition Vector.h:661
friend TVector< FRealDouble, 3 > operator/(const FRealDouble S, const TVector< FRealDouble, 3 > &V)
Definition Vector.h:681
TVector(const FRealDouble x)
Definition Vector.h:625
TVector(const FRealDouble x, const FRealDouble y, const FRealDouble z)
Definition Vector.h:627
TVector< FRealDouble, 3 > operator/(const TVector< T2, 3 > &Other) const
Definition Vector.h:717
static TVector< FRealDouble, 3 > Max(const TVector< FRealDouble, 3 > &V1, const TVector< FRealDouble, 3 > &V2)
Definition Vector.h:743
TVector< FRealDouble, 3 > operator/(const FRealDouble Other) const
Definition Vector.h:677
TVector< FRealDouble, 3 > operator-(const FRealDouble Other) const
Definition Vector.h:669
FRealDouble SafeNormalize(FRealDouble Epsilon=1e-4f)
Definition Vector.h:775
TVector< FRealDouble, 3 > operator-(const TVector< T2, 3 > &Other) const
Definition Vector.h:707
static TVector< FRealDouble, 3 > AxisVector(const int32 Axis)
Definition Vector.h:753
TVector< FRealDouble, 3 > operator/(const TVector< FRealDouble, 3 > &Other) const
Definition Vector.h:697
TVector< FRealDouble, 3 > operator+(const TVector< FRealDouble, 3 > &Other) const
Definition Vector.h:685
TVector(const UE::Math::TVector< FRealDouble > &vec)
Definition Vector.h:631
static FRealDouble AngleBetween(const TVector< FRealDouble, 3 > &V1, const TVector< FRealDouble, 3 > &V2)
Definition Vector.h:803
int32 MaxAxis() const
Definition Vector.h:733
TVector< FRealDouble, 3 > operator*(const TVector< FRealDouble, 3 > &Other) const
Definition Vector.h:693
TVector< FRealDouble, 3 > operator+(const TVector< T2, 3 > &Other) const
Definition Vector.h:702
static TVector< FRealDouble, 3 > CrossProduct(const TVector< FRealDouble, 3 > &V1, const TVector< FRealDouble, 3 > &V2)
Definition Vector.h:651
FRealSingle Product() const
Definition Vector.h:862
TVector(const TVector< OtherT, 2 > &InVector)
Definition Vector.h:845
static TVector< FRealSingle, 2 > AxisVector(const int32 Axis)
Definition Vector.h:857
TVector< FRealSingle, 2 > operator/(const TVector< T2, 2 > &Other) const
Definition Vector.h:891
FRealSingle Min() const
Definition Vector.h:870
TVector< FRealSingle, 2 > operator/(const FRealSingle Other) const
Definition Vector.h:895
TVector< FRealSingle, 2 > operator*(const FRealSingle Other) const
Definition Vector.h:899
decltype(FVector2f::X) FElement
Definition Vector.h:825
TVector(const FRealSingle x)
Definition Vector.h:831
TVector(const FVector2f &vec)
Definition Vector.h:835
static Pair< FRealSingle, int32 > MaxAndAxis(const TVector< FRealSingle, 2 > &V1, const TVector< FRealSingle, 2 > &V2)
Definition Vector.h:878
FRealSingle Max() const
Definition Vector.h:866
static TVector< FRealSingle, 2 > Max(const TVector< FRealSingle, 2 > &V1, const TVector< FRealSingle, 2 > &V2)
Definition Vector.h:874
TVector(const FRealSingle x, const FRealSingle y)
Definition Vector.h:833
TVector< FRealSingle, 2 > operator*(const TVector< FRealSingle, 2 > &Other) const
Definition Vector.h:903
TVector(const UE::Math::TVector4< FRealSingle > &vec)
Definition Vector.h:424
static TVector< FRealSingle, 3 > CalculateVelocity(const TVector< FRealSingle, 3 > &P0, const TVector< FRealSingle, 3 > &P1, const FRealSingle Dt)
Definition Vector.h:602
TVector< FRealSingle, 3 > operator-(const TVector< T2, 3 > &Other) const
Definition Vector.h:501
static FRealSingle DotProduct(const TVector< FRealSingle, 3 > &V1, const TVector< FRealSingle, 3 > &V2)
Definition Vector.h:446
FRealSingle Product() const
Definition Vector.h:515
FRealSingle Max() const
Definition Vector.h:519
TVector< FRealSingle, 3 > operator*(const TVector< T2, 3 > &Other) const
Definition Vector.h:506
TVector< FRealSingle, 3 > ComponentwiseMax(const TVector< FRealSingle, 3 > &Other) const
Definition Vector.h:536
friend TVector< FRealSingle, 3 > operator/(const FRealSingle S, const TVector< FRealSingle, 3 > &V)
Definition Vector.h:475
static TVector< FRealSingle, 3 > CrossProduct(const TVector< FRealSingle, 3 > &V1, const TVector< FRealSingle, 3 > &V2)
Definition Vector.h:445
static FRealSingle AngleBetween(const TVector< FRealSingle, 3 > &V1, const TVector< FRealSingle, 3 > &V2)
Definition Vector.h:595
TVector< FRealSingle, 3 > GetOrthogonalVector() const
Definition Vector.h:579
TVector< FRealSingle, 3 > operator/(const TVector< T2, 3 > &Other) const
Definition Vector.h:511
TVector< FRealSingle, 3 > operator/(const FRealSingle Other) const
Definition Vector.h:471
static bool IsNearlyEqual(const TVector< FRealSingle, 3 > &A, const TVector< FRealSingle, 3 > &B, const FRealSingle Epsilon)
Definition Vector.h:607
static TVector< FRealSingle, 3 > AxisVector(const int32 Axis)
Definition Vector.h:547
TVector< FRealSingle, 3 > operator-(const TVector< FRealSingle, 3 > &Other) const
Definition Vector.h:483
void FlushToZero(FRealSingle Epsilon)
Definition Vector.h:541
TVector< FRealSingle, 3 > operator*(const TVector< FRealSingle, 3 > &Other) const
Definition Vector.h:487
TVector(const FRealSingle x)
Definition Vector.h:416
FRealSingle FElement
Definition Vector.h:409
static TVector< FRealSingle, 3 > Max(const TVector< FRealSingle, 3 > &V1, const TVector< FRealSingle, 3 > &V2)
Definition Vector.h:537
bool operator<=(const TVector< FRealSingle, 3 > &V) const
Definition Vector.h:447
TVector< FRealSingle, 3 > operator+(const TVector< FRealSingle, 3 > &Other) const
Definition Vector.h:479
TVector< FRealSingle, 3 > operator-() const
Definition Vector.h:455
TVector< FRealSingle, 3 > operator+(const TVector< T2, 3 > &Other) const
Definition Vector.h:496
FRealSingle SafeNormalize(FRealSingle Epsilon=1e-4f)
Definition Vector.h:567
FRealSingle Min() const
Definition Vector.h:523
TVector< FRealSingle, 3 > ComponentwiseMin(const TVector< FRealSingle, 3 > &Other) const
Definition Vector.h:535
TVector(const FRealSingle x, const FRealSingle y, const FRealSingle z)
Definition Vector.h:418
static Pair< FRealSingle, int32 > MaxAndAxis(const TVector< FRealSingle, 3 > &V1, const TVector< FRealSingle, 3 > &V2)
Definition Vector.h:549
TVector< FRealSingle, 3 > operator+(const FRealSingle Other) const
Definition Vector.h:459
TVector< FRealSingle, 3 > operator-(const FRealSingle Other) const
Definition Vector.h:463
int32 MaxAxis() const
Definition Vector.h:527
TVector(const UE::Math::TVector< FRealDouble > &vec)
Definition Vector.h:422
bool operator>=(const TVector< FRealSingle, 3 > &V) const
Definition Vector.h:451
FRealSingle Mid() const
Definition Vector.h:531
TVector(const UE::Math::TVector< FRealSingle > &vec)
Definition Vector.h:420
TVector< FRealSingle, 3 > operator*(const FRealSingle Other) const
Definition Vector.h:467
TVector< FRealSingle, 3 > operator/(const TVector< FRealSingle, 3 > &Other) const
Definition Vector.h:491
TVector(const UE::Math::TVector4< FRealDouble > &vec)
Definition Vector.h:426
static TVector< FRealSingle, 3 > Lerp(const TVector< FRealSingle, 3 > &V1, const TVector< FRealSingle, 3 > &V2, const FRealSingle F)
Definition Vector.h:444
FReal FElement
Definition Vector.h:388
TVector(const FReal x)
Definition Vector.h:397
TVector(const FReal x, const FReal y, const FReal z, const FReal w)
Definition Vector.h:399
TVector(const BaseType &vec)
Definition Vector.h:401
FORCEINLINE TVector< T, 3 > & operator+=(const TVector< T, 3 > &Other)
Definition Vector.h:1120
FORCEINLINE TVector< T, 3 > ComponentwiseMax(const TVector< T, 3 > &Other) const
Definition Vector.h:1077
FORCEINLINE TVector< T, 3 > operator+(const TVector< T, 3 > &Other) const
Definition Vector.h:1115
T FElement
Definition Vector.h:1002
FORCEINLINE int32 Num() const
Definition Vector.h:1016
FORCEINLINE T Size() const
Definition Vector.h:1055
T X
Definition Vector.h:1168
FORCEINLINE TVector< T, 3 > operator-(const TVector< T, 3 > &Other) const
Definition Vector.h:1117
T Z
Definition Vector.h:1170
FORCEINLINE TVector< T, 3 > operator+(const T Scalar) const
Definition Vector.h:1116
FORCEINLINE T SafeNormalize()
Definition Vector.h:1088
FORCEINLINE TVector< T, 3 > operator-(const T Scalar) const
Definition Vector.h:1118
FORCEINLINE TVector< T, 3 > & operator*=(const T S)
Definition Vector.h:1142
TVector< T, 3 > GetSafeNormal() const
Definition Vector.h:1079
FORCEINLINE T Max() const
Definition Vector.h:1070
FORCEINLINE TVector< T, 3 > & operator-=(const TVector< T, 3 > &Other)
Definition Vector.h:1127
PRAGMA_ENABLE_DEPRECATION_WARNINGS FORCEINLINE TVector()=default
FORCEINLINE T Product() const
Definition Vector.h:1060
FORCEINLINE T Min() const
Definition Vector.h:1069
FORCEINLINE TVector(T InX)
Definition Vector.h:1011
FORCEINLINE TVector< T, 3 > operator/(const TVector< T, 3 > &Other) const
Definition Vector.h:1113
TVector & operator=(const TVector &)=default
FORCEINLINE TVector(T InX, T InY, T InZ)
Definition Vector.h:1013
PRAGMA_DISABLE_DEPRECATION_WARNINGS TVector(const TVector &)=default
PRAGMA_ENABLE_DEPRECATION_WARNINGS FORCEINLINE TVector< T, 3 > operator-() const
Definition Vector.h:1111
static FORCEINLINE TVector< T, 3 > AxisVector(const int32 Axis)
Definition Vector.h:1061
T Y
Definition Vector.h:1169
FORCEINLINE TVector< T, 3 > ComponentwiseMin(const TVector< T, 3 > &Other) const
Definition Vector.h:1076
FORCEINLINE bool operator==(const TVector< T, 3 > &Other) const
Definition Vector.h:1017
FORCEINLINE bool ContainsNaN() const
Definition Vector.h:1101
T Mid() const
Definition Vector.h:1071
FORCEINLINE TVector< T, 3 > operator*(const T S) const
Definition Vector.h:1141
FORCEINLINE T & operator[](int32 Idx)
Definition Vector.h:1108
FORCEINLINE TVector(const TVector< T2, 3 > &Other)
Definition Vector.h:1027
FORCEINLINE TVector< T, 3 > & operator=(const TVector< T2, 3 > &Other)
Definition Vector.h:1048
FORCEINLINE TVector< T, 3 > & operator/=(const TVector< T, 3 > &Other)
Definition Vector.h:1134
FORCEINLINE TVector(const UE::Math::TVector< FReal > &Other)
Definition Vector.h:1019
FORCEINLINE T SizeSquared() const
Definition Vector.h:1067
PRAGMA_DISABLE_DEPRECATION_WARNINGS FORCEINLINE T operator[](int32 Idx) const
Definition Vector.h:1107
FORCEINLINE TVector< T, 3 > operator*(const TVector< T, 3 > &Other) const
Definition Vector.h:1112
FORCEINLINE TVector< T, 3 > operator/(const T Scalar) const
Definition Vector.h:1114
FElement Y
Definition Vector.h:1306
FORCEINLINE TVector(const TVector< OtherT, 2 > &InVector)
Definition Vector.h:1208
PRAGMA_ENABLE_DEPRECATION_WARNINGS FORCEINLINE TVector< FElement, 2 > operator-() const
Definition Vector.h:1254
FORCEINLINE FElement & operator[](const int32 Idx)
Definition Vector.h:1251
PRAGMA_DISABLE_DEPRECATION_WARNINGS TVector(const TVector &)=default
FORCEINLINE TVector< FElement, 2 > operator*(const FElement &S) const
Definition Vector.h:1278
FORCEINLINE friend bool operator==(const TVector< FElement, 2 > &L, const TVector< FElement, 2 > &R)
Definition Vector.h:1289
FORCEINLINE TVector< FElement, 2 > operator*(const TVector< FElement, 2 > &Other) const
Definition Vector.h:1255
FORCEINLINE TVector< FElement, 2 > & operator-=(const TVector< FElement, 2 > &Other)
Definition Vector.h:1266
int32 FElement
Definition Vector.h:1192
FORCEINLINE TVector< FElement, 2 > & operator*=(const FElement &S)
Definition Vector.h:1282
PRAGMA_ENABLE_DEPRECATION_WARNINGS FORCEINLINE TVector()=default
PRAGMA_DISABLE_DEPRECATION_WARNINGS FORCEINLINE FElement operator[](const int32 Idx) const
Definition Vector.h:1250
static FORCEINLINE TVector< FElement, 2 > AxisVector(const int32 Axis)
Definition Vector.h:1226
FORCEINLINE TVector(const FElement InX)
Definition Vector.h:1201
FORCEINLINE TVector(const FElement InX, const FElement InY)
Definition Vector.h:1204
FORCEINLINE TVector< FElement, 2 > & operator/=(const TVector< FElement, 2 > &Other)
Definition Vector.h:1272
FORCEINLINE TVector< FElement, 2 > operator+(const TVector< FElement, 2 > &Other) const
Definition Vector.h:1257
FORCEINLINE TVector< FElement, 2 > & operator+=(const TVector< FElement, 2 > &Other)
Definition Vector.h:1260
FORCEINLINE TVector< FElement, 2 > operator-(const TVector< FElement, 2 > &Other) const
Definition Vector.h:1258
TVector & operator=(const TVector &)=default
FElement X
Definition Vector.h:1305
FORCEINLINE FElement Product() const
Definition Vector.h:1221
FORCEINLINE TVector< FElement, 2 > operator/(const TVector< FElement, 2 > &Other) const
Definition Vector.h:1256
FORCEINLINE int32 Num() const
Definition Vector.h:1219
FORCEINLINE friend bool operator!=(const TVector< FElement, 2 > &L, const TVector< FElement, 2 > &R)
Definition Vector.h:1294
FORCEINLINE TVector< int32, 2 > & operator=(const TVector< OtherT, 2 > &Other)
Definition Vector.h:1242
TVector(const TVector< T2, d > &Other)
Definition Vector.h:112
const FElement & operator[](int Index) const
Definition Vector.h:140
static const int NumElements
Definition Vector.h:44
TVector(const TVector &)=default
bool ContainsNaN() const
Definition Vector.h:188
TVector & operator=(const TVector &)=default
TVector(const T &V0, const T &V1)
Definition Vector.h:71
TVector(const T &V0, const T &V1, const T &V2, const T &V3)
Definition Vector.h:86
TVector(const FElement &Element)
Definition Vector.h:52
TVector(std::initializer_list< T > InElements)
Definition Vector.h:60
T FElement
Definition Vector.h:43
TVector< T, d > & operator=(const TVector< T2, d > &Other)
Definition Vector.h:121
friend bool operator==(const TVector< T, d > &L, const TVector< T, d > &R)
Definition Vector.h:171
int32 Num() const
Definition Vector.h:150
FElement & operator[](int Index)
Definition Vector.h:130
friend bool operator!=(const TVector< T, d > &L, const TVector< T, d > &R)
Definition Vector.h:183
TVector(const FVector3d &Other)
Definition Vector.h:103
TVector(const T &V0, const T &V1, const T &V2)
Definition Vector.h:78
TVector(const FVector3f &Other)
Definition Vector.h:96
Definition Archive.h:1208
Definition SkeletalMeshComponent.h:307
@ Y
Definition SimulationModuleBase.h:153
@ X
Definition SimulationModuleBase.h:152
FChaosArchive & operator<<(FChaosArchive &Ar, FRigidParticleControlFlags &Flags)
Definition RigidParticleControlFlags.cpp:15
FArchive & SerializeReal(FArchive &Ar, TVector< T, d > &ValueIn)
Definition Vector.h:1333
FRealDouble FReal
Definition Real.h:22
Pair< T1, T2 > MakePair(const T1 &First, const T2 &Second)
Definition Pair.h:45
float FRealSingle
Definition Real.h:14
double FRealDouble
Definition Real.h:13
FORCEINLINE uint32 GetTypeHash(const FParticleID &Unique)
Definition GeometryParticles.h:99
TVector< T, 3 > operator/(const T S, const TVector< T, 3 > &V)
Definition Vector.h:1183
FValue Atan2(const FValue &Lhs, const FValue &Rhs)
Definition ShaderValue.cpp:1564
Definition AdvancedWidgetsModule.cpp:13
float v
Definition radaudio_mdct.cpp:62
U16 Index
Definition radfft.cpp:71
static const bool RequireRangeCheck
Definition Vector.h:35
Definition UnrealMathUtility.h:270
static constexpr UE_FORCEINLINE_HINT T Min3(const T A, const T B, const T C)
Definition UnrealMathUtility.h:558
static constexpr UE_FORCEINLINE_HINT T Max3(const T A, const T B, const T C)
Definition UnrealMathUtility.h:551
Definition NumericLimits.h:41
float Y
Definition Vector2D.h:52
float X
Definition Vector2D.h:49
FReal FReal
Definition Vector4.h:36
static UE_FORCEINLINE_HINT T DotProduct(const TVector< T > &A, const TVector< T > &B)
Definition Vector.h:1559
static UE_FORCEINLINE_HINT TVector< T > CrossProduct(const TVector< T > &A, const TVector< T > &B)
Definition Vector.h:1541