improve rotate vec3 with affine matrix

because v and dest may be same vector
This commit is contained in:
Recep Aslantas
2017-01-24 16:36:24 +03:00
parent e94f1e4880
commit 9ac590bc12

View File

@@ -428,9 +428,11 @@ glm_vec_rotate(vec3 v, float angle, vec3 axis) {
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];
vec3 res;
res[0] = m[0][0] * v[0] + m[1][0] * v[1] + m[2][0] * v[2];
res[1] = m[0][1] * v[0] + m[1][1] * v[1] + m[2][1] * v[2];
res[2] = m[0][2] * v[0] + m[1][2] * v[1] + m[2][2] * v[2];
glm_vec_dup(res, dest);
}
#endif /* cglm_vec_h */