コード例 #1
0
        public static Mat3f operator +(Mat3f m1, Mat3f m2)
        {
            Mat3f res = new Mat3f();

            res.data[0] = m1.data[0] + m2.data[0];
            res.data[1] = m1.data[1] + m2.data[1];
            res.data[2] = m1.data[2] + m2.data[2];

            return(res);
        }
コード例 #2
0
        public Mat3f transpose()
        {
            Mat3f transpMat = new Mat3f();

            transpMat.data[0][0] = data[0][0];
            transpMat.data[0][1] = data[1][0];
            transpMat.data[0][2] = data[2][0];

            transpMat.data[1][0] = data[0][1];
            transpMat.data[1][1] = data[1][1];
            transpMat.data[1][2] = data[2][1];

            transpMat.data[2][0] = data[0][2];
            transpMat.data[2][1] = data[1][2];
            transpMat.data[2][2] = data[2][2];

            return(transpMat);
        }
コード例 #3
0
        public Mat3f inverse()
        {
            float Determinant = determinant();

            Mat3f Inverse = new Mat3f();

            Inverse.data[0][0] = +(data[1][1] * data[2][2] - data[2][1] * data[1][2]);
            Inverse.data[0][1] = -(data[1][0] * data[2][2] - data[2][0] * data[1][2]);
            Inverse.data[0][2] = +(data[1][0] * data[2][1] - data[2][0] * data[1][1]);
            Inverse.data[1][0] = -(data[0][1] * data[2][2] - data[2][1] * data[0][2]);
            Inverse.data[1][1] = +(data[0][0] * data[2][2] - data[2][0] * data[0][2]);
            Inverse.data[1][2] = -(data[0][0] * data[2][1] - data[2][0] * data[0][1]);
            Inverse.data[2][0] = +(data[0][1] * data[1][2] - data[1][1] * data[0][2]);
            Inverse.data[2][1] = -(data[0][0] * data[1][2] - data[1][0] * data[0][2]);
            Inverse.data[2][2] = +(data[0][0] * data[1][1] - data[1][0] * data[0][1]);
            Inverse           *= 1.0f / Determinant;

            return(Inverse);
        }