/// <summary> /// Selects best population strategy for room based on current conditions. /// </summary> /// <param name="room"></param> /// <param name="zone"></param> /// <param name="pm"></param> public static void Room(RoomPackage room, ZonePackage zone, ProgramManifest pm) { //Prepare room for population routine based on current fill progress. room.PlacedItems = new List <PlacementPackage>(); Stage.Room.BaseAnchors(room); Stage.Room.ProgramFillOrder(room, zone, pm); Stage.Room.MaximumPlacements(room, zone, pm); //Select best population strategy based on room geometry and quotas. //TODO: Automate selection process and write base suite of strategies. Populate.ByMostRows(room, zone, pm); //After room is filled, adjust remaining quota for zone. Update.Zone.RemainingProgramTargets(zone, room); }