applyQuaternion method

Vector3 applyQuaternion(
  1. Quaternion q
)

Implementation

Vector3 applyQuaternion(Quaternion q) {
  var qx = q.x;
  var qy = q.y;
  var qz = q.z;
  var qw = q.w;

  // calculate quat * vector

  var ix = qw * x + qy * z - qz * y;
  var iy = qw * y + qz * x - qx * z;
  var iz = qw * z + qx * y - qy * x;
  var iw = -qx * x - qy * y - qz * z;

  // calculate result * inverse quat

  x = ix * qw + iw * -qx + iy * -qz - iz * -qy;
  y = iy * qw + iw * -qy + iz * -qx - ix * -qz;
  z = iz * qw + iw * -qz + ix * -qy - iy * -qx;

  return this;
}