huge commit

- worked on about everything
- grid walker using plugable modules
- wifi models
- new distributions
- worked on geometric data-structures
- added typesafe timestamps
- worked on grid-building
- added sensor-classes
- added sensor analysis (step-detection, turn-detection)
- offline data reader
- many test-cases
This commit is contained in:
2016-08-29 08:18:44 +02:00
parent 99ee95ce7b
commit a2c9e575a2
94 changed files with 8298 additions and 257 deletions

View File

@@ -0,0 +1,39 @@
#ifndef WALKMODULE_H
#define WALKMODULE_H
#include "../../../Grid.h"
/** base-class for all WalkStates */
struct WalkState {
/** position where the walk starts */
GridPoint startPos;
/** ctor */
WalkState(const GridPoint& startPos) : startPos(startPos) {;}
};
/**
* base-class for all walk-modules that influence p(e)
*/
template <typename Node, typename WalkState> class WalkModule {
public:
/** update the given WalkState before starting the walk. e.g. based on sensor readings */
virtual void updateBefore(WalkState& state) = 0;
/** get the probability p(e) from curNode to potentialNode */
virtual double getProbability(const WalkState& state, const Node& startNode, const Node& curNode, const Node& potentialNode) const = 0;
/** one step (edge) is taken */
virtual void step(WalkState& state, const Node& curNode, const Node& nextNode) = 0;
/** update the walk state based on the given transition (if any update is necssary) */
virtual void updateAfter(WalkState& state, const Node& startNode, const Node& endNode) = 0;
};
#endif // WALKMODULE_H