21 lines
431 B
JavaScript
21 lines
431 B
JavaScript
module.exports = normalize
|
|
|
|
/**
|
|
* Normalize a vec2
|
|
*
|
|
* @param {vec2} out the receiving vector
|
|
* @param {vec2} a vector to normalize
|
|
* @returns {vec2} out
|
|
*/
|
|
function normalize(out, a) {
|
|
var x = a[0],
|
|
y = a[1]
|
|
var len = x*x + y*y
|
|
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
|
|
}
|
|
return out
|
|
} |