From adbbf4eb7519994959cded7bbd6dba8398e766bb Mon Sep 17 00:00:00 2001 From: originalnicodr Date: Fri, 8 Mar 2024 22:03:39 -0300 Subject: [PATCH] Refactored campath translation point functions to make sure the order of execution is always the same. --- src/UI/Panels/CamPaths.cs | 14 ++++++++++++-- src/UI/Panels/FreeCamPanel.cs | 9 +++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/UI/Panels/CamPaths.cs b/src/UI/Panels/CamPaths.cs index a6443a3..66974f5 100644 --- a/src/UI/Panels/CamPaths.cs +++ b/src/UI/Panels/CamPaths.cs @@ -424,7 +424,17 @@ namespace UnityExplorer.UI.Panels } } - public void TranslatePointsPositionToGlobal(){ + public void TranslatePointsToGlobal(bool isFollowingRotation){ + if (isFollowingRotation) TranslatePointsRotationToGlobal(); + TranslatePointsPositionToGlobal(); + } + + public void TranslatePointsToLocal(bool isFollowingRotation){ + TranslatePointsPositionToLocal(); + if (isFollowingRotation) TranslatePointsRotationToLocal(); + } + + private void TranslatePointsPositionToGlobal(){ List newControlPoints = new List(); foreach(CatmullRom.CatmullRomPoint point in controlPoints){ Vector3 newPos = point.position + followObject.transform.position; @@ -450,7 +460,7 @@ namespace UnityExplorer.UI.Panels controlPoints = newControlPoints; } - public void TranslatePointsPositionToLocal(){ + private void TranslatePointsPositionToLocal(){ List newControlPoints = new List(); foreach(CatmullRom.CatmullRomPoint point in controlPoints){ Vector3 newPos = point.position - followObject.transform.position; diff --git a/src/UI/Panels/FreeCamPanel.cs b/src/UI/Panels/FreeCamPanel.cs index 74948b7..4b69e36 100644 --- a/src/UI/Panels/FreeCamPanel.cs +++ b/src/UI/Panels/FreeCamPanel.cs @@ -448,8 +448,7 @@ namespace UnityExplorer.UI.Panels CamPaths CamPathsPanel = UIManager.GetPanel(UIManager.Panels.CamPaths); if (followObject != null){ - if (followRotationToggle.isOn) CamPathsPanel.TranslatePointsRotationToGlobal(); - CamPathsPanel.TranslatePointsPositionToGlobal(); + CamPathsPanel.TranslatePointsToGlobal(followRotationToggle.isOn); } followObject = obj; @@ -459,8 +458,7 @@ namespace UnityExplorer.UI.Panels CamPathsPanel.UpdatedFollowObject(obj); - CamPathsPanel.TranslatePointsPositionToLocal(); - if (followRotationToggle.isOn) CamPathsPanel.TranslatePointsRotationToLocal(); + CamPathsPanel.TranslatePointsToLocal(followRotationToggle.isOn); CamPathsPanel.MaybeRedrawPath(); } @@ -480,8 +478,7 @@ namespace UnityExplorer.UI.Panels } CamPaths CamPathsPanel = UIManager.GetPanel(UIManager.Panels.CamPaths); - if (followRotationToggle.isOn) CamPathsPanel.TranslatePointsRotationToGlobal(); - CamPathsPanel.TranslatePointsPositionToGlobal(); + CamPathsPanel.TranslatePointsToGlobal(followRotationToggle.isOn); CamPathsPanel.UpdatedFollowObject(null); }