From 0c0048c746e7ad5a81666c95da724acc82263a33 Mon Sep 17 00:00:00 2001 From: PolyFloyd Date: Wed, 10 Dec 2014 22:52:12 +0100 Subject: Added quat_rotate --- linmath.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/linmath.h b/linmath.h index d5c4084..78937fa 100644 --- a/linmath.h +++ b/linmath.h @@ -491,6 +491,14 @@ static inline void quat_conj(quat r, quat q) r[i] = -q[i]; r[3] = q[3]; } +static inline void quat_rotate(quat r, float angle, vec3 axis) { + vec3 v; + vec3_scale(v, axis, sinf(angle / 2)); + int i; + for(i=0; i<3; ++i) + r[i] = v[i]; + r[3] = cosf(angle / 2); +} #define quat_norm vec4_norm static inline void quat_mul_vec3(vec3 r, quat q, vec3 v) { -- cgit v1.2.3