From 9c4cb28805edf550fac9d8f4f87e568bbbf9a154 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 11 Aug 2020 09:38:41 +0200 Subject: [PATCH] mathutil: error instead of infinite loop if triangulation failed Fixes #985 --- panda/src/mathutil/triangulator.cxx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/panda/src/mathutil/triangulator.cxx b/panda/src/mathutil/triangulator.cxx index da29f022be..f179b24e83 100644 --- a/panda/src/mathutil/triangulator.cxx +++ b/panda/src/mathutil/triangulator.cxx @@ -150,7 +150,11 @@ triangulate() { } */ + int attempts = 0; + while (construct_trapezoids(num_segments) != 0) { + nassertv_always(attempts++ < 100); + // If there's an error, re-shuffle the index and try again. Randomizer randomizer; for (i = 0; i < num_segments; ++i) {