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