46 double map_calc_range(map_t *map,
double ox,
double oy,
double oa,
double max_range)
54 int deltax, deltay, error, deltaerr;
56 x0 = MAP_GXWX(map,ox);
57 y0 = MAP_GYWY(map,oy);
59 x1 = MAP_GXWX(map,ox + max_range * cos(oa));
60 y1 = MAP_GYWY(map,oy + max_range * sin(oa));
62 if(abs(y1-y0) > abs(x1-x0))
97 if(!MAP_VALID(map,y,x) || map->cells[MAP_INDEX(map,y,x)].occ_state > -1)
98 return sqrt((x-x0)*(x-x0) + (y-y0)*(y-y0)) * map->scale;
102 if(!MAP_VALID(map,x,y) || map->cells[MAP_INDEX(map,x,y)].occ_state > -1)
103 return sqrt((x-x0)*(x-x0) + (y-y0)*(y-y0)) * map->scale;
106 while(x != (x1 + xstep * 1))
110 if(2*error >= deltax)
118 if(!MAP_VALID(map,y,x) || map->cells[MAP_INDEX(map,y,x)].occ_state > -1)
119 return sqrt((x-x0)*(x-x0) + (y-y0)*(y-y0)) * map->scale;
123 if(!MAP_VALID(map,x,y) || map->cells[MAP_INDEX(map,x,y)].occ_state > -1)
124 return sqrt((x-x0)*(x-x0) + (y-y0)*(y-y0)) * map->scale;