public void Dispose(List <SampleValue> samples, Style style) { if (!Exec.IsExecuting()) { throw new ExecutionEnded(""); } //Gui.Log("Device: DISPOSE " + Style.FormatSequence(samples, ", ", x => x.FormatSymbol(style))); Place[,] area = FreeAreaInColumn(zone["mixing"], minRow: 0, rows: 1, cols: 2 * samples.Count - 1); // find free columns in "mixing" block, on the same row List <Place>[] routes = new List <Place> [samples.Count]; for (int i = 0; i < samples.Count; i++) { routes[i] = placement.PathHorFirst(placement.PlaceOf(samples[i], style), area[0, 2 * i]); } placement.FollowRoutes(routes, clearance: 1, style); for (int i = 0; i < samples.Count; i++) { placement.Disappear(placement.PlaceOf(samples[i], style), style); } }