imu01c
Diff: vector.cpp
- Revision:
- 0:456611adedf8
- Child:
- 3:a55edecc96e2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vector.cpp Sat Oct 31 16:14:13 2015 +0000 @@ -0,0 +1,47 @@ +#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; +} + +void vector_norm_xz(vector*a) +{ + float mag = sqrt(a->x*a->x + a->z*a->z); + a->x /= mag; + a->y = 0; + a->z /= mag; + +} + +void vector_norm_xy(vector*a) +{ + float mag = sqrt(a->x*a->x + a->y*a->y); + a->x /= mag; + a->y /= mag; + a->z = 0; +} + +void vector_norm_yz(vector*a) +{ + float mag = sqrt(a->z*a->z + a->y*a->y); + a->x = 0; + a->y /= mag; + a->z /= mag; +} \ No newline at end of file