public static Mat4 operator *(Mat4 a, Mat4 b) { if (a == null) { return(null); } if (b == null) { return(null); } Mat4 newMat = new Mat4(); newMat[0] = b.mData[0][0] * a.mData[0][0] + b.mData[0][1] * a.mData[1][0] + b.mData[0][2] * a.mData[2][0] + b.mData[0][3] * a.mData[3][0]; newMat[1] = b.mData[0][0] * a.mData[0][1] + b.mData[0][1] * a.mData[1][1] + b.mData[0][2] * a.mData[2][1] + b.mData[0][3] * a.mData[3][1]; newMat[2] = b.mData[0][0] * a.mData[0][2] + b.mData[0][1] * a.mData[1][2] + b.mData[0][2] * a.mData[2][2] + b.mData[0][3] * a.mData[3][2]; newMat[3] = b.mData[0][0] * a.mData[0][3] + b.mData[0][1] * a.mData[1][3] + b.mData[0][2] * a.mData[2][3] + b.mData[0][3] * a.mData[3][3]; newMat[4] = b.mData[1][0] * a.mData[0][0] + b.mData[1][1] * a.mData[1][0] + b.mData[1][2] * a.mData[2][0] + b.mData[1][3] * a.mData[3][0]; newMat[5] = b.mData[1][0] * a.mData[0][1] + b.mData[1][1] * a.mData[1][1] + b.mData[1][2] * a.mData[2][1] + b.mData[1][3] * a.mData[3][1]; newMat[6] = b.mData[1][0] * a.mData[0][2] + b.mData[1][1] * a.mData[1][2] + b.mData[1][2] * a.mData[2][2] + b.mData[1][3] * a.mData[3][2]; newMat[7] = b.mData[1][0] * a.mData[0][3] + b.mData[1][1] * a.mData[1][3] + b.mData[1][2] * a.mData[2][3] + b.mData[1][3] * a.mData[3][3]; newMat[8] = b.mData[2][0] * a.mData[0][0] + b.mData[2][1] * a.mData[1][0] + b.mData[2][2] * a.mData[2][0] + b.mData[2][3] * a.mData[3][0]; newMat[9] = b.mData[2][0] * a.mData[0][1] + b.mData[2][1] * a.mData[1][1] + b.mData[2][2] * a.mData[2][1] + b.mData[2][3] * a.mData[3][1]; newMat[10] = b.mData[2][0] * a.mData[0][2] + b.mData[2][1] * a.mData[1][2] + b.mData[2][2] * a.mData[2][2] + b.mData[2][3] * a.mData[3][2]; newMat[11] = b.mData[2][0] * a.mData[0][3] + b.mData[2][1] * a.mData[1][3] + b.mData[2][2] * a.mData[2][3] + b.mData[2][3] * a.mData[3][3]; newMat[12] = b.mData[3][0] * a.mData[0][0] + b.mData[3][1] * a.mData[1][0] + b.mData[3][2] * a.mData[2][0] + b.mData[3][3] * a.mData[3][0]; newMat[13] = b.mData[3][0] * a.mData[0][1] + b.mData[3][1] * a.mData[1][1] + b.mData[3][2] * a.mData[2][1] + b.mData[3][3] * a.mData[3][1]; newMat[14] = b.mData[3][0] * a.mData[0][2] + b.mData[3][1] * a.mData[1][2] + b.mData[3][2] * a.mData[2][2] + b.mData[3][3] * a.mData[3][2]; newMat[15] = b.mData[3][0] * a.mData[0][3] + b.mData[3][1] * a.mData[1][3] + b.mData[3][2] * a.mData[2][3] + b.mData[3][3] * a.mData[3][3]; return(newMat); }
public Mat4(Mat4 mat) : this() { set(mat.mData); }