From a86c3ca8c5f5d7c2e4df0c7fb7ef306f868abf02 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Thu, 13 Aug 2009 19:38:31 +0200 Subject: * digital/avr/modules/path (closes #97): - fixed unfiltered obstacle point. --- digital/avr/modules/path/path.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/digital/avr/modules/path/path.c b/digital/avr/modules/path/path.c index fe130525..fcb735c8 100644 --- a/digital/avr/modules/path/path.c +++ b/digital/avr/modules/path/path.c @@ -116,16 +116,16 @@ path_compute_points (void) uint32_t x, y, nx; x = path.obstacles[i].r; y = 0; x = fixed_mul_f824 (x, path.margin); - path.points[p].x = path.obstacles[i].x + (uint16_t) x; - path.points[p].y = path.obstacles[i].y; - p++; - for (j = 0; j < PATH_OBSTACLES_POINTS_NB - 1; j++) + for (j = 0; j < PATH_OBSTACLES_POINTS_NB; j++) { - nx = fixed_mul_f824 (x, path.rot_a) - - fixed_mul_f824 (y, path.rot_b); - y = fixed_mul_f824 (y, path.rot_a) - + fixed_mul_f824 (x, path.rot_b); - x = nx; + if (j != 0) + { + nx = fixed_mul_f824 (x, path.rot_a) + - fixed_mul_f824 (y, path.rot_b); + y = fixed_mul_f824 (y, path.rot_a) + + fixed_mul_f824 (x, path.rot_b); + x = nx; + } path.points[p].x = path.obstacles[i].x + (uint16_t) x; path.points[p].y = path.obstacles[i].y + (uint16_t) y; /* Check it is in playground. */ -- cgit v1.2.3