From 14202714cc256e2e428ee9ce72bab9e6d4dfc0cf Mon Sep 17 00:00:00 2001 From: PopSlime Date: Wed, 26 Feb 2025 01:20:18 +0800 Subject: [PATCH] fix: Fix error on polygon elements with holes --- Assets/Cryville.EEW.Unity/Map/PolygonRenderer.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Assets/Cryville.EEW.Unity/Map/PolygonRenderer.cs b/Assets/Cryville.EEW.Unity/Map/PolygonRenderer.cs index 049ba29..a265f38 100644 --- a/Assets/Cryville.EEW.Unity/Map/PolygonRenderer.cs +++ b/Assets/Cryville.EEW.Unity/Map/PolygonRenderer.cs @@ -77,7 +77,13 @@ namespace Cryville.EEW.Unity.Map { DTSweep.Triangulate(tcx); var codeToIndex = new Dictionary(); - var vertices = ArrayPool.Shared.Rent(convertedPolygon.Points.Count); + int vertexCount = convertedPolygon.Points.Count; + if (convertedPolygon.Holes != null) { + foreach (var hole in convertedPolygon.Holes) { + vertexCount += hole.Points.Count; + } + } + var vertices = ArrayPool.Shared.Rent(vertexCount); var triangles = ArrayPool.Shared.Rent(convertedPolygon.Triangles.Count * 3); int vi = 0, ii = 0; foreach (var tri in convertedPolygon.Triangles) {