From 19c86420f825f657db5be064fa2579b84b9f382e Mon Sep 17 00:00:00 2001 From: themancalledjakob Date: Wed, 14 May 2025 17:21:26 +0200 Subject: [PATCH] fix closed splines --- butils.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/butils.py b/butils.py index 1c4e0c3..81a03f1 100644 --- a/butils.py +++ b/butils.py @@ -228,10 +228,15 @@ def calc_point_on_bezier_spline( lengths = [] total_length = 0 n_bezier_points = len(bezier_spline_obj.bezier_points) - for i in range(0, len(bezier_spline_obj.bezier_points) - 1): + real_n_bezier_points = len(bezier_spline_obj.bezier_points) + if bezier_spline_obj.use_cyclic_u: + n_bezier_points += 1 + for i in range(0, n_bezier_points - 1): + i_a = i % (n_bezier_points - 1) + i_b = (i_a + 1) % real_n_bezier_points bezier = [ - bezier_spline_obj.bezier_points[i], - bezier_spline_obj.bezier_points[i + 1], + bezier_spline_obj.bezier_points[i_a], + bezier_spline_obj.bezier_points[i_b], ] length = calc_bezier_length( bezier[0],