Blame |
Last modification |
View Log
| RSS feed
#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));
}