diff --git a/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs b/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs
index ea57b78..4b37052 100644
--- a/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs
+++ b/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs
@@ -13,7 +13,8 @@ namespace OSCADSharp.ConsoleTests
{
static void Main(string[] args)
{
- var obj = new Cube() + new Sphere() + new Sphere().Translate(2, 2, 2) - new Cylinder(2, 5) + new Text3D("Hey hey!");
+ var obj = new Cube(5, 5, 20)
+ .Translate(30, 0, 0).Rotate(0, 90, 0).Scale(2, 2, 2);
var pos = obj.Position();
var cyl1 = new Cylinder(1, 100, true).Translate(pos);
diff --git a/OSCADSharp/OSCADSharp.UnitTests/OSCADSharp.UnitTests.csproj b/OSCADSharp/OSCADSharp.UnitTests/OSCADSharp.UnitTests.csproj
index e721e83..d9bf4e0 100644
--- a/OSCADSharp/OSCADSharp.UnitTests/OSCADSharp.UnitTests.csproj
+++ b/OSCADSharp/OSCADSharp.UnitTests/OSCADSharp.UnitTests.csproj
@@ -65,6 +65,7 @@
+
diff --git a/OSCADSharp/OSCADSharp.UnitTests/Transforms/ScaleTests.cs b/OSCADSharp/OSCADSharp.UnitTests/Transforms/ScaleTests.cs
new file mode 100644
index 0000000..efee6bb
--- /dev/null
+++ b/OSCADSharp/OSCADSharp.UnitTests/Transforms/ScaleTests.cs
@@ -0,0 +1,23 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using OSCADSharp.Solids;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OSCADSharp.UnitTests.Transforms
+{
+ [TestClass]
+ public class ScaleTests
+ {
+ [TestMethod]
+ public void Scale_TranslateRotateScaleStillYieldsCorrectPosition()
+ {
+ var obj = new Cube(5, 5, 20)
+ .Translate(30, 0, 0).Rotate(0, 90, 0).Scale(2, 2, 2);
+
+ Assert.AreEqual(new Vector3(20, 5, -65), obj.Position());
+ }
+ }
+}
diff --git a/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs b/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs
index ed30e60..fcba7c7 100644
--- a/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs
+++ b/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs
@@ -51,7 +51,7 @@ namespace OSCADSharp.Transforms
public override Vector3 Position()
{
- return obj.Position();
+ return obj.Position() * this.ScaleFactor;
}
}
}