From 4c2271bfd5eaa1926455a6e361057614b39e1792 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Tue, 29 Nov 2016 17:23:28 +0200 Subject: [PATCH] quat: remove _init from quat initializer and provide vector initialiizer --- include/cglm-quat.h | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/include/cglm-quat.h b/include/cglm-quat.h index 37f1a28..4cec098 100644 --- a/include/cglm-quat.h +++ b/include/cglm-quat.h @@ -15,17 +15,39 @@ CGLM_INLINE void -glm_quat_init(versor q, - float angle, - float x, - float y, - float z) { - q[0] = cosf(angle / 2.0f); - q[1] = sinf(angle / 2.0f) * x; - q[2] = sinf(angle / 2.0f) * y; - q[3] = sinf(angle / 2.0f) * z; +glm_quat(versor q, + float angle, + float x, + float y, + float z) { + float a, c, s; + + a = angle / 2.0f; + c = cosf(a); + s = sinf(a); + + q[0] = c; + q[1] = s * x; + q[2] = s * y; + q[3] = s * z; } +CGLM_INLINE +void +glm_quatv(versor q, + float angle, + vec3 v) { + float a, c, s; + + a = angle / 2.0f; + c = cosf(a); + s = sinf(a); + + q[0] = c; + q[1] = s * v[0]; + q[2] = s * v[1]; + q[3] = s * v[2]; +} CGLM_INLINE float