super(delta, dir, empty, seams);
}
@Override
public SeamList verticalSeamList(Aggregates<? extends A> aggregates, Renderer rend) {
if (seams == 0) {return new SeamList(new int[0][0],new double[0]);}
Aggregates<Double> pixelEnergy = rend.transfer(aggregates, new Energy<>(delta));
Aggregates<Double> globalEnergy = rend.transfer(pixelEnergy, new CumulativeEnergy());
Aggregates<Double> cumEng = AggregateUtils.make(globalEnergy, Double.NEGATIVE_INFINITY);
EdgeWeights weights = new EdgeWeights(globalEnergy, cumEng);
Aggregates<Integer> matchings = nSeamsMatchings(seams, weights, cumEng, globalEnergy);
return new SeamList(compileSeamList(matchings, seams), seamEnergies(cumEng, cumEng.highY()-1));
}