diff --git a/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs b/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs index cf8ed49..19291b8 100644 --- a/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs +++ b/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs @@ -13,7 +13,9 @@ namespace OSCADSharp.ConsoleTests { static void Main(string[] args) { - var obj = new Cube(5, 10, 20) + new Sphere(10).Translate(-10, 5, 0); + + var obj = new Cube(5, 5, 20) + .Translate(30, 0, 0).Rotate(0, 90, 0).Resize(2, 2, 2); var pos = obj.Position(); var cyl1 = new Cylinder(1, 100, true).Translate(pos); diff --git a/OSCADSharp/OSCADSharp.UnitTests/Transforms/ResizeTests.cs b/OSCADSharp/OSCADSharp.UnitTests/Transforms/ResizeTests.cs index 631bf68..f6edd06 100644 --- a/OSCADSharp/OSCADSharp.UnitTests/Transforms/ResizeTests.cs +++ b/OSCADSharp/OSCADSharp.UnitTests/Transforms/ResizeTests.cs @@ -12,11 +12,12 @@ namespace OSCADSharp.UnitTests.Transforms public class ResizeTests { [TestMethod] - [ExpectedException(typeof(NotSupportedException))] - public void Resize_PositionNotSupportedAfterResize() + public void Resize_BoundaryBasedPositionAfterResizeIsInExpectedLocation() { var pos = new Cube(5, 5, 20) .Translate(30, 0, 0).Rotate(0, 90, 0).Resize(2, 2, 2).Position(); + + Assert.AreEqual(new Vector3(1, 1, -13), pos); } [TestMethod] diff --git a/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs b/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs index b185896..6cb5b03 100644 --- a/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs +++ b/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs @@ -50,7 +50,8 @@ namespace OSCADSharp.Transforms public override Vector3 Position() { - throw new NotSupportedException("Position is not supported on Resized objects."); + var bounds = this.Bounds(); + return Vector3.Average(bounds.BottomLeft, bounds.TopRight); } public override Bounds Bounds()