module.exports = random; /** * Generates a random vector with the given scale * * @param {vec3} out the receiving vector * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned * @returns {vec3} out */ function random(out, scale) { scale = scale || 1.0 var r = Math.random() * 2.0 * Math.PI var z = (Math.random() * 2.0) - 1.0 var zScale = Math.sqrt(1.0-z*z) * scale out[0] = Math.cos(r) * zScale out[1] = Math.sin(r) * zScale out[2] = z * scale return out }