1 #ifndef LA_H_ 2 #define LA_H_ 3 4 typedef struct { 5 float x, y; 6 } Vec2f; 7 8 Vec2f vec2f(float x, float y); 9 Vec2f vec2fs(float x); 10 Vec2f vec2f_add(Vec2f a, Vec2f b); 11 Vec2f vec2f_sub(Vec2f a, Vec2f b); 12 Vec2f vec2f_mul(Vec2f a, Vec2f b); 13 Vec2f vec2f_mul3(Vec2f a, Vec2f b, Vec2f c); 14 Vec2f vec2f_div(Vec2f a, Vec2f b); 15 16 typedef struct { 17 int x, y; 18 } Vec2i; 19 20 Vec2i vec2i(int x, int y); 21 Vec2i vec2is(int x); 22 Vec2i vec2i_add(Vec2i a, Vec2i b); 23 Vec2i vec2i_sub(Vec2i a, Vec2i b); 24 Vec2i vec2i_mul(Vec2i a, Vec2i b); 25 Vec2i vec2i_mul3(Vec2i a, Vec2i b, Vec2i c); 26 Vec2i vec2i_div(Vec2i a, Vec2i b); 27 28 typedef struct { 29 float x, y, z, w; 30 } Vec4f; 31 32 Vec4f vec4f(float x, float y, float z, float w); 33 Vec4f vec4fs(float x); 34 Vec4f vec4f_add(Vec4f a, Vec4f b); 35 Vec4f vec4f_sub(Vec4f a, Vec4f b); 36 Vec4f vec4f_mul(Vec4f a, Vec4f b); 37 Vec4f vec4f_div(Vec4f a, Vec4f b); 38 39 float lerpf(float a, float b, float t); 40 41 #endif // LA_H_
