diff --git a/OngekiFumenEditor/Modules/FumenVisualEditor/Graphics/Drawing/TargetImpl/VisibleLineVerticesQuery.cs b/OngekiFumenEditor/Modules/FumenVisualEditor/Graphics/Drawing/TargetImpl/VisibleLineVerticesQuery.cs index e080a331..41fd15f0 100644 --- a/OngekiFumenEditor/Modules/FumenVisualEditor/Graphics/Drawing/TargetImpl/VisibleLineVerticesQuery.cs +++ b/OngekiFumenEditor/Modules/FumenVisualEditor/Graphics/Drawing/TargetImpl/VisibleLineVerticesQuery.cs @@ -67,24 +67,22 @@ void CheckIfSoflanChanged2(double totalTGrid, bool isVailed) Check if there is any SoflanPoint before connectable object If exist, just interpolate a new point to insert */ - if (affectedSoflanPoints.Count == 0) - return; + while (affectedSoflanPoints.Count > 0) + { + var checkTGrid = affectedSoflanPoints[^1].TGrid; + var diff = checkTGrid.TotalUnit - totalTGrid; - var checkTGrid = affectedSoflanPoints[^1].TGrid; - var diff = checkTGrid.TotalUnit - totalTGrid; + if (diff > 0) + return; - if (diff > 0) - return; + if (diff < 0) + { + var xGrid = start.CalulateXGrid(checkTGrid); + PostPoint(checkTGrid, xGrid, isVailed); + } - if (diff < 0) - { - var xGrid = start.CalulateXGrid(checkTGrid); - PostPoint(checkTGrid, xGrid, isVailed); + affectedSoflanPoints.RemoveAt(affectedSoflanPoints.Count - 1); } - - affectedSoflanPoints.RemoveAt(affectedSoflanPoints.Count - 1); - //check again - CheckIfSoflanChanged2(totalTGrid, isVailed); } foreach (var childObj in start.Children)