1#ifndef SEAD_MATRIX34_H_
2#define SEAD_MATRIX34_H_
4#include <math/seadQuat.h>
5#include <math/seadVector.h>
142 T a00, T a01, T a02, T a03,
143 T a10, T a11, T a12, T a13,
144 T a20, T a21, T a22, T a23
247 T a00, T a01, T a02, T a03,
248 T a10, T a11, T a12, T a13,
249 T a20, T a21, T a22, T a23,
250 T a30, T a31, T a32, T a33
346static_assert(
sizeof(
Matrix22f) == 0x10,
"sead::Matrix22<T> size mismatch");
347static_assert(
sizeof(
Matrix33f) == 0x24,
"sead::Matrix33<T> size mismatch");
348static_assert(
sizeof(
Matrix34f) == 0x30,
"sead::Matrix34<T> size mismatch");
349static_assert(
sizeof(
Matrix44f) == 0x40,
"sead::Matrix44<T> size mismatch");
358#include <math/seadMatrix.hpp>
Definition seadMatrix.h:23
static const Matrix22 zero
Definition seadMatrix.h:57
Matrix22(T a00, T a01, T a10, T a11)
Definition seadMatrix.hpp:9
Matrix22()
Definition seadMatrix.h:28
void makeZero()
Definition seadMatrix.hpp:52
Matrix22< T > Self
Definition seadMatrix.h:25
static const Matrix22 ident
Definition seadMatrix.h:58
void setTranspose(const Self &n)
Definition seadMatrix.hpp:80
void setInverseTranspose(const Self &n)
Definition seadMatrix.hpp:66
void setMul(const Self &a, const Self &b)
Definition seadMatrix.hpp:73
void makeRIdx(u32 r)
Definition seadMatrix.hpp:94
void transpose()
Definition seadMatrix.hpp:87
T & operator()(s32 i, s32 j)
Definition seadMatrix.hpp:30
T operator()(s32 i, s32 j) const
Definition seadMatrix.hpp:23
Self & operator=(const Self &n)
Definition seadMatrix.hpp:37
void makeIdentity()
Definition seadMatrix.hpp:45
void setInverse(const Self &n)
Definition seadMatrix.hpp:59
Definition seadMatrix.h:63
Matrix33(T a00, T a01, T a02, T a10, T a11, T a12, T a20, T a21, T a22)
Definition seadMatrix.hpp:101
void makeR(const Vec3 &r)
Definition seadMatrix.hpp:222
void setMul(const Self &a, const Self &b)
Definition seadMatrix.hpp:180
void toQuat(Quat &q) const
Definition seadMatrix.hpp:279
void transpose()
Definition seadMatrix.hpp:208
void makeZero()
Definition seadMatrix.hpp:159
void fromQuat(const Quat &q)
Definition seadMatrix.hpp:215
T operator()(s32 i, s32 j) const
Definition seadMatrix.hpp:130
void makeSRzxyIdx(const Vec3 &s, const Vector3< u32 > &r)
Definition seadMatrix.hpp:272
void makeRIdx(u32 xr, u32 yr, u32 zr)
Definition seadMatrix.hpp:229
Vector3< T > Vec3
Definition seadMatrix.h:69
Matrix33()
Definition seadMatrix.h:72
static const Matrix33 zero
Definition seadMatrix.h:115
Self & operator=(const Self &n)
Definition seadMatrix.hpp:144
void makeSR(const Vec3 &s, const Vec3 &r)
Definition seadMatrix.hpp:258
void makeIdentity()
Definition seadMatrix.hpp:152
void makeS(const Vec3 &s)
Definition seadMatrix.hpp:243
Matrix33< T > Self
Definition seadMatrix.h:65
T & operator()(s32 i, s32 j)
Definition seadMatrix.hpp:137
void setInverseTranspose(const Self &n)
Definition seadMatrix.hpp:173
void setTranspose(const Self &n)
Definition seadMatrix.hpp:201
void setMul(const Self &a, const Mtx34 &b)
Definition seadMatrix.hpp:194
void setInverse(const Self &n)
Definition seadMatrix.hpp:166
void makeS(T x, T y, T z)
Definition seadMatrix.hpp:250
void setMul(const Mtx34 &a, const Self &b)
Definition seadMatrix.hpp:187
static const Matrix33 ident
Definition seadMatrix.h:116
Matrix33(const Mtx34 &mtx34)
Definition seadMatrix.hpp:123
void makeRzxyIdx(u32 xr, u32 yr, u32 zr)
Definition seadMatrix.hpp:236
Matrix34< T > Mtx34
Definition seadMatrix.h:66
void makeSRIdx(const Vec3 &s, const Vector3< u32 > &r)
Definition seadMatrix.hpp:265
Definition seadMatrix.h:121
void transpose()
Definition seadMatrix.hpp:402
void makeRT(const Vec3 &r, const Vec3 &t)
Definition seadMatrix.hpp:430
void makeS(T x, T y, T z)
Definition seadMatrix.hpp:472
Matrix34(T a00, T a01, T a02, T a03, T a10, T a11, T a12, T a13, T a20, T a21, T a22, T a23)
Definition seadMatrix.hpp:286
void makeSRT(const Vec3 &s, const Vec3 &r, const Vec3 &t)
Definition seadMatrix.hpp:494
void setRow(s32 row, const Vec4 &v)
Definition seadMatrix.hpp:762
Matrix34(const Mtx33 &mtx33, const Vec3 &t=Vec3::zero)
Definition seadMatrix.hpp:310
Vector4< T > Vec4
Definition seadMatrix.h:129
void makeSRzxyTIdx(const Vec3 &s, const Vector3< u32 > &r, const Vec3 &t)
Definition seadMatrix.hpp:515
Matrix34(const Mtx44 &mtx44)
Definition seadMatrix.hpp:317
void makeSR(const Vec3 &s, const Vec3 &r)
Definition seadMatrix.hpp:480
void makeT(T x, T y, T z)
Definition seadMatrix.hpp:536
void makeT(const Vec3 &t)
Definition seadMatrix.hpp:529
void getBase(Vec3 &o, s32 axis) const
Definition seadMatrix.hpp:679
Matrix34()
Definition seadMatrix.h:132
void makeRIdx(u32 xr, u32 yr, u32 zr)
Definition seadMatrix.hpp:423
void makeRzxyTIdx(const Vector3< u32 > &r, const Vec3 &t)
Definition seadMatrix.hpp:458
void setBase(s32 axis, const Vec3 &v)
Definition seadMatrix.hpp:755
static const Matrix34 ident
Definition seadMatrix.h:221
void toQuat(Quat &q) const
Definition seadMatrix.hpp:544
void scaleBases(T sx, T sy, T sz)
Definition seadMatrix.hpp:741
void setMultTranslationWorld(T x, T y, T z, const Self &n)
Definition seadMatrix.hpp:661
void makeSRTIdx(const Vec3 &s, const Vector3< u32 > &r, const Vec3 &t)
Definition seadMatrix.hpp:501
void makeRzxyIdx(u32 xr, u32 yr, u32 zr)
Definition seadMatrix.hpp:444
void makeSRzxyIdx(const Vec3 &s, const Vector3< u32 > &r)
Definition seadMatrix.hpp:508
void makeR(const Vec3 &r)
Definition seadMatrix.hpp:416
void setMultScaleWorld(T x, T y, T z, const Self &n)
Definition seadMatrix.hpp:611
void getTranslation(Vec3 &o) const
Definition seadMatrix.hpp:711
Matrix34< T > Self
Definition seadMatrix.h:123
void setInverse(const Self &n)
Definition seadMatrix.hpp:360
void multTranslationLocal(const Vec3 &t)
Definition seadMatrix.hpp:565
void scaleAllElements(T s)
Definition seadMatrix.hpp:727
void setMultScaleLocal(const Self &n, const Vec3 &s)
Definition seadMatrix.hpp:558
void setTranspose(const Self &n)
Definition seadMatrix.hpp:395
Matrix44< T > Mtx44
Definition seadMatrix.h:125
Self & operator=(const Self &n)
Definition seadMatrix.hpp:338
void makeRTIdx(const Vector3< u32 > &r, const Vec3 &t)
Definition seadMatrix.hpp:437
void scaleBases(const Vec3 &s)
Definition seadMatrix.hpp:748
void multTranslationWorld(T x, T y, T z)
Definition seadMatrix.hpp:636
void makeSRIdx(const Vec3 &s, const Vector3< u32 > &r)
Definition seadMatrix.hpp:487
void makeS(const Vec3 &s)
Definition seadMatrix.hpp:465
T & operator()(s32 i, s32 j)
Definition seadMatrix.hpp:331
void setTranslation(T x, T y, T z)
Definition seadMatrix.hpp:776
void getRow(Vec4 &o, s32 row) const
Definition seadMatrix.hpp:695
void makeRzxyIdx(const Vector3< u32 > &r)
Definition seadMatrix.hpp:451
Vec3 getBase(s32 axis) const
Definition seadMatrix.hpp:686
void makeZero()
Definition seadMatrix.hpp:353
void multTranslationWorld(const Vec3 &t)
Definition seadMatrix.hpp:629
void setMul(const Mtx33 &a, const Self &b)
Definition seadMatrix.hpp:388
Vector3< T > Vec3
Definition seadMatrix.h:128
void setMultScaleWorld(const Vec3 &s, const Self &n)
Definition seadMatrix.hpp:604
void multScaleLocal(const Vec3 &s)
Definition seadMatrix.hpp:551
void makeIdentity()
Definition seadMatrix.hpp:346
T operator()(s32 i, s32 j) const
Definition seadMatrix.hpp:324
void multScaleWorld(const Vec3 &s)
Definition seadMatrix.hpp:579
void setInverse33(const Self &n)
Definition seadMatrix.hpp:367
Matrix33< T > Mtx33
Definition seadMatrix.h:124
void setMultTranslationLocal(const Self &n, const Vec3 &t)
Definition seadMatrix.hpp:572
void setInverseTranspose(const Self &n)
Definition seadMatrix.hpp:374
static const Matrix34 zero
Definition seadMatrix.h:220
void setMul(const Self &a, const Self &b)
Definition seadMatrix.hpp:381
void setTranslation(const Vec3 &t)
Definition seadMatrix.hpp:769
Matrix34(const Matrix34 &other)=default
void setMultTranslationWorld(const Vec3 &t, const Self &n)
Definition seadMatrix.hpp:654
void scaleBases(T s)
Definition seadMatrix.hpp:734
void fromQuat(const Quat &q)
Definition seadMatrix.hpp:409
Vec4 getRow(s32 row) const
Definition seadMatrix.hpp:702
void multScaleWorld(T x, T y, T z)
Definition seadMatrix.hpp:586
Vec3 getTranslation() const
Definition seadMatrix.hpp:718
void makeST(const Vec3 &s, const Vec3 &t)
Definition seadMatrix.hpp:522
Definition seadMatrix.h:226
void setMul(const Self &a, const Self &b)
Definition seadMatrix.hpp:871
Matrix44(const Mtx33 &mtx33, const Vec3 &t=Vec3::zero, const Vec4 &vw=Vec4::ew)
Definition seadMatrix.hpp:814
Vec4 getRow(s32 row) const
Definition seadMatrix.hpp:964
T operator()(s32 i, s32 j) const
Definition seadMatrix.hpp:828
void makeIdentity()
Definition seadMatrix.hpp:850
void setCol(s32 axis, const Vec4 &v)
Definition seadMatrix.hpp:987
void makeRzxyIdx(u32 xr, u32 yr, u32 zr)
Definition seadMatrix.hpp:927
void transpose()
Definition seadMatrix.hpp:899
void fromQuat(const Quat &q)
Definition seadMatrix.hpp:906
Matrix44< T > Self
Definition seadMatrix.h:228
void makeRIdx(u32 xr, u32 yr, u32 zr)
Definition seadMatrix.hpp:920
void toQuat(Quat &q) const
Definition seadMatrix.hpp:934
Vector3< T > Vec3
Definition seadMatrix.h:233
Vector4< T > Vec4
Definition seadMatrix.h:234
void setInverse(const Self &n)
Definition seadMatrix.hpp:864
Self & operator=(const Self &n)
Definition seadMatrix.hpp:842
static const Matrix44 zero
Definition seadMatrix.h:288
static const Matrix44 ident
Definition seadMatrix.h:289
Matrix34< T > Mtx34
Definition seadMatrix.h:230
Vec4 getCol(s32 axis) const
Definition seadMatrix.hpp:948
void makeR(const Vec3 &r)
Definition seadMatrix.hpp:913
void setMul(const Self &a, const Mtx34 &b)
Definition seadMatrix.hpp:885
void setRow(s32 row, const Vec4 &v)
Definition seadMatrix.hpp:994
void scaleAllElements(T s)
Definition seadMatrix.hpp:973
void scaleBases(T sx, T sy, T sz, T sw)
Definition seadMatrix.hpp:980
T & operator()(s32 i, s32 j)
Definition seadMatrix.hpp:835
Matrix33< T > Mtx33
Definition seadMatrix.h:229
void setMul(const Mtx34 &a, const Self &b)
Definition seadMatrix.hpp:878
void setInverseTranspose(const Self &n)
Matrix44()
Definition seadMatrix.h:237
void makeZero()
Definition seadMatrix.hpp:857
Matrix44(const Mtx34 &mtx34, const Vec4 &vw=Vec4::ew)
Definition seadMatrix.hpp:821
void getCol(Vec4 &o, s32 axis) const
Definition seadMatrix.hpp:941
Matrix44(T a00, T a01, T a02, T a03, T a10, T a11, T a12, T a13, T a20, T a21, T a22, T a23, T a30, T a31, T a32, T a33)
Definition seadMatrix.hpp:784
void getRow(Vec4 &o, s32 row) const
Definition seadMatrix.hpp:957
void setTranspose(const Self &n)
Definition seadMatrix.hpp:892
Definition seadMathPolicies.h:8
Definition seadVector.h:87
Definition seadVector.h:161
Definition seadAssert.h:44
Matrix33< f32 > Matrix33f
Definition seadMatrix.h:341
Matrix22< f32 > Matrix22f
Definition seadMatrix.h:340
Matrix44< f32 > Matrix44f
Definition seadMatrix.h:343
Matrix34< f32 > Matrixf
Definition seadMatrix.h:352
Matrix34< f32 > Matrix34f
Definition seadMatrix.h:342