From 52a9e0b99876b31546e574945f637ef03815f151 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 17 Jul 2026 19:42:56 +0000 Subject: [PATCH] Optimize Vector2Ext.Sort for better performance Co-authored-by: johnstrand <11484777+johnstrand@users.noreply.github.com> --- src/GameUtils/Math/Vector2Ext.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/GameUtils/Math/Vector2Ext.cs b/src/GameUtils/Math/Vector2Ext.cs index 8c8dfee..a6a9e4c 100644 --- a/src/GameUtils/Math/Vector2Ext.cs +++ b/src/GameUtils/Math/Vector2Ext.cs @@ -152,8 +152,15 @@ public static IEnumerable Sort(this IEnumerable source, bool c /// public static IEnumerable Sort(this IEnumerable source, Vector2 center, bool clockwise = true) { + var values = source.ToArray(); + var keys = new float[values.Length]; var sortMultiplier = clockwise ? 1 : -1; - return source.OrderBy(v => MathF.Atan2(v.Y - center.Y, v.X - center.X) * sortMultiplier); + for (int i = 0; i < values.Length; i++) + { + keys[i] = MathF.Atan2(values[i].Y - center.Y, values[i].X - center.X) * sortMultiplier; + } + Array.Sort(keys, values); + return values; } ///