33 #include "nav2_amcl/map/map.hpp"
38 double map_calc_range(
map_t * map,
double ox,
double oy,
double oa,
double max_range)
46 int deltax, deltay, error, deltaerr;
48 x0 = MAP_GXWX(map, ox);
49 y0 = MAP_GYWY(map, oy);
51 x1 = MAP_GXWX(map, ox + max_range * cos(oa));
52 y1 = MAP_GYWY(map, oy + max_range * sin(oa));
54 if (abs(y1 - y0) > abs(x1 - x0)) {
70 deltax = abs(x1 - x0);
71 deltay = abs(y1 - y0);
90 if (!MAP_VALID(map, y, x) || map->cells[MAP_INDEX(map, y, x)].occ_state > -1) {
91 return sqrt((x - x0) * (x - x0) + (y - y0) * (y - y0)) * map->scale;
94 if (!MAP_VALID(map, x, y) || map->cells[MAP_INDEX(map, x, y)].occ_state > -1) {
95 return sqrt((x - x0) * (x - x0) + (y - y0) * (y - y0)) * map->scale;
99 while (x != (x1 + xstep * 1)) {
102 if (2 * error >= deltax) {
108 if (!MAP_VALID(map, y, x) || map->cells[MAP_INDEX(map, y, x)].occ_state > -1) {
109 return sqrt((x - x0) * (x - x0) + (y - y0) * (y - y0)) * map->scale;
112 if (!MAP_VALID(map, x, y) || map->cells[MAP_INDEX(map, x, y)].occ_state > -1) {
113 return sqrt((x - x0) * (x - x0) + (y - y0) * (y - y0)) * map->scale;