예제 #1
0
        /// <summary>
        /// </summary>
        public static M3__s3f__ operator *(__e3t__ r3, Rot2f r2)
        {
            M3__s3f__ m33 = (M3__s3f__)r3;
            M22f      m22 = (M22f)r2;

            return(new M3__s3f__(
                       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
                       ));
        }
예제 #2
0
        /// <summary>
        /// </summary>
        public static M3__s3f__ operator *(Euclidean__s3f__ r3, __r2t__ r2)
        {
            M3__s3f__ m33 = (M3__s3f__)r3;
            M2__s2f__ m22 = (M2__s2f__)r2;

            return(new M3__s3f__(
                       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
 /// <summary>
 /// Creates a rigid transformation from a rotation matrix <paramref name="rot"/> and a (subsequent) translation <paramref name="trans"/>.
 /// </summary>
 public __e3t__(M3__s3f__ rot, __v3t__ trans, __ft__ epsilon = __eps__)
 {
     Rot   = __r3t__.FromM3__s3f__(rot, epsilon);
     Trans = trans;
 }
예제 #4
0
 public static M3__s4f__ Multiply(M3__s3f__ m, __e3t__ r)
 {
     return(M3__s4f__.Multiply(m, (M3__s4f__)r));
 }