Example #1
0
        public static Matrix34 CreateScale(Vector3 s, Vector3 t = default(Vector3))
        {
            var matrix = new Matrix34();

            matrix.SetScale(s, t);

            return(matrix);
        }
Example #2
0
        public static Matrix34 CreateTranslationMat(Vector3 v)
        {
            var matrix = new Matrix34();

            matrix.SetTranslationMat(v);

            return(matrix);
        }
Example #3
0
        public static Matrix34 CreateRotationAA(float c, float s, Vector3 axis, Vector3 t = default(Vector3))
        {
            var matrix = new Matrix34();

            matrix.SetRotationAA(c, s, axis, t);

            return(matrix);
        }
Example #4
0
        public static Matrix34 CreateIdentity()
        {
            var matrix = new Matrix34();

            matrix.SetIdentity();

            return(matrix);
        }
Example #5
0
        public static Matrix34 CreateFromVectors(Vector3 vx, Vector3 vy, Vector3 vz, Vector3 pos)
        {
            var matrix = new Matrix34();

            matrix.SetFromVectors(vx, vy, vz, pos);

            return(matrix);
        }
Example #6
0
        public Matrix33(Matrix34 m)
        {
            M00 = m.M00;
            M01 = m.M01;
            M02 = m.M02;

            M10 = m.M10;
            M11 = m.M11;
            M12 = m.M12;

            M20 = m.M20;
            M21 = m.M21;
            M22 = m.M22;
        }
Example #7
0
        public static Matrix34 operator *(Matrix34 l, Matrix34 r)
        {
            var m = new Matrix34();

            m.M00 = l.M00 * r.M00 + l.M01 * r.M10 + l.M02 * r.M20;
            m.M10 = l.M10 * r.M00 + l.M11 * r.M10 + l.M12 * r.M20;
            m.M20 = l.M20 * r.M00 + l.M21 * r.M10 + l.M22 * r.M20;
            m.M01 = l.M00 * r.M01 + l.M01 * r.M11 + l.M02 * r.M21;
            m.M11 = l.M10 * r.M01 + l.M11 * r.M11 + l.M12 * r.M21;
            m.M21 = l.M20 * r.M01 + l.M21 * r.M11 + l.M22 * r.M21;
            m.M02 = l.M00 * r.M02 + l.M01 * r.M12 + l.M02 * r.M22;
            m.M12 = l.M10 * r.M02 + l.M11 * r.M12 + l.M12 * r.M22;
            m.M22 = l.M20 * r.M02 + l.M21 * r.M12 + l.M22 * r.M22;
            m.M03 = l.M00 * r.M03 + l.M01 * r.M13 + l.M02 * r.M23 + l.M03;
            m.M13 = l.M10 * r.M03 + l.M11 * r.M13 + l.M12 * r.M23 + l.M13;
            m.M23 = l.M20 * r.M03 + l.M21 * r.M13 + l.M22 * r.M23 + l.M23;

            return(m);
        }
Example #8
0
        public void SetScale(Vector3 s, Vector3 t = default(Vector3))
        {
            this = new Matrix34(Matrix33.CreateScale(s));

            SetTranslation(t);
        }
Example #9
0
        /*!
         *  Create a rotation matrix around an arbitrary axis (Eulers Theorem).
         *  The axis is specified as an normalized Vector3. The angle is assumed to be in radians.
         *  This function also assumes a translation-vector and stores it in the right column.
         *
         *  Example:
         *        Matrix34 m34;
         *        Vector3 axis=GetNormalized( Vector3(-1.0f,-0.3f,0.0f) );
         *        m34.SetRotationAA( 3.14314f, axis, Vector3(5,5,5) );
         */

        public void SetRotationAA(float c, float s, Vector3 axis, Vector3 t = default(Vector3))
        {
            this = new Matrix34(Matrix33.CreateRotationAA(c, s, axis));
            M03  = t.X; M13 = t.Y; M23 = t.Z;
        }
Example #10
0
 public bool IsEquivalent(Matrix34 m, float e = 0.05f)
 {
     return((Math.Abs(M00 - m.M00) <= e) && (Math.Abs(M01 - m.M01) <= e) && (Math.Abs(M02 - m.M02) <= e) && (Math.Abs(M03 - m.M03) <= e) &&
            (Math.Abs(M10 - m.M10) <= e) && (Math.Abs(M11 - m.M11) <= e) && (Math.Abs(M12 - m.M12) <= e) && (Math.Abs(M13 - m.M13) <= e) &&
            (Math.Abs(M20 - m.M20) <= e) && (Math.Abs(M21 - m.M21) <= e) && (Math.Abs(M22 - m.M22) <= e) && (Math.Abs(M23 - m.M23) <= e));
 }