0,0 → 1,27 |
#include "vector.h" |
#include <math.h> |
|
void vector_cross(const vector *a, const vector *b, vector *out) |
{ |
out->x = a->y * b->z - a->z * b->y; |
out->y = a->z * b->x - a->x * b->z; |
out->z = a->x * b->y - a->y * b->x; |
} |
|
float vector_dot(const vector *a, const vector *b) |
{ |
return a->x * b->x + a->y * b->y + a->z * b->z; |
} |
|
void vector_normalize(vector *a) |
{ |
float mag = sqrt(vector_dot(a, a)); |
a->x /= mag; |
a->y /= mag; |
a->z /= mag; |
} |
|
float vector_magnitude(const vector *a) |
{ |
return sqrt(pow(a->x,2.0) + pow(a->y,2.0) + pow(a->z,2.0)); |
} |