Compare commits

...

2 Commits

Author SHA1 Message Date
315273e0ec Added createTranslation 2025-10-03 12:25:23 +01:00
78b2d5dbb7 Started work on matrices 2025-10-03 12:05:17 +01:00

View File

@ -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,28 +24,58 @@ 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;
}
public static MyMatrix CreateIdentity()
{
return null;
return new MyMatrix(
1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1
);
}
public static MyMatrix CreateTranslation(MyVector pTranslation)
{
return null;
return new MyMatrix(1f, 0f, 0f, 0f,
0f, 1f, 0f, 0f,
0f, 0f, 1f, 0f,
pTranslation.X, pTranslation.Y, pTranslation.Z, 1f);
}
public static MyMatrix CreateScale(MyVector pScale)
@ -85,7 +117,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)
);
}