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) {