diff --git a/src/vec.c b/src/vec.c index 79a5348..b77c17a 100644 --- a/src/vec.c +++ b/src/vec.c @@ -3,41 +3,52 @@ #include "vec.h" void vec_cpy(Vec *destination, Vec source) { + /* memcpy for vectors */ destination->x = source.x; destination->y = source.y; } void vec_add(Vec *vector, Vec force) { + /* addition */ vector->x += force.x; vector->y += force.y; } void vec_sub(Vec *vector, Vec force) { + /* substraction */ vector->x -= force.x; vector->y -= force.y; } void vec_mul(Vec *vector, int scale) { + /* multiplication */ vector->x *= scale; vector->y *= scale; } void vec_mulf(Vec *vector, float scale) { + /* floating point multiplication */ vector->x *= scale; vector->y *= scale; } void vec_div(Vec *vector, int scale) { + /* division */ vector->x /= scale; vector->y /= scale; } void vec_divf(Vec *vector, float scale) { + /* floating point division */ vector->x /= scale; vector->y /= scale; } void vec_lerp(Vec *from, Vec to, float scale) { + /* A linear interpolation function, can be used for camera and + * animations. 'scale' is the transformation speed, 1 being + * instant. + */ /* from * (1 - scale) + temp * scale */ Vec temp; vec_cpy(&temp, to); @@ -50,6 +61,7 @@ void vec_lerp(Vec *from, Vec to, float scale) { } void vec_clamp(Vec *to_limit, Vec min, Vec max) { + /* clamp a vector between two points */ if (to_limit->x < min.x) to_limit->x = min.x; if (to_limit->y < min.y) to_limit->y = min.y; if (to_limit->x > max.x) to_limit->x = max.x; @@ -57,5 +69,8 @@ void vec_clamp(Vec *to_limit, Vec min, Vec max) { } void vec_drect(Vec top_left, Vec bottom_right, int color) { + /* Draw a rectangle corresponding to two vectors position with + * given 'color'. + */ drect(top_left.x, top_left.y, bottom_right.x, bottom_right.y, color); }