pub fn mtx_mul(m1: &Matrix4x4, m2: &Matrix4x4) -> Matrix4x4 {
    let mut r: Matrix4x4 = Matrix4x4::default();
    for i in 0..4 {
        for j in 0..4 {
            r.m[i][j] = m1.m[i][0] * m2.m[0][j]
                + m1.m[i][1] * m2.m[1][j]
                + m1.m[i][2] * m2.m[2][j]
                + m1.m[i][3] * m2.m[3][j];
        }
    }
    r
}
/// The product of two matrices.
The product of two matrices.
The product of two matrices .
pub fn mtx_mul(m1: &Matrix4x4, m2: &Matrix4x4) -> Matrix4x4 {
    let mut r: Matrix4x4 = Matrix4x4::default();
    for i in 0..4 {
        for j in 0..4 {
            r.m[i][j] = m1.m[i][0] * m2.m[0][j]
                + m1.m[i][1] * m2.m[1][j]
                + m1.m[i][2] * m2.m[2][j]
                + m1.m[i][3] * m2.m[3][j];
        }
    }
    r
}
pub fn mtx_mul ( m1 : & Matrix4x4 , m2 : & Matrix4x4 ) -> Matrix4x4 { let mut r : Matrix4x4 = Matrix4x4 :: default ( ) ; for i in 0 .. 4 { for j in 0 .. 4 { r . m [ i ] [ j ] = m1 . m [ i ] [ 0 ] * m2 . m [ 0 ] [ j ] + m1 . m [ i ] [ 1 ] * m2 . m [ 1 ] [ j ] + m1 . m [ i ] [ 2 ] * m2 . m [ 2 ] [ j ] + m1 . m [ i ] [ 3 ] * m2 . m [ 3 ] [ j ] ; } } r }
The product of two matrices.
The product of two matrices .
m1
&Matrix4x4
m2
&Matrix4x4