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();
}
}
}