Subversion Repositories Projects

Rev

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