Example #1
0
        public static capex.util.Vector2 multiplyVector(capex.util.Matrix33 a, capex.util.Vector2 b)
        {
            var x = a.v[0] * b.x + a.v[1] * b.y + a.v[2] * 1.00;
            var y = a.v[3] * b.x + a.v[4] * b.y + a.v[5] * 1.00;

            return(capex.util.Vector2.create(x, y));
        }
Example #2
0
        public static capex.util.Matrix33 multiplyMatrix(capex.util.Matrix33 a, capex.util.Matrix33 b)
        {
            var matrix33 = new capex.util.Matrix33();

            matrix33.v[0] = a.v[0] * b.v[0] + a.v[1] * b.v[3] + a.v[2] * b.v[6];
            matrix33.v[1] = a.v[0] * b.v[1] + a.v[1] * b.v[4] + a.v[2] * b.v[7];
            matrix33.v[2] = a.v[0] * b.v[2] + a.v[1] * b.v[5] + a.v[2] * b.v[8];
            matrix33.v[3] = a.v[3] * b.v[0] + a.v[4] * b.v[3] + a.v[5] * b.v[6];
            matrix33.v[4] = a.v[3] * b.v[1] + a.v[4] * b.v[4] + a.v[5] * b.v[7];
            matrix33.v[5] = a.v[3] * b.v[2] + a.v[4] * b.v[5] + a.v[5] * b.v[8];
            matrix33.v[6] = a.v[6] * b.v[0] + a.v[7] * b.v[3] + a.v[8] * b.v[6];
            matrix33.v[7] = a.v[6] * b.v[1] + a.v[7] * b.v[4] + a.v[8] * b.v[7];
            matrix33.v[8] = a.v[6] * b.v[2] + a.v[7] * b.v[5] + a.v[8] * b.v[8];
            return(matrix33);
        }
Example #3
0
        public static capex.util.Matrix33 multiplyScalar(double v, capex.util.Matrix33 mm)
        {
            var mat33 = capex.util.Matrix33.forZero();

            mat33.v[0] = mm.v[0] * v;
            mat33.v[1] = mm.v[1] * v;
            mat33.v[2] = mm.v[2] * v;
            mat33.v[3] = mm.v[3] * v;
            mat33.v[4] = mm.v[4] * v;
            mat33.v[5] = mm.v[5] * v;
            mat33.v[6] = mm.v[6] * v;
            mat33.v[7] = mm.v[7] * v;
            mat33.v[8] = mm.v[8] * v;
            return(mat33);
        }
Example #4
0
        public static capex.util.Matrix33 invertMatrix(capex.util.Matrix33 m)
        {
            var d = m.v[0] * m.v[4] * m.v[8] + m.v[3] * m.v[7] * m.v[2] + m.v[6] * m.v[1] * m.v[5] - m.v[0] * m.v[7] * m.v[5] - m.v[3] * m.v[1] * m.v[8] - m.v[6] * m.v[4] * m.v[2];
            var v = new capex.util.Matrix33();

            v.v[0] = (m.v[4] * m.v[8] - m.v[7] * m.v[5]) / d;
            v.v[3] = (m.v[6] * m.v[5] - m.v[3] * m.v[8]) / d;
            v.v[6] = (m.v[3] * m.v[7] - m.v[6] * m.v[4]) / d;
            v.v[1] = (m.v[7] * m.v[2] - m.v[1] * m.v[8]) / d;
            v.v[4] = (m.v[0] * m.v[8] - m.v[6] * m.v[2]) / d;
            v.v[7] = (m.v[6] * m.v[1] - m.v[0] * m.v[7]) / d;
            v.v[2] = (m.v[1] * m.v[5] - m.v[4] * m.v[2]) / d;
            v.v[5] = (m.v[3] * m.v[2] - m.v[0] * m.v[5]) / d;
            v.v[8] = (m.v[0] * m.v[4] - m.v[3] * m.v[1]) / d;
            return(v);
        }
Example #5
0
        public static capex.util.Matrix33 forValues(double[] mv)
        {
            var v = new capex.util.Matrix33();
            var i = 0;

            for (i = 0; i < 9; i++)
            {
                if (i >= mv.Length)
                {
                    v.v[i] = 0.00;
                }
                else
                {
                    v.v[i] = mv[i];
                }
            }
            return(v);
        }
        public static void untransformCoords(capex.util.Matrix33 m, int ix, int iy, double[] tu, double[] tv, double[] tw)
        {
            var x = (double)(ix + 0.50);
            var y = (double)(iy + 0.50);

            tu[0] = m.v[0] * (x + 0) + m.v[3] * (y + 0) + m.v[6];
            tv[0] = m.v[1] * (x + 0) + m.v[4] * (y + 0) + m.v[7];
            tw[0] = m.v[2] * (x + 0) + m.v[5] * (y + 0) + m.v[8];
            tu[1] = m.v[0] * (x - 1) + m.v[3] * (y + 0) + m.v[6];
            tv[1] = m.v[1] * (x - 1) + m.v[4] * (y + 0) + m.v[7];
            tw[1] = m.v[2] * (x - 1) + m.v[5] * (y + 0) + m.v[8];
            tu[2] = m.v[0] * (x + 0) + m.v[3] * (y - 1) + m.v[6];
            tv[2] = m.v[1] * (x + 0) + m.v[4] * (y - 1) + m.v[7];
            tw[2] = m.v[2] * (x + 0) + m.v[5] * (y - 1) + m.v[8];
            tu[3] = m.v[0] * (x + 1) + m.v[3] * (y + 0) + m.v[6];
            tv[3] = m.v[1] * (x + 1) + m.v[4] * (y + 0) + m.v[7];
            tw[3] = m.v[2] * (x + 1) + m.v[5] * (y + 0) + m.v[8];
            tu[4] = m.v[0] * (x + 0) + m.v[3] * (y + 1) + m.v[6];
            tv[4] = m.v[1] * (x + 0) + m.v[4] * (y + 1) + m.v[7];
            tw[4] = m.v[2] * (x + 0) + m.v[5] * (y + 1) + m.v[8];
        }