//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"); } }
/// <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 )); }
public static __m22t__ Multiply(__rot2t__ rot, __m22t__ mat) { return((__m22t__)rot * mat); }