46 double map_calc_range(map_t *map,
double ox,
double oy,
double oa,
double max_range)
53 int deltax, deltay, error, deltaerr;
55 x0 = MAP_GXWX(map,ox);
56 y0 = MAP_GYWY(map,oy);
58 x1 = MAP_GXWX(map,ox + max_range * cos(oa));
59 y1 = MAP_GYWY(map,oy + max_range * sin(oa));
61 if(abs(y1-y0) > abs(x1-x0))
96 if(!MAP_VALID(map,y,x) || map->cells[MAP_INDEX(map,y,x)].occ_state > -1)
97 return sqrt((x-x0)*(x-x0) + (y-y0)*(y-y0)) * map->scale;
101 if(!MAP_VALID(map,x,y) || map->cells[MAP_INDEX(map,x,y)].occ_state > -1)
102 return sqrt((x-x0)*(x-x0) + (y-y0)*(y-y0)) * map->scale;
105 while(x != (x1 + xstep * 1))
109 if(2*error >= deltax)
117 if(!MAP_VALID(map,y,x) || map->cells[MAP_INDEX(map,y,x)].occ_state > -1)
118 return sqrt((x-x0)*(x-x0) + (y-y0)*(y-y0)) * map->scale;
122 if(!MAP_VALID(map,x,y) || map->cells[MAP_INDEX(map,x,y)].occ_state > -1)
123 return sqrt((x-x0)*(x-x0) + (y-y0)*(y-y0)) * map->scale;