diff --git a/OpenMetaverse.Tests/TypeTests.cs b/OpenMetaverse.Tests/TypeTests.cs index ba9b0e51..fdfb63e1 100644 --- a/OpenMetaverse.Tests/TypeTests.cs +++ b/OpenMetaverse.Tests/TypeTests.cs @@ -115,7 +115,7 @@ namespace OpenMetaverse.Tests a = new Quaternion(1, 0, 0, 0); b = new Quaternion(0, 1, 0, 0); - expected = new Quaternion(0, 0, -1, 0); + expected = new Quaternion(0, 0, 1, 0); result = a * b; Assert.IsTrue(result == expected, a.ToString() + " * " + b.ToString() + " produced " + result.ToString() + @@ -123,7 +123,7 @@ namespace OpenMetaverse.Tests a = new Quaternion(0, 0, 1, 0); b = new Quaternion(0, 1, 0, 0); - expected = new Quaternion(1, 0, 0, 0); + expected = new Quaternion(-1, 0, 0, 0); result = a * b; Assert.IsTrue(result == expected, a.ToString() + " * " + b.ToString() + " produced " + result.ToString() + diff --git a/OpenMetaverseTypes/Quaternion.cs b/OpenMetaverseTypes/Quaternion.cs index b4a713a2..955c0dc6 100644 --- a/OpenMetaverseTypes/Quaternion.cs +++ b/OpenMetaverseTypes/Quaternion.cs @@ -602,10 +602,10 @@ namespace OpenMetaverse public static Quaternion Multiply(Quaternion a, Quaternion b) { return new Quaternion( - b.W * a.X + b.X * a.W + b.Y * a.Z - b.Z * a.Y, - b.W * a.Y + b.Y * a.W + b.Z * a.X - b.X * a.Z, - b.W * a.Z + b.Z * a.W + b.X * a.Y - b.Y * a.X, - b.W * a.W - b.X * a.X - b.Y * a.Y - b.Z * a.Z + a.W * b.X + a.X * b.W + a.Y * b.Z - a.Z * b.Y, + a.W * b.Y + a.Y * b.W + a.Z * b.X - a.X * b.Z, + a.W * b.Z + a.Z * b.W + a.X * b.Y - a.Y * b.X, + a.W * b.W - a.X * b.X - a.Y * b.Y - a.Z * b.Z ); }