diff --git a/OSCADSharp/OSCADSharp/OSCADObject.cs b/OSCADSharp/OSCADSharp/OSCADObject.cs
index 3a41ad7..5201a46 100644
--- a/OSCADSharp/OSCADSharp/OSCADObject.cs
+++ b/OSCADSharp/OSCADSharp/OSCADObject.cs
@@ -262,6 +262,11 @@ namespace OSCADSharp
return this.ToString() == other.ToString();
}
+ ///
+ /// The parent of this object in its OSCADObject tree
+ ///
+ internal OSCADObject Parent { get; set; }
+
///
/// Internal collection of children for this object
///
diff --git a/OSCADSharp/OSCADSharp/Scripting/MultiBlockStatementObject.cs b/OSCADSharp/OSCADSharp/Scripting/MultiBlockStatementObject.cs
index f1a8c7c..8faa9d7 100644
--- a/OSCADSharp/OSCADSharp/Scripting/MultiBlockStatementObject.cs
+++ b/OSCADSharp/OSCADSharp/Scripting/MultiBlockStatementObject.cs
@@ -20,6 +20,10 @@ namespace OSCADSharp.Scripting
{
this.outerStatement = outerStatement;
this.children = children.ToList();
+ foreach (var child in children)
+ {
+ child.Parent = this;
+ }
}
public override string ToString()
diff --git a/OSCADSharp/OSCADSharp/Transforms/ColoredObject.cs b/OSCADSharp/OSCADSharp/Transforms/ColoredObject.cs
index 1d57142..9f02c14 100644
--- a/OSCADSharp/OSCADSharp/Transforms/ColoredObject.cs
+++ b/OSCADSharp/OSCADSharp/Transforms/ColoredObject.cs
@@ -33,6 +33,7 @@ namespace OSCADSharp.Transforms
this.Opacity = opacity;
this.children.Add(obj);
+ obj.Parent = this;
}
public override string ToString()
diff --git a/OSCADSharp/OSCADSharp/Transforms/LinearExtrudedObject.cs b/OSCADSharp/OSCADSharp/Transforms/LinearExtrudedObject.cs
index 0467bb6..0f6900c 100644
--- a/OSCADSharp/OSCADSharp/Transforms/LinearExtrudedObject.cs
+++ b/OSCADSharp/OSCADSharp/Transforms/LinearExtrudedObject.cs
@@ -35,6 +35,7 @@ namespace OSCADSharp.Transforms
this.Height = height;
this.children.Add(obj);
+ obj.Parent = this;
}
public override OSCADObject Clone()
diff --git a/OSCADSharp/OSCADSharp/Transforms/MirroredObject.cs b/OSCADSharp/OSCADSharp/Transforms/MirroredObject.cs
index 68796d2..7cad6ca 100644
--- a/OSCADSharp/OSCADSharp/Transforms/MirroredObject.cs
+++ b/OSCADSharp/OSCADSharp/Transforms/MirroredObject.cs
@@ -32,6 +32,7 @@ namespace OSCADSharp.Transforms
this.Normal = normal;
this.children.Add(obj);
+ obj.Parent = this;
}
public override string ToString()
diff --git a/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs b/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs
index 6cb5b03..f8eff1a 100644
--- a/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs
+++ b/OSCADSharp/OSCADSharp/Transforms/ResizedObject.cs
@@ -30,6 +30,7 @@ namespace OSCADSharp.Transforms
this.Size = size;
this.children.Add(obj);
+ obj.Parent = this;
}
public override string ToString()
diff --git a/OSCADSharp/OSCADSharp/Transforms/RotatedObject.cs b/OSCADSharp/OSCADSharp/Transforms/RotatedObject.cs
index 460123d..616b78f 100644
--- a/OSCADSharp/OSCADSharp/Transforms/RotatedObject.cs
+++ b/OSCADSharp/OSCADSharp/Transforms/RotatedObject.cs
@@ -30,6 +30,7 @@ namespace OSCADSharp.Transforms
this.Angle = angle;
this.children.Add(obj);
+ obj.Parent = this;
}
public override string ToString()
diff --git a/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs b/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs
index 5bcee35..e4d230e 100644
--- a/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs
+++ b/OSCADSharp/OSCADSharp/Transforms/ScaledObject.cs
@@ -30,6 +30,7 @@ namespace OSCADSharp.Transforms
this.ScaleFactor = scale;
this.children.Add(obj);
+ obj.Parent = this;
}
public override string ToString()
diff --git a/OSCADSharp/OSCADSharp/Transforms/TranslatedObject.cs b/OSCADSharp/OSCADSharp/Transforms/TranslatedObject.cs
index a1cd635..b8445f3 100644
--- a/OSCADSharp/OSCADSharp/Transforms/TranslatedObject.cs
+++ b/OSCADSharp/OSCADSharp/Transforms/TranslatedObject.cs
@@ -27,6 +27,7 @@ namespace OSCADSharp.Transforms
this.Vector = vector;
this.children.Add(obj);
+ obj.Parent = this;
}
public override string ToString()