normalize function

List<double> normalize(
  1. List<double> out,
  2. List<double> a
)

Normalize a vec3

@param {vec3} out the receiving vector @param {ReadonlyVec3} a vector to normalize @returns {vec3} out

Implementation

List<double> normalize(List<double> out, List<double> a) {
  final x = a[0];
  final y = a[1];
  final z = a[2];
  double 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;
}