From 64066f81f163afd049872a9670cb104f1d428109 Mon Sep 17 00:00:00 2001 From: Mike Smith Date: Sun, 7 Feb 2016 11:17:33 -0800 Subject: [PATCH] Filled out remaining block string output for transforms --- OSCADSharp/OSCADSharp.ConsoleTests/Program.cs | 4 ++-- .../OSCADSharp/Transforms/MirroredObject.cs | 17 ++++++++++++++++- .../OSCADSharp/Transforms/ResizedObject.cs | 19 ++++++++++++++++++- .../OSCADSharp/Transforms/RotatedObject.cs | 14 +++++++++++++- .../OSCADSharp/Transforms/ScaledObject.cs | 19 ++++++++++++++++++- .../OSCADSharp/Transforms/TranslatedObject.cs | 15 ++++++++++++++- 6 files changed, 81 insertions(+), 7 deletions(-) diff --git a/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs b/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs index 775a4c8..22d5403 100644 --- a/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs +++ b/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs @@ -18,9 +18,9 @@ namespace OSCADSharp.ConsoleTests }; ColoredObject co = new ColoredObject(cube, "Red"); - var evenMoreColors = new ColoredObject(co, "Blue", .5); + var mirror = new RotatedObject(co, new Vector3(0, 90, 0)); - Console.WriteLine(evenMoreColors.ToString()); + Console.WriteLine(mirror.ToString()); Console.ReadKey(); } } diff --git a/OSCADSharp/OSCADSharp/Transforms/MirroredObject.cs b/OSCADSharp/OSCADSharp/Transforms/MirroredObject.cs index a876b3f..2e5aa05 100644 --- a/OSCADSharp/OSCADSharp/Transforms/MirroredObject.cs +++ b/OSCADSharp/OSCADSharp/Transforms/MirroredObject.cs @@ -17,9 +17,24 @@ namespace OSCADSharp.Transforms /// public Vector3 Normal { get; set; } = new Vector3(); + private OSCADObject obj; + + /// + /// Creates an object that's mirrored on a plane + /// + /// The object(s) to be mirrored + /// The normal vector of the plane on the object's origin to mirror upon + public MirroredObject(OSCADObject obj, Vector3 normal) + { + this.obj = obj; + this.Normal = normal; + } + public override string ToString() { - return String.Format("mirror([{0}, {1}, {2}])", this.Normal.X, this.Normal.Y, this.Normal.Z); + string mirrorCommand = String.Format("mirror([{0}, {1}, {2}])", this.Normal.X, this.Normal.Y, this.Normal.Z); + var formatter = new BlockFormatter(mirrorCommand, this.obj.ToString()); + return formatter.ToString(); } } } diff --git a/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs b/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs index 6660b57..ff46659 100644 --- a/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs +++ b/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs @@ -11,12 +11,29 @@ namespace OSCADSharp.Transforms /// public class ResizedObject { + /// + /// Size of the object in terms of X/Y/Z + /// public Vector3 Size { get; set; } + private OSCADObject obj; + + /// + /// Creates a resized object + /// + /// The object(s) to be resized + /// The size to resize to, in terms of x/y/z dimensions + public ResizedObject(OSCADObject obj, Vector3 size) + { + this.obj = obj; + this.Size = size; + } public override string ToString() { - return String.Format("resize([{0}, {1}, {2}])", this.Size.X.ToString(), + string resizeCommand = String.Format("resize([{0}, {1}, {2}])", this.Size.X.ToString(), this.Size.Y.ToString(), this.Size.Z.ToString()); + var formatter = new BlockFormatter(resizeCommand, this.obj.ToString()); + return formatter.ToString(); } } } diff --git a/OSCADSharp/OSCADSharp/Transforms/RotatedObject.cs b/OSCADSharp/OSCADSharp/Transforms/RotatedObject.cs index e4c9688..cf4549b 100644 --- a/OSCADSharp/OSCADSharp/Transforms/RotatedObject.cs +++ b/OSCADSharp/OSCADSharp/Transforms/RotatedObject.cs @@ -11,12 +11,24 @@ namespace OSCADSharp.Transforms /// public class RotatedObject { + /// + /// The angle to rotate, in terms of X/Y/Z euler angles + /// public Vector3 Angle { get; set; } = new Vector3(); + private OSCADObject obj; + + public RotatedObject(OSCADObject obj, Vector3 angle) + { + this.obj = obj; + this.Angle = angle; + } public override string ToString() { - return String.Format("rotate([{0}, {1}, {2}])", + string rotateCommand = String.Format("rotate([{0}, {1}, {2}])", this.Angle.X.ToString(), this.Angle.Y.ToString(), this.Angle.Z.ToString()); + var formatter = new BlockFormatter(rotateCommand, this.obj.ToString()); + return formatter.ToString(); } } } diff --git a/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs b/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs index 3ae2995..7427de0 100644 --- a/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs +++ b/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs @@ -11,12 +11,29 @@ namespace OSCADSharp.Transforms /// public class ScaledObject { + /// + /// The scale factor to be applied + /// public Vector3 Scale { get; set; } = new Vector3(1, 1, 1); + private OSCADObject obj; + + /// + /// Creates a scaled object + /// + /// Object(s) to be scaled + /// Scale factor in x/y/z components + public ScaledObject(OSCADObject obj, Vector3 scale) + { + this.obj = obj; + this.Scale = scale; + } public override string ToString() { - return String.Format("scale(v = [{0}, {1}, {2}])", + string scaleCommand = String.Format("scale(v = [{0}, {1}, {2}])", this.Scale.X.ToString(), this.Scale.Y.ToString(), this.Scale.Z.ToString()); + var formatter = new BlockFormatter(scaleCommand, this.obj.ToString()); + return formatter.ToString(); } } } diff --git a/OSCADSharp/OSCADSharp/Transforms/TranslatedObject.cs b/OSCADSharp/OSCADSharp/Transforms/TranslatedObject.cs index 36dbebf..8b241fb 100644 --- a/OSCADSharp/OSCADSharp/Transforms/TranslatedObject.cs +++ b/OSCADSharp/OSCADSharp/Transforms/TranslatedObject.cs @@ -12,12 +12,25 @@ namespace OSCADSharp.Transforms public class TranslatedObject { public Vector3 Vector { get; set; } + private OSCADObject obj; + /// + /// Creates a translated object + /// + /// Object(s) to translate + /// Amount to translate by + public TranslatedObject(OSCADObject obj, Vector3 vector) + { + this.obj = obj; + this.Vector = vector; + } public override string ToString() { - return String.Format("translate(v = [{0}, {1}, {2}])", + string translateCommmand = String.Format("translate(v = [{0}, {1}, {2}])", this.Vector.X.ToString(), this.Vector.Y.ToString(), this.Vector.Z.ToString()); + var formatter = new BlockFormatter(translateCommmand, this.obj.ToString()); + return formatter.ToString(); } } }