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 }); }
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 }); }
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); }