diff --git a/TheRepo/TheLabs/MyMatrix.cs b/TheRepo/TheLabs/MyMatrix.cs index 4577231..c67ea6b 100644 --- a/TheRepo/TheLabs/MyMatrix.cs +++ b/TheRepo/TheLabs/MyMatrix.cs @@ -5,6 +5,8 @@ using OpenTK.Mathematics; public class MyMatrix { + private float[,] elements = new float[4, 4]; + public MyMatrix(float pRow0Column0, float pRow0Column1, float pRow0Column2, @@ -22,16 +24,38 @@ public class MyMatrix float pRow3Column2, float pRow3Column3) { - + // row 0 + SetElement(0, 0, pRow0Column0); + SetElement(0, 1, pRow0Column1); + SetElement(0, 2, pRow0Column2); + SetElement(0, 3, pRow0Column3); + + // row 1 + SetElement(1, 0, pRow1Column0); + SetElement(1, 1, pRow1Column1); + SetElement(1, 2, pRow1Column2); + SetElement(1, 3, pRow1Column3); + + // row 2 + SetElement(2, 0, pRow2Column0); + SetElement(2, 1, pRow2Column1); + SetElement(2, 2, pRow2Column2); + SetElement(2, 3, pRow2Column3); + + // row 3 + SetElement(3, 0, pRow3Column0); + SetElement(3, 1, pRow3Column1); + SetElement(3, 2, pRow3Column2); + SetElement(3, 3, pRow3Column3); } public float GetElement(int pRow, int pColumn) { - return -1; + return elements[pRow, pColumn]; } public void SetElement(int pRow, int pColumn, float pValue) { - + elements[pRow, pColumn] = pValue; } @@ -85,7 +109,12 @@ public class MyMatrix // this looks a little odd as the OpenTK Matrix4 constructor takes the elements in row major order public Matrix4 ToMatrix4() { - return Matrix4.Identity; + return new Matrix4( + GetElement(0,0), GetElement(0,1), GetElement(0,2), GetElement(0,3), + GetElement(1,0), GetElement(1,1), GetElement(1,2), GetElement(1,3), + GetElement(2,0), GetElement(2,1), GetElement(2,2), GetElement(2,3), + GetElement(3,0), GetElement(3,1), GetElement(3,2), GetElement(3,3) + ); }