diff --git a/src/Maths/Silk.NET.Maths.Tests/Matrix3X4Tests.cs b/src/Maths/Silk.NET.Maths.Tests/Matrix3X4Tests.cs new file mode 100644 index 0000000000..112d71f7cd --- /dev/null +++ b/src/Maths/Silk.NET.Maths.Tests/Matrix3X4Tests.cs @@ -0,0 +1,33 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Xunit; + +namespace Silk.NET.Maths.Tests +{ + public class Matrix3X4Tests + { + [Fact] + public void MultiplyByMatrix4X2UsesEveryRowOfTheLeftMatrix() + { + var left = new Matrix3X4( + 1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12); + var right = new Matrix4X2( + 1, 2, + 3, 4, + 5, 6, + 7, 8); + + var result = left * right; + + Assert.Equal(50f, result.M11); + Assert.Equal(60f, result.M12); + Assert.Equal(114f, result.M21); + Assert.Equal(140f, result.M22); + Assert.Equal(178f, result.M31); + Assert.Equal(220f, result.M32); + } + } +} diff --git a/src/Maths/Silk.NET.Maths/Matrix4X2.cs b/src/Maths/Silk.NET.Maths/Matrix4X2.cs index ca39d744b0..4605de5c20 100644 --- a/src/Maths/Silk.NET.Maths/Matrix4X2.cs +++ b/src/Maths/Silk.NET.Maths/Matrix4X2.cs @@ -342,7 +342,7 @@ public readonly bool IsIdentity return new( value1.M11 * value2.Row1 + value1.M12 * value2.Row2 + value1.M13 * value2.Row3 + value1.M14 * value2.Row4, value1.M21 * value2.Row1 + value1.M22 * value2.Row2 + value1.M23 * value2.Row3 + value1.M24 * value2.Row4, - value1.M21 * value2.Row1 + value1.M22 * value2.Row2 + value1.M23 * value2.Row3 + value1.M24 * value2.Row4 + value1.M31 * value2.Row1 + value1.M32 * value2.Row2 + value1.M33 * value2.Row3 + value1.M34 * value2.Row4 ); }