public void Methods_for_individual_components_of_quaternion_product_are_consistent_with_product_operator() { var x = new Quaternion(-0.1, 0.25, 0.52, -0.7); var y = new Quaternion(0.89, 1.1, -2.56, 3.14); var expected = x * y; var actual = new Quaternion(QuaternionUtils.ProductA(x, y), QuaternionUtils.ProductB(x, y), QuaternionUtils.ProductC(x, y), QuaternionUtils.ProductD(x, y)); ExpectAlmostEqual(actual, expected); }
public static double ProductZ(Rotation3 r, Vector3 v) { return(QuaternionUtils.ProductD(r.Quaternion * v, r.Quaternion.Conjugate)); }