//http://isotopescreencapture.codeplex.com/
//The MIT License (MIT)
namespace Isotope.Math
{
public struct Matrix3x3
{
public double M11, M12, M13;
public double M21, M22, M23;
public double M31, M32, M33;
public Matrix3x3(
double m11,
double m12,
double m13,
double m21,
double m22,
double m23,
double m31,
double m32,
double m33)
{
M11 = m11;
M12 = m12;
M13 = m13;
M21 = m21;
M22 = m22;
M23 = m23;
M31 = m31;
M32 = m32;
M33 = m33;
}
public Matrix3x3 Multiply(Matrix3x3 m)
{
var result = new Matrix3x3();
result.M11 = this.M11*m.M11 + this.M12*m.M21 + this.M13*m.M31;
result.M12 = this.M11*m.M12 + this.M12*m.M22 + this.M13*m.M32;
result.M13 = this.M11*m.M13 + this.M12*m.M23 + this.M13*m.M33;
result.M21 = this.M21*m.M11 + this.M22*m.M21 + this.M23*m.M31;
result.M22 = this.M21*m.M12 + this.M22*m.M22 + this.M23*m.M32;
result.M23 = this.M21*m.M13 + this.M22*m.M23 + this.M23*m.M33;
result.M31 = this.M31*m.M11 + this.M32*m.M21 + this.M33*m.M31;
result.M32 = this.M31*m.M12 + this.M32*m.M22 + this.M33*m.M32;
result.M33 = this.M31*m.M13 + this.M32*m.M23 + this.M33*m.M33;
return result;
}
public static Matrix3x3 operator *(Matrix3x3 a, Matrix3x3 b)
{
return a.Multiply(b);
}
}
}
|