@Override
    public ArrayList<Delta> apply(Color c, int x, int y, Color[][] colorArr) {
        if (start == null) {
            start = new Point(x, y);
            return new ArrayList<>();
        } else {
            Point p1 = start;
            Point p2 = new Point(x,y);
            ArrayList<Point> ch = bresenham(p1,p2);
            ArrayList<Delta> deltas = new ArrayList<>();
            for (Point d : ch) {
                Delta del = new Delta(d.x,d.y,colorArr[d.x][d.y],c);
                deltas.add(del);
                colorArr[d.x][d.y] = c;
            }
            start = null;
            return deltas;
            
        }
    }