aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordatenwolf <code+github@datenwolf.net>2015-05-26 14:00:10 +0200
committerdatenwolf <code+github@datenwolf.net>2015-05-26 14:00:10 +0200
commit543faf6415918e926c1ddc3e04348eed44d5ed37 (patch)
treefeba75d7b39175bbd199c38c3b9ea16ee5ae406a
parenta9b12ac7c333e52ca0a28664f5fa50d5a93a89db (diff)
parent0c0048c746e7ad5a81666c95da724acc82263a33 (diff)
downloadlinmath.h-543faf6415918e926c1ddc3e04348eed44d5ed37.tar.gz
linmath.h-543faf6415918e926c1ddc3e04348eed44d5ed37.tar.bz2
Merge pull request #14 from PolyFloyd/quat_rotate
Added quat_rotate
-rw-r--r--linmath.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/linmath.h b/linmath.h
index 2cf047d..a1c66fa 100644
--- a/linmath.h
+++ b/linmath.h
@@ -465,6 +465,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)
{