diff --git a/OSCADSharp/OSCADSharp/OSCADObject.cs b/OSCADSharp/OSCADSharp/OSCADObject.cs index d3034a0..9205685 100644 --- a/OSCADSharp/OSCADSharp/OSCADObject.cs +++ b/OSCADSharp/OSCADSharp/OSCADObject.cs @@ -204,6 +204,17 @@ namespace OSCADSharp #endregion #region Utility Methods + protected Vector3 position; + /// + /// Returns the computed position of this object. + /// + /// For some objects that are the aggregate of many operations or + /// multiple children, this may be an approximation or average + /// of the position. + /// + /// + public abstract Vector3 Position(); + /// /// Creates a copy of this object and all of its children /// diff --git a/OSCADSharp/OSCADSharp/Scripting/MultiBlockStatementObject.cs b/OSCADSharp/OSCADSharp/Scripting/MultiBlockStatementObject.cs index 0abf646..4399fcc 100644 --- a/OSCADSharp/OSCADSharp/Scripting/MultiBlockStatementObject.cs +++ b/OSCADSharp/OSCADSharp/Scripting/MultiBlockStatementObject.cs @@ -43,5 +43,10 @@ namespace OSCADSharp.Scripting return new MultiBlockStatementObject(this.outerStatement, childClones); } + + public override Vector3 Position() + { + throw new NotImplementedException(); + } } } diff --git a/OSCADSharp/OSCADSharp/Solids/Cube.cs b/OSCADSharp/OSCADSharp/Solids/Cube.cs index 2264b2c..70f8869 100644 --- a/OSCADSharp/OSCADSharp/Solids/Cube.cs +++ b/OSCADSharp/OSCADSharp/Solids/Cube.cs @@ -76,6 +76,11 @@ namespace OSCADSharp.Solids Center = this.Center }; } + + public override Vector3 Position() + { + throw new NotImplementedException(); + } #endregion } } diff --git a/OSCADSharp/OSCADSharp/Solids/Cylinder.cs b/OSCADSharp/OSCADSharp/Solids/Cylinder.cs index 22f6bbc..cd64f00 100644 --- a/OSCADSharp/OSCADSharp/Solids/Cylinder.cs +++ b/OSCADSharp/OSCADSharp/Solids/Cylinder.cs @@ -137,6 +137,11 @@ namespace OSCADSharp.Solids Center = this.Center }; } + + public override Vector3 Position() + { + throw new NotImplementedException(); + } #endregion } } diff --git a/OSCADSharp/OSCADSharp/Solids/Sphere.cs b/OSCADSharp/OSCADSharp/Solids/Sphere.cs index e3c16c2..c397449 100644 --- a/OSCADSharp/OSCADSharp/Solids/Sphere.cs +++ b/OSCADSharp/OSCADSharp/Solids/Sphere.cs @@ -80,6 +80,11 @@ namespace OSCADSharp.Solids Radius = this.Radius }; } + + public override Vector3 Position() + { + throw new NotImplementedException(); + } #endregion } } diff --git a/OSCADSharp/OSCADSharp/Solids/Text3D.cs b/OSCADSharp/OSCADSharp/Solids/Text3D.cs index 2a69ba0..18fd767 100644 --- a/OSCADSharp/OSCADSharp/Solids/Text3D.cs +++ b/OSCADSharp/OSCADSharp/Solids/Text3D.cs @@ -59,6 +59,7 @@ namespace OSCADSharp.Solids public string Language { get; set; } #endregion + #region Constructors /// /// Creates 3d text with the default parameters @@ -125,6 +126,11 @@ namespace OSCADSharp.Solids var formatter = new SingleBlockFormatter(String.Format("linear_extrude(height = {0})", 1), sb.ToString()); return formatter.ToString(); } + + public override Vector3 Position() + { + throw new NotImplementedException(); + } #endregion } } diff --git a/OSCADSharp/OSCADSharp/Transforms/ColoredObject.cs b/OSCADSharp/OSCADSharp/Transforms/ColoredObject.cs index af988aa..5583e33 100644 --- a/OSCADSharp/OSCADSharp/Transforms/ColoredObject.cs +++ b/OSCADSharp/OSCADSharp/Transforms/ColoredObject.cs @@ -50,5 +50,10 @@ namespace OSCADSharp.Transforms { return new ColoredObject(obj, this.ColorName, this.Opacity); } + + public override Vector3 Position() + { + throw new NotImplementedException(); + } } } diff --git a/OSCADSharp/OSCADSharp/Transforms/LinearExtrudedObject.cs b/OSCADSharp/OSCADSharp/Transforms/LinearExtrudedObject.cs index a6744e2..25a6a19 100644 --- a/OSCADSharp/OSCADSharp/Transforms/LinearExtrudedObject.cs +++ b/OSCADSharp/OSCADSharp/Transforms/LinearExtrudedObject.cs @@ -36,7 +36,6 @@ namespace OSCADSharp.Transforms this.children.Add(obj); } - public override OSCADObject Clone() { return new LinearExtrudedObject(this.obj.Clone(), this.Height); @@ -48,5 +47,10 @@ namespace OSCADSharp.Transforms var formatter = new SingleBlockFormatter(extrudeCommand, this.obj.ToString()); return formatter.ToString(); } + + public override Vector3 Position() + { + throw new NotImplementedException(); + } } } diff --git a/OSCADSharp/OSCADSharp/Transforms/MirroredObject.cs b/OSCADSharp/OSCADSharp/Transforms/MirroredObject.cs index 7d7f22d..7eb1793 100644 --- a/OSCADSharp/OSCADSharp/Transforms/MirroredObject.cs +++ b/OSCADSharp/OSCADSharp/Transforms/MirroredObject.cs @@ -49,5 +49,10 @@ namespace OSCADSharp.Transforms { return new MirroredObject(obj, this.Normal); } + + public override Vector3 Position() + { + throw new NotImplementedException(); + } } } diff --git a/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs b/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs index c058ea8..a5bd317 100644 --- a/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs +++ b/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs @@ -48,5 +48,10 @@ namespace OSCADSharp.Transforms { return new ResizedObject(obj, this.Size); } + + public override Vector3 Position() + { + throw new NotImplementedException(); + } } } diff --git a/OSCADSharp/OSCADSharp/Transforms/RotatedObject.cs b/OSCADSharp/OSCADSharp/Transforms/RotatedObject.cs index e21f975..aa7c787 100644 --- a/OSCADSharp/OSCADSharp/Transforms/RotatedObject.cs +++ b/OSCADSharp/OSCADSharp/Transforms/RotatedObject.cs @@ -48,5 +48,10 @@ namespace OSCADSharp.Transforms { return new RotatedObject(obj, this.Angle); } + + public override Vector3 Position() + { + throw new NotImplementedException(); + } } } diff --git a/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs b/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs index aadeade..563d0a4 100644 --- a/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs +++ b/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs @@ -48,5 +48,10 @@ namespace OSCADSharp.Transforms { return new ScaledObject(obj, this.ScaleFactor); } + + public override Vector3 Position() + { + throw new NotImplementedException(); + } } } diff --git a/OSCADSharp/OSCADSharp/Transforms/TranslatedObject.cs b/OSCADSharp/OSCADSharp/Transforms/TranslatedObject.cs index 636319c..78b3d47 100644 --- a/OSCADSharp/OSCADSharp/Transforms/TranslatedObject.cs +++ b/OSCADSharp/OSCADSharp/Transforms/TranslatedObject.cs @@ -45,5 +45,10 @@ namespace OSCADSharp.Transforms { return new TranslatedObject(obj, this.Vector); } + + public override Vector3 Position() + { + throw new NotImplementedException(); + } } }