module.exports = normalize; /** * Normalize a vec3 * * @param {vec3} out the receiving vector * @param {vec3} a vector to normalize * @returns {vec3} out */ function normalize(out, a) { var x = a[0], y = a[1], z = a[2] var len = x*x + y*y + z*z if (len > 0) { //TODO: evaluate use of glm_invsqrt here? len = 1 / Math.sqrt(len) out[0] = a[0] * len out[1] = a[1] * len out[2] = a[2] * len } return out }