Пример #1
0
        vector3df getScale()
        {
            if (NewMath.IsZero(M[1]) && NewMath.IsZero(M[2]) &&
                NewMath.IsZero(M[4]) && NewMath.IsZero(M[6]) &&
                NewMath.IsZero(M[8]) && NewMath.IsZero(M[9]))
            {
                return(new vector3df(M[0], M[5], M[10]));
            }

            // We have to do the full calculation.
            return(new vector3df(NewMath.Sqrt(M[0] * M[0] + M[1] * M[1] + M[2] * M[2]),
                                 NewMath.Sqrt(M[4] * M[4] + M[5] * M[5] + M[6] * M[6]),
                                 NewMath.Sqrt(M[8] * M[8] + M[9] * M[9] + M[10] * M[10])));
        }
Пример #2
0
        public bool isIdentity()
        {
            if (!NewMath.Equals(M[0], 1) ||
                !NewMath.Equals(M[5], 1) ||
                !NewMath.Equals(M[10], 1) ||
                !NewMath.Equals(M[15], 1))
            {
                return(false);
            }

            for (int i = 0; i < 4; ++i)
            {
                for (int j = 0; j < 4; ++j)
                {
                    if ((j != i) && (!NewMath.IsZero(M[i * 4 + j])))
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }