Exemplo n.º 1
0
        /// <summary>
        /// Constructs the state from the input data.
        /// </summary>
        /// <param name="init">Input data.</param>
        /// <param name="idManager">ID manager.</param>
        public State(InputData.PDDL.Init init, IdManager idManager) : this(idManager)
        {
            InitialStateDataBuilder builder = new InitialStateDataBuilder(idManager);
            builder.Build(init);

            Predicates       = (builder.Predicates.Count != 0) ? builder.Predicates : null;
            NumericFunctions = (builder.NumericFunctions.Count != 0) ? builder.NumericFunctions : null;
            ObjectFunctions  = (builder.ObjectFunctions.Count != 0) ? builder.ObjectFunctions : null;
        }
        /// <summary>
        /// Builds PDDL initial state data.
        /// </summary>
        /// <param name="init">Initial state input data.</param>
        public void Build(InputData.PDDL.Init init)
        {
            Predicates       = new HashSet <IAtom>();
            NumericFunctions = new Dictionary <IAtom, double>();
            ObjectFunctions  = new Dictionary <IAtom, int>();

            foreach (var initElement in init)
            {
                initElement.Accept(this);
            }
        }