static MPos useFragment(SheetFragment fragment, float[] data, MPos bounds) { currentFragments.Remove(fragment); currentFragments.AddRange(fragment.Split(bounds)); var position = fragment.Position; currentSheet.WriteData(data, position.X, position.Y, bounds.X, bounds.Y); return(position); }
static SheetFragment findLowest(MPos bounds) { var fragments = currentFragments.Where(f => f.CanContain(bounds)); SheetFragment frag = null; var fragValue = int.MaxValue; foreach (var f in fragments) { var currentValue = f.Bounds.X * f.Bounds.Y; if (currentValue < fragValue) { frag = f; fragValue = currentValue; } } return(frag); }