예제 #1
0
        /// <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);
        }