Add V2 utilities
This commit is contained in:
parent
53e535774d
commit
11dee52090
@ -135,6 +135,35 @@ MAKE_LIST_TYPE(V2f);
|
||||
|
||||
#define dot_v2(V1, V2) ((f32)V1.x * (f32)V2.x + (f32)V1.y * (f32)V2.y)
|
||||
|
||||
#define add_v2(V1, V2) \
|
||||
((V2f){ \
|
||||
.x = V1.x + V2.x, \
|
||||
.y = V1.y + V2.y, \
|
||||
})
|
||||
|
||||
#define sub_v2(V1, V2) \
|
||||
((V2f){ \
|
||||
.x = V1.x - V2.x, \
|
||||
.y = V1.y - V2.y, \
|
||||
})
|
||||
|
||||
#define mul_v2(V1, V2) \
|
||||
((V2f){ \
|
||||
.x = V1.x * V2.x, \
|
||||
.y = V1.y * V2.y, \
|
||||
})
|
||||
|
||||
#define num_mul_v2(V, N) ((V2f){.x = (N) * V.x, .y = (N) * V.y})
|
||||
|
||||
#define magnitude_v2(V) (sqrtf(dot_v2(V, V)))
|
||||
|
||||
#define normalise_v2(V) \
|
||||
do { \
|
||||
f32 magnitude = magnitude_v2(V); \
|
||||
V.x /= magnitude; \
|
||||
V.y /= magnitude; \
|
||||
} while (0)
|
||||
|
||||
#define dot_v3(V1, V2) \
|
||||
((f32)V1.x * (f32)V2.x + (f32)V1.y * (f32)V2.y + (f32)V1.z * (f32)V2.z)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user