X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=vg%2Fvg_m.h;h=0c4ba358593af4927a59f6e6335906a5cf0e653c;hb=c8165f11120b296045f670bbdd8e614e92b0c5e8;hp=27481ae995db9b3aca8694ffea139671e9f27438;hpb=b6c9cb0ad0f55deb891ea14fecfd80d3a73f2fe1;p=fishladder.git diff --git a/vg/vg_m.h b/vg/vg_m.h index 27481ae..0c4ba35 100644 --- a/vg/vg_m.h +++ b/vg/vg_m.h @@ -226,6 +226,40 @@ static inline void v4_zero( v4f a ) a[0] = 0.f; a[1] = 0.f; a[2] = 0.f; a[3] = 0.f; } +// Matrix 2x2 +// =========================================================================================================== + +#define M2X2_INDENTIY {{1.0f, 0.0f, }, \ + { 0.0f, 1.0f, }} + +#define M2X2_ZERO {{0.0f, 0.0f, }, \ + { 0.0f, 0.0f, }} + +static inline void m2x2_copy( m2x2f a, m2x2f b ) +{ + v2_copy( a[0], b[0] ); + v2_copy( a[1], b[1] ); +} + +static inline void m2x2_identity( m2x2f a ) +{ + m2x2f id = M2X2_INDENTIY; + m2x2_copy( id, a ); +} + +static inline void m2x2_create_rotation( m2x2f a, float theta ) +{ + float s, c; + + s = sinf( theta ); + c = cosf( theta ); + + a[0][0] = c; + a[0][1] = -s; + a[1][0] = s; + a[1][1] = c; +} + // Matrix 3x3 //======================================================================================================