private List <Tuple <float, float> > Errors( PaletteParameters parameters, List <PaletteEntry> ramp, Range <float> range, int count, Func <PaletteGenerator, float, float> function) { PaletteGenerator copyGenerator = (PaletteGenerator)Clone(); PaletteParameters copyParameters = (PaletteParameters)parameters.Clone(); float interval = (range.Maximum - range.Minimum) / count; var errors = new List <Tuple <float, float> >(); for (int i = 0; i <= count; i++) { float value = range.Minimum + interval * i; function(copyGenerator, value); // Kind of necessary for user facing values // Minimize error on blue shadow copyParameters.MinimizeBlueError(copyGenerator, ramp); // Minimize error on yellow light copyParameters.MinimizeYellowError(copyGenerator, ramp); var palette = copyGenerator.GetPalette(copyParameters); float error = palette.GetError(ramp); errors.Add(Tuple.Create(value, error)); } return(errors); }
public void MinimizeYellowError(PaletteParameters parameters) { var entries = Palette.RampEntries(Ramp); parameters.MinimizeYellowError(Ramp.Generator, entries); }