#pragma once #include namespace sead { template struct BaseVec2 { union { struct { T x; T y; }; std::array e; }; }; template struct BaseVec3 { union { struct { T x; T y; T z; }; std::array e; }; }; template struct BaseVec4 { union { struct { T x; T y; T z; T w; }; std::array e; }; }; template struct BaseQuat { T x; T y; T z; T w; }; template struct BaseMtx22 { union { T m[2][2]; T a[4]; }; }; template struct BaseMtx33 { union { T m[3][3]; T a[9]; }; }; template struct BaseMtx34 { union { T m[3][4]; T a[12]; }; }; template struct BaseMtx44 { union { T m[4][4]; T a[16]; }; }; } // namespace sead