#pragma once #include <3ds.h> typedef u32 C3D_IVec; typedef struct { union { struct { float w, z, y, x; }; float c[4]; }; } C3D_FVec; // Row-major 4x4 matrix typedef struct { union { C3D_FVec r[4]; // Rows are vectors float m[4*4]; }; } C3D_Mtx; static inline C3D_IVec IVec_Pack(u8 x, u8 y, u8 z, u8 w) { return (u32)x | ((u32)y << 8) | ((u32)z << 16) | ((u32)w << 24); }