rotateXYZ static method

Returns a rotation matrix applied in X > Y > Z order from angle's components (in radians).

Implementation

static MatrixBase rotateXYZ(Vector3Base angle) {
  final result = identity();

  final cosz = math.cos(-angle.z);
  final sinz = math.sin(-angle.z);
  final cosy = math.cos(-angle.y);
  final siny = math.sin(-angle.y);
  final cosx = math.cos(-angle.x);
  final sinx = math.sin(-angle.x);

  result.m0 = cosz*cosy;
  result.m1 = (cosz*siny*sinx) - (sinz*cosx);
  result.m2 = (cosz*siny*cosx) + (sinz*sinx);

  result.m4 = sinz*cosy;
  result.m5 = (sinz*siny*sinx) + (cosz*cosx);
  result.m6 = (sinz*siny*cosx) - (cosz*sinx);

  result.m8 = -siny;
  result.m9 = cosy*sinx;
  result.m10= cosy*cosx;

  return result;
}