From e94f1e4880bd3872c6e265b289b3bb6ac176bf3a Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Tue, 17 Jan 2017 01:07:52 +0300 Subject: [PATCH] rotate vec3 with affine matrix --- include/cglm-vec.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/include/cglm-vec.h b/include/cglm-vec.h index ce7be12..92ab5fb 100644 --- a/include/cglm-vec.h +++ b/include/cglm-vec.h @@ -418,4 +418,19 @@ glm_vec_rotate(vec3 v, float angle, vec3 axis) { glm_vec_add(v1, v3, v); } +/*! + * @brief apply rotation matrix to vector + * + * @param[in] m affine matrix or rot matrix + * @param[in] v vector + * @param[out] dest rotated vector + */ +CGLM_INLINE +void +glm_vec_rotate_m4(mat4 m, vec3 v, vec3 dest) { + dest[0] = m[0][0] * v[0] + m[1][0] * v[1] + m[2][0] * v[2]; + dest[1] = m[0][1] * v[0] + m[1][1] * v[1] + m[2][1] * v[2]; + dest[2] = m[0][2] * v[0] + m[1][2] * v[1] + m[2][2] * v[2]; +} + #endif /* cglm_vec_h */