From 2cab34abce63efdd4760dc5ca375d9e8fae856de Mon Sep 17 00:00:00 2001 From: Edwin Jakobs Date: Fri, 10 Feb 2023 07:28:36 +0100 Subject: [PATCH] [orx-marching-squares] Fix bug that introduces 0 length segments --- .../src/commonMain/kotlin/MarchingSquares.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/orx-marching-squares/src/commonMain/kotlin/MarchingSquares.kt b/orx-marching-squares/src/commonMain/kotlin/MarchingSquares.kt index bad84395..54288dcf 100644 --- a/orx-marching-squares/src/commonMain/kotlin/MarchingSquares.kt +++ b/orx-marching-squares/src/commonMain/kotlin/MarchingSquares.kt @@ -132,9 +132,13 @@ fun findContours( val collected = mutableListOf() var current: LineSegment? = segment var closed = true + var lastVertex = Vector2.INFINITY do { current!! - collected.add(current.start) + if (lastVertex.squaredDistanceTo(current.start) > 1E-5) { + collected.add(current.start) + } + lastVertex = current.start processedSegments.add(current) if (segmentsMap[current.start]!!.size < 2) { closed = false