public float4x4 OrthogonalInverse() { float4x4 ret = new float4x4(); return ret; }
// math functions public static float4x4 Identity() { float4x4 ret = new float4x4(); ret.m[0,0] = 1.0f; ret.m[0,1] = 0.0f; ret.m[0,2] = 0.0f; ret.m[0,3] = 0.0f; ret.m[1,0] = 0.0f; ret.m[1,1] = 1.0f; ret.m[1,2] = 0.0f; ret.m[1,3] = 0.0f; ret.m[2,0] = 0.0f; ret.m[2,1] = 0.0f; ret.m[2,2] = 1.0f; ret.m[2,3] = 0.0f; ret.m[3,0] = 0.0f; ret.m[3,1] = 0.0f; ret.m[3,2] = 0.0f; ret.m[3,3] = 1.0f; return ret; }
public float4x4 Inverse() { float4x4 ret = new float4x4(); return ret; }
// math operators public static float4x4 operator *(float4x4 a, float4x4 b) { float4x4 ret = new float4x4(); for( int j = 0; j < 4; j++ ) { for( int i = 0; i < 4; i++ ) { ret.m[j,i] = (a.m[j,0] * b.m[i,0]) + (a.m[j,1] * b.m[i,1]) + (a.m[j,2] * b.m[i,2]) + (a.m[j,3] * b.m[i,3]); } } return ret; }