32 #include "nav2_amcl/map/map.hpp"
37 double map_calc_range(
map_t * map,
double ox,
double oy,
double oa,
double max_range)
45 int deltax, deltay, error, deltaerr;
47 x0 = MAP_GXWX(map, ox);
48 y0 = MAP_GYWY(map, oy);
50 x1 = MAP_GXWX(map, ox + max_range * cos(oa));
51 y1 = MAP_GYWY(map, oy + max_range * sin(oa));
53 if (abs(y1 - y0) > abs(x1 - x0)) {
69 deltax = abs(x1 - x0);
70 deltay = abs(y1 - y0);
89 if (!MAP_VALID(map, y, x) || map->cells[MAP_INDEX(map, y, x)].occ_state > -1) {
90 return sqrt((x - x0) * (x - x0) + (y - y0) * (y - y0)) * map->scale;
93 if (!MAP_VALID(map, x, y) || map->cells[MAP_INDEX(map, x, y)].occ_state > -1) {
94 return sqrt((x - x0) * (x - x0) + (y - y0) * (y - y0)) * map->scale;
98 while (x != (x1 + xstep * 1)) {
101 if (2 * error >= deltax) {
107 if (!MAP_VALID(map, y, x) || map->cells[MAP_INDEX(map, y, x)].occ_state > -1) {
108 return sqrt((x - x0) * (x - x0) + (y - y0) * (y - y0)) * map->scale;
111 if (!MAP_VALID(map, x, y) || map->cells[MAP_INDEX(map, x, y)].occ_state > -1) {
112 return sqrt((x - x0) * (x - x0) + (y - y0) * (y - y0)) * map->scale;