From ea29db89f597e03024552420229451ca0407614b Mon Sep 17 00:00:00 2001 From: KillzXGaming Date: Tue, 15 Oct 2019 20:13:17 -0400 Subject: [PATCH] Adjust parent transform if parent is edited --- .../FileFormats/Layout/Common.cs | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/File_Format_Library/FileFormats/Layout/Common.cs b/File_Format_Library/FileFormats/Layout/Common.cs index 96c1dfe0..bb6734dc 100644 --- a/File_Format_Library/FileFormats/Layout/Common.cs +++ b/File_Format_Library/FileFormats/Layout/Common.cs @@ -166,29 +166,32 @@ namespace LayoutBXLYT public void ApplyNewParentTransform() { //Get the new transform and apply it - var transform = GetParentTransform(); // Translate += transform; } public void ResetParentTransform(BasePane newParent) { //We need to get the difference in the parent transform and remove it to the current transform of this pane - var transform = GetParentTransform(); - var newParentTransform = newParent.GetParentTransform(); - Translate -= transform; - Translate += newParentTransform; + var transform = GetParentTransform(Parent); + var newParentTransform = GetParentTransform(newParent); + Translate += transform; + Translate -= newParentTransform; + + Console.WriteLine($"newParentTransform {newParentTransform.X} {newParentTransform.Y} {newParentTransform.Z}"); + Console.WriteLine($"transform {transform.X} {transform.Y} {transform.Z}"); } - private Vector3F GetParentTransform() { - return GetParentTransform(Vector3F.Zero); + private Vector3F GetParentTransform(BasePane parent) { + return GetParentTransform(parent.Translate); } private Vector3F GetParentTransform(Vector3F translate) { if (Parent != null) - return translate += Parent.GetParentTransform(translate); - else - return translate; + translate = Parent.Translate + Parent.GetParentTransform(translate); + + return translate; + } public void KeepChildrenTransform(float newTransX, float newTransY)