4
5
22
23
55 M[0][0] = 1;
M[0][1] = 0;
M[0][2] = 0;
M[0][3] = 0;
56 M[1][0] = 0;
M[1][1] = 1;
M[1][2] = 0;
M[1][3] = 0;
57 M[2][0] = 0;
M[2][1] = 0;
M[2][2] = 1;
M[2][3] = 0;
58 M[3][0] = 0;
M[3][1] = 0;
M[3][2] = 0;
M[3][3] = 1;
100 *
this = *
this +
Other;
124 *
this = *
this *
Other;
168 return !(*
this ==
Other);
205
206
207
259 M[1][1] * (
M[2][2] *
M[3][3] -
M[2][3] *
M[3][2]) -
260 M[2][1] * (
M[1][2] *
M[3][3] -
M[1][3] *
M[3][2]) +
261 M[3][1] * (
M[1][2] *
M[2][3] -
M[1][3] *
M[2][2])
264 M[0][1] * (
M[2][2] *
M[3][3] -
M[2][3] *
M[3][2]) -
265 M[2][1] * (
M[0][2] *
M[3][3] -
M[0][3] *
M[3][2]) +
266 M[3][1] * (
M[0][2] *
M[2][3] -
M[0][3] *
M[2][2])
269 M[0][1] * (
M[1][2] *
M[3][3] -
M[1][3] *
M[3][2]) -
270 M[1][1] * (
M[0][2] *
M[3][3] -
M[0][3] *
M[3][2]) +
271 M[3][1] * (
M[0][2] *
M[1][3] -
M[0][3] *
M[1][2])
274 M[0][1] * (
M[1][2] *
M[2][3] -
M[1][3] *
M[2][2]) -
275 M[1][1] * (
M[0][2] *
M[2][3] -
M[0][3] *
M[2][2]) +
276 M[2][1] * (
M[0][2] *
M[1][3] -
M[0][3] *
M[1][2])
285 M[0][0] * (
M[1][1] *
M[2][2] -
M[1][2] *
M[2][1]) -
286 M[1][0] * (
M[0][1] *
M[2][2] -
M[0][2] *
M[2][1]) +
287 M[2][0] * (
M[0][1] *
M[1][2] -
M[0][2] *
M[1][1]);
302 ErrorEnsure(
TEXT(
"TMatrix<T>::InverseFast(), trying to invert a NIL matrix, this results in NaNs! Use Inverse() instead."));
310 ErrorEnsure(
TEXT(
"TMatrix<T>::InverseFast(), trying to invert a non-invertible matrix, this results in NaNs! Use Inverse() instead."));
357 TA.
M[0][0] =
this->
M[1][1] *
this->
M[2][2] -
this->
M[1][2] *
this->
M[2][1];
358 TA.
M[0][1] =
this->
M[1][2] *
this->
M[2][0] -
this->
M[1][0] *
this->
M[2][2];
359 TA.
M[0][2] =
this->
M[1][0] *
this->
M[2][1] -
this->
M[1][1] *
this->
M[2][0];
362 TA.
M[1][0] =
this->
M[2][1] *
this->
M[0][2] -
this->
M[2][2] *
this->
M[0][1];
363 TA.
M[1][1] =
this->
M[2][2] *
this->
M[0][0] -
this->
M[2][0] *
this->
M[0][2];
364 TA.
M[1][2] =
this->
M[2][0] *
this->
M[0][1] -
this->
M[2][1] *
this->
M[0][0];
367 TA.
M[2][0] =
this->
M[0][1] *
this->
M[1][2] -
this->
M[0][2] *
this->
M[1][1];
368 TA.
M[2][1] =
this->
M[0][2] *
this->
M[1][0] -
this->
M[0][0] *
this->
M[1][2];
369 TA.
M[2][2] =
this->
M[0][0] *
this->
M[1][1] -
this->
M[0][1] *
this->
M[1][0];
387 const T SquareSum0 = (
M[0][0] *
M[0][0]) + (
M[0][1] *
M[0][1]) + (
M[0][2] *
M[0][2]);
388 const T SquareSum1 = (
M[1][0] *
M[1][0]) + (
M[1][1] *
M[1][1]) + (
M[1][2] *
M[1][2]);
389 const T SquareSum2 = (
M[2][0] *
M[2][0]) + (
M[2][1] *
M[2][1]) + (
M[2][2] *
M[2][2]);
421 const T SquareSum0 = (
M[0][0] *
M[0][0]) + (
M[0][1] *
M[0][1]) + (
M[0][2] *
M[0][2]);
422 const T SquareSum1 = (
M[1][0] *
M[1][0]) + (
M[1][1] *
M[1][1]) + (
M[1][2] *
M[1][2]);
423 const T SquareSum2 = (
M[2][0] *
M[2][0]) + (
M[2][1] *
M[2][1]) + (
M[2][2] *
M[2][2]);
618 X.
X =
M[0][0];
X.
Y =
M[0][1];
X.
Z =
M[0][2];
619 Y.
X =
M[1][0];
Y.
Y =
M[1][1];
Y.
Z =
M[1][2];
620 Z.
X =
M[2][0];
Z.
Y =
M[2][1];
Z.
Z =
M[2][2];
791
792
793
843
844
852 TPlane<
T>(0.0f, 0.0f, 0.0f, 1.0f)
859
860
884
885
938inline bool FMatrix44f::SerializeFromMismatchedTag(FName StructTag, FArchive& Ar)
940 return UE_SERIALIZE_VARIANT_FROM_MISMATCHED_TAG(Ar, Matrix, Matrix44f, Matrix44d);
944inline bool FMatrix44d::SerializeFromMismatchedTag(FName StructTag, FArchive& Ar)
946 return UE_SERIALIZE_VARIANT_FROM_MISMATCHED_TAG(Ar, Matrix, Matrix44d, Matrix44f);
#define UE_BUILD_SHIPPING
#define UE_DECLARE_LWC_TYPE(...)