* Normalize a vec3 * * @param {vec3} out the receiving vector * @param {ReadonlyVec3} a vector to normalize * @returns {vec3} out
(out, a)
| 5159 | */ |
| 5160 | |
| 5161 | function normalize(out, a) { |
| 5162 | var x = a[0]; |
| 5163 | var y = a[1]; |
| 5164 | var z = a[2]; |
| 5165 | var len = x * x + y * y + z * z; |
| 5166 | |
| 5167 | if (len > 0) { |
| 5168 | //TODO: evaluate use of glm_invsqrt here? |
| 5169 | len = 1 / Math.sqrt(len); |
| 5170 | } |
| 5171 | |
| 5172 | out[0] = a[0] * len; |
| 5173 | out[1] = a[1] * len; |
| 5174 | out[2] = a[2] * len; |
| 5175 | return out; |
| 5176 | } |
| 5177 | /** |
| 5178 | * Calculates the dot product of two vec3's |
| 5179 | * |
no test coverage detected