From c3d58954b4da3683f2c77d281b6d794e29fd8a40 Mon Sep 17 00:00:00 2001 From: Thomas Fuhrmann Date: Fri, 7 Mar 2025 10:32:20 +0100 Subject: [PATCH] Fix compile error of map iterator --- app/three/utils/build-clipping-planes.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/app/three/utils/build-clipping-planes.ts b/app/three/utils/build-clipping-planes.ts index d1fa12f..e4c7279 100644 --- a/app/three/utils/build-clipping-planes.ts +++ b/app/three/utils/build-clipping-planes.ts @@ -567,13 +567,20 @@ function buildPolygons(edges: Array<[Vector3, Vector3]>): Vector3[][] { while (edgeMap.size > 0) { const polygon: Vector3[] = []; - const [start, end] = edgeMap.values().next().value; // Take any edge as a start + + // Take any edge as a start + const firstEdge = edgeMap.values().next().value; + + if (!firstEdge) { + throw new Error("Map is empty: no edges available"); + } + edgeMap.delete( - `${start.x},${start.y},${start.z}-${end.x},${end.y},${end.z}` + `${firstEdge.start.x},${firstEdge.start.y},${firstEdge.start.z}-${firstEdge.end.x},${firstEdge.end.y},${firstEdge.end.z}` ); - polygon.push(start, end); - let lastPoint = end; + polygon.push(firstEdge.start, firstEdge.end); + let lastPoint = firstEdge.end; while (true) { let foundNextEdge = false;