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