diff --git a/include/cglm-vec.h b/include/cglm-vec.h index f1476f9..47d5edb 100644 --- a/include/cglm-vec.h +++ b/include/cglm-vec.h @@ -135,53 +135,6 @@ glm_vec4_norm(vec4 vec) { + vec[2] * vec[2] + vec[3] * vec[3]); } -/*! - * @brief normalize vec3 to dest - * - * @param[in] vec source - * @param[out] dest destination - */ -CGLM_INLINE -void -glm_vec_normalize_to(vec3 vec, vec3 dest) { - float norm; - - norm = glm_vec_norm(vec); - - if (norm == 0.0f) { - dest[0] = dest[1] = dest[2] = 0.0f; - return; - } - - dest[0] = vec[0] / norm; - dest[1] = vec[1] / norm; - dest[2] = vec[2] / norm; -} - -/*! - * @brief normalize vec4 to dest - * - * @param[in] vec source - * @param[out] dest destination - */ -CGLM_INLINE -void -glm_vec4_normalize_to(vec4 vec, vec4 dest) { - float norm; - - norm = glm_vec4_norm(vec); - - if (norm == 0.0f) { - dest[0] = dest[1] = dest[2] = dest[3] == 0.0f; - return; - } - - dest[0] = vec[0] / norm; - dest[1] = vec[1] / norm; - dest[2] = vec[2] / norm; - dest[3] = vec[3] / norm; -} - /*! * @brief add v2 vector to v1 vector store result in dest * @@ -369,6 +322,48 @@ glm_vec4_normalize(vec4 v) { glm_vec4_scale(v, 1.0f / norm, v); } +/*! + * @brief normalize vec3 to dest + * + * @param[in] vec source + * @param[out] dest destination + */ +CGLM_INLINE +void +glm_vec_normalize_to(vec3 vec, vec3 dest) { + float norm; + + norm = glm_vec_norm(vec); + + if (norm == 0.0f) { + dest[0] = dest[1] = dest[2] = 0.0f; + return; + } + + glm_vec_scale(vec, 1.0f / norm, dest); +} + +/*! + * @brief normalize vec4 to dest + * + * @param[in] vec source + * @param[out] dest destination + */ +CGLM_INLINE +void +glm_vec4_normalize_to(vec4 vec, vec4 dest) { + float norm; + + norm = glm_vec4_norm(vec); + + if (norm == 0.0f) { + dest[0] = dest[1] = dest[2] = dest[3] == 0.0f; + return; + } + + glm_vec4_scale(vec, 1.0f / norm, dest); +} + /*! * @brief angle betwen two vector *