qToMatrix method

MatrixD qToMatrix()

Implementation

MatrixD qToMatrix() {
  MatrixD result = .identity();

  final a2 = x*x;
  final b2 = y*y;
  final c2 = z*z;
  final ac = x*z;
  final ab = x*y;
  final bc = y*z;
  final ad = w*x;
  final bd = w*y;
  final cd = w*z;

  result.m0 = 1 - 2*(b2 + c2);
  result.m1 = 2*(ab + cd);
  result.m2 = 2*(ac - bd);

  result.m4 = 2*(ab - cd);
  result.m5 = 1 - 2*(a2 + c2);
  result.m6 = 2*(bc + ad);

  result.m8 = 2*(ac + bd);
  result.m9 = 2*(bc - ad);
  result.m10 = 1 - 2*(a2 + b2);

  return result;
}