diff --git a/OSCADSharp/OSCADSharp.UnitTests/OSCADObjectTests.cs b/OSCADSharp/OSCADSharp.UnitTests/OSCADObjectTests.cs index c91f506..4431ed4 100644 --- a/OSCADSharp/OSCADSharp.UnitTests/OSCADObjectTests.cs +++ b/OSCADSharp/OSCADSharp.UnitTests/OSCADObjectTests.cs @@ -53,5 +53,31 @@ namespace OSCADSharp.UnitTests Assert.IsTrue(cube.ToString().StartsWith("translate(")); Assert.IsTrue(sphere.ToString().StartsWith("translate(")); } + + [TestMethod] + public void OSCADObject_MimicTakesMultipleTransformsFromObject() + { + var cube = new Cube(null, true) + .Translate(10, 0, 5).Rotate(0, 30, 0).Scale(1, 1.5, 1); + var sphere = new Sphere().Mimic(cube); + + + Assert.IsTrue(sphere.GetType() == cube.GetType()); + var mimicedChildren = sphere.Children(); + + Assert.IsTrue(mimicedChildren.ElementAt(0).ToString().StartsWith("rotate(")); + Assert.IsTrue(mimicedChildren.ElementAt(1).ToString().StartsWith("translate(")); + Assert.IsTrue(mimicedChildren.ElementAt(2).ToString().StartsWith("sphere(")); + } + + [TestMethod] + public void OSCADObject_MimicDoesNothingOnObjectWithNoTransforms() + { + var cube = new Cube(null, true); + var sphere = new Sphere().Mimic(cube); + + Assert.IsFalse(sphere.GetType() == cube.GetType()); + Assert.AreEqual(0, sphere.Children().Count()); + } } } diff --git a/OSCADSharp/OSCADSharp/OSCADObject.cs b/OSCADSharp/OSCADSharp/OSCADObject.cs index 9c082f7..7f77cb3 100644 --- a/OSCADSharp/OSCADSharp/OSCADObject.cs +++ b/OSCADSharp/OSCADSharp/OSCADObject.cs @@ -221,7 +221,7 @@ namespace OSCADSharp child = toTraverse.Pop(); allChildren.Add(child); - foreach (var subChild in child.Children()) + foreach (var subChild in child.children) { toTraverse.Push(subChild); }