1#ifndef LINEAR_ALGEBRA_H
2#define LINEAR_ALGEBRA_H
32 return sqrtf(vec.
x * vec.
x + vec.
y * vec.
y + vec.
z * vec.
z);
63 out.
x = mat->
data[0][0] * in->
x + mat->
data[0][1] * in->
y + mat->
data[0][2] * in->
z;
64 out.
y = mat->
data[1][0] * in->
x + mat->
data[1][1] * in->
y + mat->
data[1][2] * in->
z;
65 out.
z = mat->
data[2][0] * in->
x + mat->
data[2][1] * in->
y + mat->
data[2][2] * in->
z;
78 for (
int i = 0; i < 3; i++) {
79 for (
int j = 0; j < 3; j++) {
static vector3_t matrix_multiply_vector3(const matrix3x3_t *mat, const vector3_t *in)
Multiply a 3x3 matrix with a 3D vector.
Definition linear_algebra.h:61
static vector3_t vector3_normalize(const vector3_t vec)
Normalize a 3D vector.
Definition linear_algebra.h:41
static matrix3x3_t matrix_multiply_matrix3x3(const matrix3x3_t *a, const matrix3x3_t *b)
Multiply a 3x3 matrix with another 3x3 matrix.
Definition linear_algebra.h:76
static float vector3_magnitude(const vector3_t vec)
Calculate the magnitude of a 3D vector.
Definition linear_algebra.h:31
Definition linear_algebra.h:21
float data[3][3]
Definition linear_algebra.h:22
Definition linear_algebra.h:15
float z
Definition linear_algebra.h:18
float y
Definition linear_algebra.h:17
float x
Definition linear_algebra.h:16