示例#1
0
        //WARNING: untested

        public static __rot2t__ From__m22t__(__m22t__ m)
        {
            // cos(a) sin(a)
            //-sin(a) cos(a)

            if (m.M00 >= -1.0 && m.M00 <= 1.0)
            {
                return(new __rot2t__((__ft__)System.Math.Acos(m.M00)));
            }
            else
            {
                throw new ArgumentException("Given __m22t__ is not a Rotation-Matrix");
            }
        }
示例#2
0
        /// <summary>
        /// </summary>
        public static __m33t__ operator *(__rot3t__ r3, __rot2t__ r2)
        {
            __m33t__ m33 = (__m33t__)r3;
            __m22t__ m22 = (__m22t__)r2;

            return(new __m33t__(
                       m33.M00 * m22.M00 + m33.M01 * m22.M10,
                       m33.M00 * m22.M01 + m33.M01 * m22.M11,
                       m33.M02,

                       m33.M10 * m22.M00 + m33.M11 * m22.M10,
                       m33.M10 * m22.M01 + m33.M11 * m22.M11,
                       m33.M12,

                       m33.M20 * m22.M00 + m33.M21 * m22.M10,
                       m33.M20 * m22.M01 + m33.M21 * m22.M11,
                       m33.M22
                       ));
        }
示例#3
0
 public static __m22t__ Multiply(__rot2t__ rot, __m22t__ mat)
 {
     return((__m22t__)rot * mat);
 }