* Normalize a vec3 * * @param {vec3} out the receiving vector * @param {ReadonlyVec3} a vector to normalize * @returns {vec3} out
(out, a)
| 5150 | */ |
| 5151 | |
| 5152 | function normalize(out, a) { |
| 5153 | var x = a[0]; |
| 5154 | var y = a[1]; |
| 5155 | var z = a[2]; |
| 5156 | var len = x * x + y * y + z * z; |
| 5157 | |
| 5158 | if (len > 0) { |
| 5159 | //TODO: evaluate use of glm_invsqrt here? |
| 5160 | len = 1 / Math.sqrt(len); |
| 5161 | } |
| 5162 | |
| 5163 | out[0] = a[0] * len; |
| 5164 | out[1] = a[1] * len; |
| 5165 | out[2] = a[2] * len; |
| 5166 | return out; |
| 5167 | } |
| 5168 | /** |
| 5169 | * Calculates the dot product of two vec3's |
| 5170 | * |
no test coverage detected