From 835457e0428ade74b68220395a09224737f40d79 Mon Sep 17 00:00:00 2001 From: Taha Zarif Date: Tue, 25 Aug 2026 19:59:26 +0430 Subject: [PATCH] fix(mobile): restore missing distance-transform diagonal --- src/roboticstoolbox/mobile/DistanceTransformPlanner.py | 2 +- tests/test_distance_transform_plot.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/roboticstoolbox/mobile/DistanceTransformPlanner.py b/src/roboticstoolbox/mobile/DistanceTransformPlanner.py index 344ea5e77..40677a419 100644 --- a/src/roboticstoolbox/mobile/DistanceTransformPlanner.py +++ b/src/roboticstoolbox/mobile/DistanceTransformPlanner.py @@ -163,7 +163,7 @@ def next(self, position): [0, -1], [1, -1], [-1, 0], - [0, 0], + [-1, 1], [1, 0], [0, 1], [1, 1], diff --git a/tests/test_distance_transform_plot.py b/tests/test_distance_transform_plot.py index d6b75a01e..b9558a488 100644 --- a/tests/test_distance_transform_plot.py +++ b/tests/test_distance_transform_plot.py @@ -27,6 +27,14 @@ def test_distance_transform_next_before_plan_raises(): planner.next((0, 0)) +def test_distance_transform_next_uses_all_diagonals(): + floorplan = np.zeros((5, 5), dtype=int) + planner = rtb.DistanceTransformPlanner(floorplan, metric="euclidean") + planner.plan((3, 1)) + + np.testing.assert_array_equal(planner.next((1, 3)), np.array([2, 2])) + + def test_distancexform_animate(): # Regression test: the animate path used matplotlib.cm.get_cmap(), # removed in matplotlib 3.9, so plan(animate=True) raised