summaryrefslogtreecommitdiff
path: root/src/maths/maths.h
diff options
context:
space:
mode:
authoromniscient <17525998+omnisci3nce@users.noreply.github.com>2024-04-04 19:45:19 +1100
committeromniscient <17525998+omnisci3nce@users.noreply.github.com>2024-04-04 19:45:19 +1100
commit1d8d7c04786ab3964778e6f21fae145f661bb533 (patch)
treeb44802d6ca41804e7b104cdd05c05a96a039ad7c /src/maths/maths.h
parent0c770ecad71bb540d36402311e01a2b6b94242fd (diff)
loading textures
Diffstat (limited to 'src/maths/maths.h')
-rw-r--r--src/maths/maths.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/maths/maths.h b/src/maths/maths.h
index d832739..95ced1d 100644
--- a/src/maths/maths.h
+++ b/src/maths/maths.h
@@ -66,6 +66,18 @@ static inline quat quat_normalise(quat a) {
static inline quat quat_ident() { return (quat){ .x = 0.0, .y = 0.0, .z = 0.0, .w = 1.0 }; }
+static quat quat_from_axis_angle(vec3 axis, f32 angle, bool normalize) {
+ const f32 half_angle = 0.5f * angle;
+ f32 s = sinf(half_angle);
+ f32 c = cosf(half_angle);
+
+ quat q = (quat){s * axis.x, s * axis.y, s * axis.z, c};
+ if (normalize) {
+ return quat_normalise(q);
+ }
+ return q;
+}
+
// --- Matrix Implementations
static inline mat4 mat4_ident() {