More comments in vec.c

This commit is contained in:
KikooDX 2020-12-21 12:31:28 +01:00
parent 190368b666
commit 69a22c0020
1 changed files with 15 additions and 0 deletions

View File

@ -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);
}