Ejemplo n.º 1
0
 void SetMatrix(double m11, double m12, double m21, double m22, double offsetX, double offsetY, MatrixTypesMock type)
 {
     this._m11     = m11;
     this._m12     = m12;
     this._m21     = m21;
     this._m22     = m22;
     this._offsetX = offsetX;
     this._offsetY = offsetY;
     this._type    = type;
 }
Ejemplo n.º 2
0
 public MatrixMock(double m11, double m12, double m21, double m22, double offsetX, double offsetY)
 {
     this._m11     = m11;
     this._m12     = m12;
     this._m21     = m21;
     this._m22     = m22;
     this._offsetX = offsetX;
     this._offsetY = offsetY;
     this._type    = MatrixTypesMock.TRANSFORM_IS_UNKNOWN;
     this._padding = 0;
     this.DeriveMatrixType();
 }
Ejemplo n.º 3
0
 public void Translate(double offsetX, double offsetY)
 {
     if (this._type == MatrixTypesMock.TRANSFORM_IS_IDENTITY)
     {
         this.SetMatrix(1.0, 0.0, 0.0, 1.0, offsetX, offsetY, MatrixTypesMock.TRANSFORM_IS_TRANSLATION);
     }
     else if (this._type == MatrixTypesMock.TRANSFORM_IS_UNKNOWN)
     {
         this._offsetX += offsetX;
         this._offsetY += offsetY;
     }
     else
     {
         this._offsetX += offsetX;
         this._offsetY += offsetY;
         this._type    |= MatrixTypesMock.TRANSFORM_IS_TRANSLATION;
     }
 }
Ejemplo n.º 4
0
 void DeriveMatrixType()
 {
     this._type = MatrixTypesMock.TRANSFORM_IS_IDENTITY;
     if ((this._m21 != 0.0) || (this._m12 != 0.0))
     {
         this._type = MatrixTypesMock.TRANSFORM_IS_UNKNOWN;
     }
     else
     {
         if ((this._m11 != 1.0) || (this._m22 != 1.0))
         {
             this._type = MatrixTypesMock.TRANSFORM_IS_SCALING;
         }
         if ((this._offsetX != 0.0) || (this._offsetY != 0.0))
         {
             this._type |= MatrixTypesMock.TRANSFORM_IS_TRANSLATION;
         }
         if ((this._type & (MatrixTypesMock.TRANSFORM_IS_SCALING | MatrixTypesMock.TRANSFORM_IS_TRANSLATION)) == MatrixTypesMock.TRANSFORM_IS_IDENTITY)
         {
             this._type = MatrixTypesMock.TRANSFORM_IS_IDENTITY;
         }
     }
 }
Ejemplo n.º 5
0
        internal static void MultiplyMatrix(ref MatrixMock matrix1, ref MatrixMock matrix2)
        {
            MatrixTypesMock mock  = matrix1._type;
            MatrixTypesMock mock2 = matrix2._type;

            if (mock2 != MatrixTypesMock.TRANSFORM_IS_IDENTITY)
            {
                if (mock == MatrixTypesMock.TRANSFORM_IS_IDENTITY)
                {
                    matrix1 = matrix2;
                }
                else if (mock2 == MatrixTypesMock.TRANSFORM_IS_TRANSLATION)
                {
                    matrix1._offsetX += matrix2._offsetX;
                    matrix1._offsetY += matrix2._offsetY;
                    if (mock != MatrixTypesMock.TRANSFORM_IS_UNKNOWN)
                    {
                        matrix1._type |= MatrixTypesMock.TRANSFORM_IS_TRANSLATION;
                    }
                }
                else if (mock == MatrixTypesMock.TRANSFORM_IS_TRANSLATION)
                {
                    double num  = matrix1._offsetX;
                    double num2 = matrix1._offsetY;
                    matrix1          = matrix2;
                    matrix1._offsetX = ((num * matrix2._m11) + (num2 * matrix2._m21)) + matrix2._offsetX;
                    matrix1._offsetY = ((num * matrix2._m12) + (num2 * matrix2._m22)) + matrix2._offsetY;
                    if (mock2 == MatrixTypesMock.TRANSFORM_IS_UNKNOWN)
                    {
                        matrix1._type = MatrixTypesMock.TRANSFORM_IS_UNKNOWN;
                    }
                    else
                    {
                        matrix1._type = MatrixTypesMock.TRANSFORM_IS_SCALING | MatrixTypesMock.TRANSFORM_IS_TRANSLATION;
                    }
                }
                else
                {
                    switch (((int)(((MatrixTypesMock)(((int)mock) << 4)) | mock2)))
                    {
                    case 0x22:
                        matrix1._m11 *= matrix2._m11;
                        matrix1._m22 *= matrix2._m22;
                        return;

                    case 0x23:
                        matrix1._m11    *= matrix2._m11;
                        matrix1._m22    *= matrix2._m22;
                        matrix1._offsetX = matrix2._offsetX;
                        matrix1._offsetY = matrix2._offsetY;
                        matrix1._type    = MatrixTypesMock.TRANSFORM_IS_SCALING | MatrixTypesMock.TRANSFORM_IS_TRANSLATION;
                        return;

                    case 0x24:
                    case 0x34:
                    case 0x42:
                    case 0x43:
                    case 0x44:
                        matrix1 = new MatrixMock((matrix1._m11 * matrix2._m11) + (matrix1._m12 * matrix2._m21), (matrix1._m11 * matrix2._m12) + (matrix1._m12 * matrix2._m22), (matrix1._m21 * matrix2._m11) + (matrix1._m22 * matrix2._m21), (matrix1._m21 * matrix2._m12) + (matrix1._m22 * matrix2._m22), ((matrix1._offsetX * matrix2._m11) + (matrix1._offsetY * matrix2._m21)) + matrix2._offsetX, ((matrix1._offsetX * matrix2._m12) + (matrix1._offsetY * matrix2._m22)) + matrix2._offsetY);
                        return;

                    case 50:
                        matrix1._m11     *= matrix2._m11;
                        matrix1._m22     *= matrix2._m22;
                        matrix1._offsetX *= matrix2._m11;
                        matrix1._offsetY *= matrix2._m22;
                        return;

                    case 0x33:
                        matrix1._m11    *= matrix2._m11;
                        matrix1._m22    *= matrix2._m22;
                        matrix1._offsetX = (matrix2._m11 * matrix1._offsetX) + matrix2._offsetX;
                        matrix1._offsetY = (matrix2._m22 * matrix1._offsetY) + matrix2._offsetY;
                        break;

                    default:
                        return;
                    }
                }
            }
        }
Ejemplo n.º 6
0
 public void SetIdentity()
 {
     this._type = MatrixTypesMock.TRANSFORM_IS_IDENTITY;
 }