summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNicolas Schodet2009-08-13 19:38:31 +0200
committerNicolas Schodet2009-08-13 19:38:31 +0200
commita86c3ca8c5f5d7c2e4df0c7fb7ef306f868abf02 (patch)
treea740f42df6b94a10bbef4eb313ecd1014387dec3
parent4b8bb748064330837d5101e69491bf5d58ee454e (diff)
* digital/avr/modules/path (closes #97):
- fixed unfiltered obstacle point.
-rw-r--r--digital/avr/modules/path/path.c18
1 files 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. */