mirror of
https://github.com/simtactics/mysimulation.git
synced 2025-03-20 16:51:21 +00:00
- Until the real FreeSO API server is properly reconfigured, a mock API will take it's place using Mockoon. - Ported over a few elements from FSO.Common into the client.
58 lines
2 KiB
C#
Executable file
58 lines
2 KiB
C#
Executable file
namespace FSO.Common.MeshSimplify
|
|
{
|
|
public class SymmetricMatrix
|
|
{
|
|
public SymmetricMatrix(double c)
|
|
{
|
|
for (int i = 0; i < 10; i++) m[i] = c;
|
|
}
|
|
|
|
|
|
public SymmetricMatrix(double m11, double m12, double m13, double m14,
|
|
double m22, double m23, double m24,
|
|
double m33, double m34,
|
|
double m44)
|
|
{
|
|
m[0] = m11; m[1] = m12; m[2] = m13; m[3] = m14;
|
|
m[4] = m22; m[5] = m23; m[6] = m24;
|
|
m[7] = m33; m[8] = m34;
|
|
m[9] = m44;
|
|
}
|
|
|
|
// Make plane
|
|
|
|
public SymmetricMatrix(double a, double b, double c, double d)
|
|
{
|
|
m[0] = a * a; m[1] = a * b; m[2] = a * c; m[3] = a * d;
|
|
m[4] = b * b; m[5] = b * c; m[6] = b * d;
|
|
m[7] = c * c; m[8] = c * d;
|
|
m[9] = d * d;
|
|
}
|
|
|
|
public double this[int c]
|
|
{
|
|
get { return m[c]; }
|
|
set { m[c] = value; }
|
|
}
|
|
|
|
public double[] m = new double[10];
|
|
|
|
//determinant
|
|
public double det(int a11, int a12, int a13,
|
|
int a21, int a22, int a23,
|
|
int a31, int a32, int a33)
|
|
{
|
|
double det = m[a11] * m[a22] * m[a33] + m[a13] * m[a21] * m[a32] + m[a12] * m[a23] * m[a31]
|
|
- m[a13] * m[a22] * m[a31] - m[a11] * m[a23] * m[a32] - m[a12] * m[a21] * m[a33];
|
|
return det;
|
|
}
|
|
|
|
public static SymmetricMatrix operator +(SymmetricMatrix m, SymmetricMatrix n)
|
|
{
|
|
return new SymmetricMatrix(m[0] + n[0], m[1] + n[1], m[2] + n[2], m[3] + n[3],
|
|
m[4] + n[4], m[5] + n[5], m[6] + n[6],
|
|
m[7] + n[7], m[8] + n[8],
|
|
m[9] + n[9]);
|
|
}
|
|
}
|
|
}
|