private Digit Scale(Digit digit, Scaling scaling) { if (scaling.HasNone()) { return(digit); } List <Line> scaled = new List <Line>(); bool oddLine = true; foreach (Line line in digit.Lines()) { Line scaledLine = line.ScaleHorizontal(repeater, scaling); if (oddLine) { scaled.Add(scaledLine); } else { scaled.AddRange(repeater.Repeat(scaledLine, scaling)); } oddLine = !oddLine; } return(digit.Scale(scaled)); }
public virtual Line ScaleHorizontal(IScalingRepeater repeater, Scaling scaling) { char[] chars = line.ToCharArray(); return new Line(chars[0] + repeater.Repeat(chars[1], scaling) + chars[2]); }