added interface for walkers

some new helper methods
added interpolater for paths
This commit is contained in:
2016-01-28 21:48:04 +01:00
parent c4ea811342
commit da0bd43fe0
10 changed files with 92 additions and 66 deletions

View File

@@ -6,6 +6,7 @@
#include "../../nav/dijkstra/Dijkstra.h"
#include "GridWalk.h"
#include "GridWalkState.h"
#include "GridWalkHelper.h"
@@ -22,14 +23,14 @@
* to stay within the room..
*
*/
template <typename T> class GridWalkRandomHeadingUpdate {
template <typename T> class GridWalkRandomHeadingUpdate : public GridWalk<T> {
friend class GridWalkHelper;
private:
/** per-edge: change heading with this sigma */
static constexpr float HEADING_CHANGE_SIGMA = Angle::degToRad(4);
static constexpr float HEADING_CHANGE_SIGMA = Angle::degToRad(8);
/** fast random-number-generator */
std::minstd_rand gen;
@@ -41,10 +42,10 @@ public:
/** ctor */
GridWalkRandomHeadingUpdate() {
;
gen.seed(1234);
}
GridWalkState<T> getDestination(Grid<T>& grid, const GridWalkState<T> start, const float distance_m) {
GridWalkState<T> getDestination(Grid<T>& grid, const GridWalkState<T> start, const float distance_m) override {
return GridWalkHelper::retryOrInvert(*this, 2, grid, start, distance_m);