1#ifndef SEAD_MATRIX34_H_
2#define SEAD_MATRIX34_H_
4#include <math/seadQuat.h>
5#include <math/seadVector.h>
143 T a00, T a01, T a02, T a03,
144 T a10, T a11, T a12, T a13,
145 T a20, T a21, T a22, T a23
253 T a00, T a01, T a02, T a03,
254 T a10, T a11, T a12, T a13,
255 T a20, T a21, T a22, T a23,
256 T a30, T a31, T a32, T a33
353static_assert(
sizeof(
Matrix22f) == 0x10,
"sead::Matrix22<T> size mismatch");
354static_assert(
sizeof(
Matrix33f) == 0x24,
"sead::Matrix33<T> size mismatch");
355static_assert(
sizeof(
Matrix34f) == 0x30,
"sead::Matrix34<T> size mismatch");
356static_assert(
sizeof(
Matrix44f) == 0x40,
"sead::Matrix44<T> size mismatch");
365#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.h:104
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:116
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 makeQ(const Quat &q)
Definition seadMatrix.hpp:215
void setMul(const Mtx34 &a, const Self &b)
Definition seadMatrix.hpp:187
static const Matrix33 ident
Definition seadMatrix.h:117
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:122
void transpose()
Definition seadMatrix.hpp:402
void makeRT(const Vec3 &r, const Vec3 &t)
Definition seadMatrix.hpp:445
void makeS(T x, T y, T z)
Definition seadMatrix.hpp:487
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:523
void setRow(s32 row, const Vec4 &v)
Definition seadMatrix.hpp:791
void makeQ(T w, T x, T y, T z)
Definition seadMatrix.hpp:416
Matrix34(const Mtx33 &mtx33, const Vec3 &t=Vec3::zero)
Definition seadMatrix.hpp:310
void makeQ(const Quat &q)
Definition seadMatrix.hpp:409
Vector4< T > Vec4
Definition seadMatrix.h:130
void makeSRzxyTIdx(const Vec3 &s, const Vector3< u32 > &r, const Vec3 &t)
Definition seadMatrix.hpp:544
Matrix34(const Mtx44 &mtx44)
Definition seadMatrix.hpp:317
void makeSR(const Vec3 &s, const Vec3 &r)
Definition seadMatrix.hpp:509
void makeT(T x, T y, T z)
Definition seadMatrix.hpp:565
void makeT(const Vec3 &t)
Definition seadMatrix.hpp:558
void getBase(Vec3 &o, s32 axis) const
Definition seadMatrix.hpp:708
Matrix34()
Definition seadMatrix.h:133
void makeRIdx(u32 xr, u32 yr, u32 zr)
Definition seadMatrix.hpp:438
void makeRzxyTIdx(const Vector3< u32 > &r, const Vec3 &t)
Definition seadMatrix.hpp:473
void setBase(s32 axis, const Vec3 &v)
Definition seadMatrix.hpp:784
static const Matrix34 ident
Definition seadMatrix.h:227
void toQuat(Quat &q) const
Definition seadMatrix.hpp:573
void scaleBases(T sx, T sy, T sz)
Definition seadMatrix.hpp:770
void setMultTranslationWorld(T x, T y, T z, const Self &n)
Definition seadMatrix.hpp:690
void makeSRTIdx(const Vec3 &s, const Vector3< u32 > &r, const Vec3 &t)
Definition seadMatrix.hpp:530
void makeRzxyIdx(u32 xr, u32 yr, u32 zr)
Definition seadMatrix.hpp:459
void makeSRzxyIdx(const Vec3 &s, const Vector3< u32 > &r)
Definition seadMatrix.hpp:537
void makeR(const Vec3 &r)
Definition seadMatrix.hpp:431
void setMultScaleWorld(T x, T y, T z, const Self &n)
Definition seadMatrix.hpp:640
void makeSQ(const Vec3 &s, const Quat &q)
Definition seadMatrix.hpp:495
void getTranslation(Vec3 &o) const
Definition seadMatrix.hpp:740
Matrix34< T > Self
Definition seadMatrix.h:124
void setInverse(const Self &n)
Definition seadMatrix.hpp:360
void multTranslationLocal(const Vec3 &t)
Definition seadMatrix.hpp:594
void scaleAllElements(T s)
Definition seadMatrix.hpp:756
void setMultScaleLocal(const Self &n, const Vec3 &s)
Definition seadMatrix.hpp:587
void setTranspose(const Self &n)
Definition seadMatrix.hpp:395
Matrix44< T > Mtx44
Definition seadMatrix.h:126
Self & operator=(const Self &n)
Definition seadMatrix.hpp:338
void makeRTIdx(const Vector3< u32 > &r, const Vec3 &t)
Definition seadMatrix.hpp:452
void scaleBases(const Vec3 &s)
Definition seadMatrix.hpp:777
void multTranslationWorld(T x, T y, T z)
Definition seadMatrix.hpp:665
void makeSRIdx(const Vec3 &s, const Vector3< u32 > &r)
Definition seadMatrix.hpp:516
void makeS(const Vec3 &s)
Definition seadMatrix.hpp:480
T & operator()(s32 i, s32 j)
Definition seadMatrix.hpp:331
void setTranslation(T x, T y, T z)
Definition seadMatrix.hpp:805
void getRow(Vec4 &o, s32 row) const
Definition seadMatrix.hpp:724
void makeRzxyIdx(const Vector3< u32 > &r)
Definition seadMatrix.hpp:466
Vec3 getBase(s32 axis) const
Definition seadMatrix.hpp:715
void makeZero()
Definition seadMatrix.hpp:353
void multTranslationWorld(const Vec3 &t)
Definition seadMatrix.hpp:658
void makeSQT(const Vec3 &s, const Quat &q, const Vec3 &t)
Definition seadMatrix.hpp:502
void setMul(const Mtx33 &a, const Self &b)
Definition seadMatrix.hpp:388
Vector3< T > Vec3
Definition seadMatrix.h:129
void setMultScaleWorld(const Vec3 &s, const Self &n)
Definition seadMatrix.hpp:633
void multScaleLocal(const Vec3 &s)
Definition seadMatrix.hpp:580
void makeIdentity()
Definition seadMatrix.hpp:346
void makeQT(const Quat &q, const Vec3 &t)
Definition seadMatrix.hpp:424
T operator()(s32 i, s32 j) const
Definition seadMatrix.hpp:324
void multScaleWorld(const Vec3 &s)
Definition seadMatrix.hpp:608
void setInverse33(const Self &n)
Definition seadMatrix.hpp:367
Matrix33< T > Mtx33
Definition seadMatrix.h:125
void setMultTranslationLocal(const Self &n, const Vec3 &t)
Definition seadMatrix.hpp:601
void setInverseTranspose(const Self &n)
Definition seadMatrix.hpp:374
static const Matrix34 zero
Definition seadMatrix.h:226
void setMul(const Self &a, const Self &b)
Definition seadMatrix.hpp:381
void setTranslation(const Vec3 &t)
Definition seadMatrix.hpp:798
Matrix34(const Matrix34 &other)=default
void setMultTranslationWorld(const Vec3 &t, const Self &n)
Definition seadMatrix.hpp:683
void scaleBases(T s)
Definition seadMatrix.hpp:763
void fromQuat(const Quat &q)
Definition seadMatrix.h:167
Vec4 getRow(s32 row) const
Definition seadMatrix.hpp:731
void multScaleWorld(T x, T y, T z)
Definition seadMatrix.hpp:615
Vec3 getTranslation() const
Definition seadMatrix.hpp:747
void makeST(const Vec3 &s, const Vec3 &t)
Definition seadMatrix.hpp:551
Definition seadMatrix.h:232
void setMul(const Self &a, const Self &b)
Definition seadMatrix.hpp:900
Matrix44(const Mtx33 &mtx33, const Vec3 &t=Vec3::zero, const Vec4 &vw=Vec4::ew)
Definition seadMatrix.hpp:843
Vec4 getRow(s32 row) const
Definition seadMatrix.hpp:993
T operator()(s32 i, s32 j) const
Definition seadMatrix.hpp:857
void makeQ(const Quat &q)
Definition seadMatrix.hpp:935
void makeIdentity()
Definition seadMatrix.hpp:879
void setCol(s32 axis, const Vec4 &v)
Definition seadMatrix.hpp:1016
void makeRzxyIdx(u32 xr, u32 yr, u32 zr)
Definition seadMatrix.hpp:956
void transpose()
Definition seadMatrix.hpp:928
void fromQuat(const Quat &q)
Definition seadMatrix.h:277
Matrix44< T > Self
Definition seadMatrix.h:234
void makeRIdx(u32 xr, u32 yr, u32 zr)
Definition seadMatrix.hpp:949
void toQuat(Quat &q) const
Definition seadMatrix.hpp:963
Vector3< T > Vec3
Definition seadMatrix.h:239
Vector4< T > Vec4
Definition seadMatrix.h:240
void setInverse(const Self &n)
Definition seadMatrix.hpp:893
Self & operator=(const Self &n)
Definition seadMatrix.hpp:871
static const Matrix44 zero
Definition seadMatrix.h:295
static const Matrix44 ident
Definition seadMatrix.h:296
Matrix34< T > Mtx34
Definition seadMatrix.h:236
Vec4 getCol(s32 axis) const
Definition seadMatrix.hpp:977
void makeR(const Vec3 &r)
Definition seadMatrix.hpp:942
void setMul(const Self &a, const Mtx34 &b)
Definition seadMatrix.hpp:914
void setRow(s32 row, const Vec4 &v)
Definition seadMatrix.hpp:1023
void scaleAllElements(T s)
Definition seadMatrix.hpp:1002
void scaleBases(T sx, T sy, T sz, T sw)
Definition seadMatrix.hpp:1009
T & operator()(s32 i, s32 j)
Definition seadMatrix.hpp:864
Matrix33< T > Mtx33
Definition seadMatrix.h:235
void setMul(const Mtx34 &a, const Self &b)
Definition seadMatrix.hpp:907
void setInverseTranspose(const Self &n)
Matrix44()
Definition seadMatrix.h:243
void makeZero()
Definition seadMatrix.hpp:886
Matrix44(const Mtx34 &mtx34, const Vec4 &vw=Vec4::ew)
Definition seadMatrix.hpp:850
void getCol(Vec4 &o, s32 axis) const
Definition seadMatrix.hpp:970
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:813
void getRow(Vec4 &o, s32 row) const
Definition seadMatrix.hpp:986
void setTranspose(const Self &n)
Definition seadMatrix.hpp:921
Definition seadMathPolicies.h:8
Definition seadVector.h:87
Definition seadVector.h:161
Definition seadAssert.h:44
Matrix33< f32 > Matrix33f
Definition seadMatrix.h:348
Matrix22< f32 > Matrix22f
Definition seadMatrix.h:347
Matrix44< f32 > Matrix44f
Definition seadMatrix.h:350
Matrix34< f32 > Matrixf
Definition seadMatrix.h:359
Matrix34< f32 > Matrix34f
Definition seadMatrix.h:349