diff options
author | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2008-05-13 12:15:24 +0000 |
---|---|---|
committer | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2008-05-13 12:15:24 +0000 |
commit | 9c2467e42ba04d6d948a2f2704ca0708842d35b9 (patch) | |
tree | 9fa09fff59c771841bc9b5112948e3d70f391be3 | |
parent | 81f49c2173892b9c4efcf6a8dd87aa1d11922f15 (diff) | |
download | navit-svn-9c2467e42ba04d6d948a2f2704ca0708842d35b9.tar.gz |
Fix:Core:Added offroad limit to tracking
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit/src@1044 ffa7fe5e-494d-0410-b361-a75ebd5db220
-rw-r--r-- | track.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -45,9 +45,10 @@ struct tracking { }; -int angle_factor=4; +int angle_factor=30; int connected_pref=-10; int nostop_pref=10; +int offroad_limit_pref=5000; struct coord * @@ -263,7 +264,7 @@ tracking_update(struct tracking *tr, struct coord *c, int angle) dbg(2, "%d: (0x%x,0x%x)-(0x%x,0x%x)\n", i, sd->c[i].x, sd->c[i].y, sd->c[i+1].x, sd->c[i+1].y); value=transform_distance_line_sq(&sd->c[i], &sd->c[i+1], c, &lpnt); if (value < INT_MAX/2) - value += tracking_angle_delta(angle, t->angle[i], dir)*angle_factor; + value += tracking_angle_delta(angle, t->angle[i], dir)*angle_factor>>4; if (tracking_is_connected(tr->curr, &sd->c[i])) value += connected_pref; if (lpnt.x == tr->last_out.x && lpnt.y == tr->last_out.y) @@ -286,8 +287,8 @@ tracking_update(struct tracking *tr, struct coord *c, int angle) } t=t->next; } - dbg(1,"tr->curr_line=%p\n", tr->curr_line); - if (!tr->curr_line) + dbg(1,"tr->curr_line=%p min=%d\n", tr->curr_line, min); + if (!tr->curr_line || min > offroad_limit_pref) return 0; dbg(1,"found 0x%x,0x%x\n", tr->last_out.x, tr->last_out.y); *c=tr->last_out; |