35 #ifndef DLUX_GLOBAL_PLANNER_KERNEL_FUNCTION_H 36 #define DLUX_GLOBAL_PLANNER_KERNEL_FUNCTION_H 65 return (static_cast<int>(a) & static_cast<int>(b)) > 0;
89 float north_p = y < potential_grid.getHeight() - 1 ? potential_grid(x, y + 1) :
HIGH_POTENTIAL;
91 float east_p = x < potential_grid.getWidth() - 1 ? potential_grid(x + 1, y) :
HIGH_POTENTIAL;
98 if (north_p < south_p)
155 float dx = dc / cost;
156 float v = -0.2301 * dx * dx + 0.5307 * dx + 0.7040;
158 *upstream = xdir + ydir;
159 return pa + cost * v;
166 #endif // DLUX_GLOBAL_PLANNER_KERNEL_FUNCTION_H
bool operator&(CardinalDirection a, CardinalDirection b)
const float HIGH_POTENTIAL
CardinalDirection operator+(CardinalDirection a, CardinalDirection b)
static float calculateKernel(const PotentialGrid &potential_grid, unsigned char cost, unsigned int x, unsigned int y, CardinalDirection *upstream=nullptr)
potential calculation that uses multiple values of the neighboring cells