From 7e8cc89e6bd176763db800f155ea1e08d40a8ff2 Mon Sep 17 00:00:00 2001 From: Mike Smith Date: Sun, 14 Feb 2016 10:51:45 -0800 Subject: [PATCH] + Tried to simplify Mimic method. Mostly succeeded. --- OSCADSharp/OSCADSharp/OSCADObject.cs | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/OSCADSharp/OSCADSharp/OSCADObject.cs b/OSCADSharp/OSCADSharp/OSCADObject.cs index 7f77cb3..35a16a7 100644 --- a/OSCADSharp/OSCADSharp/OSCADObject.cs +++ b/OSCADSharp/OSCADSharp/OSCADObject.cs @@ -238,26 +238,18 @@ namespace OSCADSharp /// public OSCADObject Mimic(OSCADObject other) { - IEnumerable children = other.Children(); - Stack stack = new Stack(); OSCADObject finalObject = this; - stack.Push(other); - foreach (var child in children) - { - stack.Push(child); - } + Stack toTraverse = new Stack(); + toTraverse.Push(other); + other.Children().ToList().ForEach(child => toTraverse.Push(child)); - while(stack.Count > 0) + while(toTraverse.Count > 0) { - var current = stack.Pop(); - if(!(current is IMimic)) + var current = toTraverse.Pop() as IMimic; + if(current != null) { - continue; - } - else - { - finalObject = ((IMimic)current).MimicObject(finalObject); + finalObject = current.MimicObject(finalObject); } }