private Matrix getTransform(byte[] buffer)
{
Matrix t = new Matrix();
MiscUtil.Conversion.BigEndianBitConverter bc = new MiscUtil.Conversion.BigEndianBitConverter();
// Surely i've missed something and there's a way to loop through this? Please?
int i = 0;
t.M11 = bc.ToSingle(buffer, i); i += 4;
t.M12 = bc.ToSingle(buffer, i); i += 4;
t.M13 = bc.ToSingle(buffer, i); i += 4;
t.M14 = bc.ToSingle(buffer, i); i += 4;
t.M21 = bc.ToSingle(buffer, i); i += 4;
t.M22 = bc.ToSingle(buffer, i); i += 4;
t.M23 = bc.ToSingle(buffer, i); i += 4;
t.M24 = bc.ToSingle(buffer, i); i += 4;
t.M31 = bc.ToSingle(buffer, i); i += 4;
t.M32 = bc.ToSingle(buffer, i); i += 4;
t.M33 = bc.ToSingle(buffer, i); i += 4;
t.M34 = bc.ToSingle(buffer, i); i += 4;
t.M41 = bc.ToSingle(buffer, i); i += 4;
t.M42 = bc.ToSingle(buffer, i); i += 4;
t.M43 = bc.ToSingle(buffer, i); i += 4;
t.M44 = bc.ToSingle(buffer, i); i += 4;
return t;
}