4void vector3_add(
const double a[3],
const double b[3],
double out[3]) {
10void vector3_sub(
const double a[3],
const double b[3],
double out[3]) {
17 return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
20void vector3_cross(
const double a[3],
const double b[3],
double out[3]) {
21 out[0] = a[1]*b[2] - a[2]*b[1];
22 out[1] = a[2]*b[0] - a[0]*b[2];
23 out[2] = a[0]*b[1] - a[1]*b[0];
27 double mag = sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]);
29 v[0]/=mag; v[1]/=mag; v[2]/=mag;
34 return sqrt(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]);
43 v[0] /= mag; v[1] /= mag; v[2] /= mag;
void vector3_sub(const double a[3], const double b[3], double out[3])
Subtract two 3D vectors component-wise.
void vector3_add(const double a[3], const double b[3], double out[3])
Add two 3D vectors component-wise.
void vector3_normalize(double v[3])
Normalise a 3D vector in-place.
void vector3_cross(const double a[3], const double b[3], double out[3])
Compute the cross product of two vectors.
double vector3_mag(const double v[3])
int vector3_normalize_safe(double v[3])
double vector3_dot(const double a[3], const double b[3])
Compute the dot product of two vectors.