using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PCUT.Extensions.Transforms
{
    public class MatrixTransform : SvgTransform
    {
        public double A { get; private set; }
        public double B { get; private set; }
        public double C { get; private set; }
        public double D { get; private set; }
        public double E { get; private set; }
        public double F { get; private set; }

        public MatrixTransform(double a, double b, double c, double d, double e, double f)
        {
            A = a;
            B = b;
            C = c;
            D = d;
            E = e;
            F = f;
        }

        protected override (double X, double Y) InternalTransform(double x, double y)
        {
            var x1 = A * x + C * y + E;
            var y1 = B * x + D * y + F;
            return (x1, y1);
        }
    }
}
