コード例 #1
0
        public Composite PseudoClone()
        {
            var newPreconds = new List <IPredicate>();

            foreach (var precon in base.Preconditions)
            {
                newPreconds.Add(precon.Clone() as IPredicate);
            }
            var newEffects = new List <IPredicate>();

            foreach (var eff in base.Effects)
            {
                newEffects.Add(eff.Clone() as IPredicate);
            }

            var newBase = new Operator(base.Predicate.Clone() as Predicate, newPreconds, newEffects);
            var init    = InitialStep.Clone() as IPlanStep;

            init.Action = init.Action.Clone() as Operator;
            var goal = GoalStep.Clone() as IPlanStep;

            goal.Action = goal.Action.Clone() as Operator;

            return(new Composite(newBase, init, goal, SubSteps, SubOrderings, SubLinks)
            {
                Height = this.Height,
                NonEqualities = this.NonEqualities
            });
        }
コード例 #2
0
        public new Object Clone()
        {
            var op   = base.Clone() as IOperator;
            var init = InitialStep.Clone() as IPlanStep;
            var goal = GoalStep.Clone() as IPlanStep;

            return(new Composite(op, init, goal, SubSteps, SubOrderings, SubLinks)
            {
                Height = this.Height,
                NonEqualities = this.NonEqualities
            });
        }
コード例 #3
0
        public new Object Clone()
        {
            var op          = base.Clone() as IOperator;
            var newSubsteps = new List <IPlanStep>();

            foreach (var substep in SubSteps)
            {
                var newsubstep = substep.Clone() as IPlanStep;
                newsubstep.Action = newsubstep.Action.Clone() as Operator;
                newSubsteps.Add(newsubstep);
            }

            //  var newinitial = InitialStep.Clone() as IPlanStep;
            //newinitial.Action = InitialStep.Action.Clone() as Operator;
            // do same for literals
            return(new Decomposition(op, Literals, InitialStep.Clone() as IPlanStep, GoalStep.Clone() as IPlanStep, newSubsteps, SubOrderings.ToList(), SubLinks.ToList()));
            // return new Decomposition(op, Literals, newSubsteps, SubOrderings, SubLinks);
        }