Files
asteroids/maths.h
Camden Dixie O'Brien 1291ec191f Add more vector operations
2025-10-14 16:04:14 +01:00

38 lines
697 B
C

#ifndef MATHS_H
#define MATHS_H
#define PI 3.14159265358979323846264
typedef struct {
float x, y;
} vec2_t;
typedef struct {
vec2_t x, y;
} mat2_t;
typedef struct {
float x, y, z;
} vec3_t;
typedef struct {
vec3_t x, y, z;
} mat3_t;
float vec2_len(vec2_t v);
vec2_t vec2_add(vec2_t v1, vec2_t v2);
vec2_t vec2_sub(vec2_t v1, vec2_t v2);
vec2_t vec2_scale(vec2_t v, float s);
vec3_t vec2_extend(vec2_t v);
mat2_t mat2_rotation(float theta);
vec2_t mat2_mul_vec2(mat2_t m, vec2_t v);
mat2_t mat2_mul_mat2(mat2_t m1, mat2_t m2);
mat3_t mat2_extend(mat2_t m);
mat3_t mat3_translation(vec2_t v);
vec3_t mat3_mul_vec3(mat3_t m, vec3_t v);
mat3_t mat3_mul_mat3(mat3_t m1, mat3_t m2);
#endif