public QuadTransformation(IImageProvider source, Size size, QuadDirection direction, EdgePoints edgePoints)
            : base(source)
        {
            Direction = direction;
            Size = size;

            EdgePoints = edgePoints;
        }
        public EdgePoints(EdgePoints edgePoints)
        {
            TopLeft = edgePoints.TopLeft;
            TopRight = edgePoints.TopRight;
            BottomLeft = edgePoints.BottomLeft;
            BottomRight = edgePoints.BottomRight;

            Bounds = edgePoints.Bounds;
        }
        public EdgePoints ZoomIn(double scale)
        {
            EdgePoints result = new EdgePoints(Bounds);
            result.TopLeft = new Point(TopLeft.X / scale, TopLeft.Y / scale);
            result.TopRight = new Point(TopRight.X / scale, TopRight.Y / scale);
            result.BottomLeft = new Point(BottomLeft.X / scale, BottomLeft.Y / scale);
            result.BottomRight = new Point(BottomRight.X / scale, BottomRight.Y / scale);

            return result;
        }