summaryrefslogtreecommitdiff
path: root/game/network/routeWalker.h
blob: 7b1e1c86584f95943f3d48b03dd00934278b302f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#ifndef ROUTEWALKER_H
#define ROUTEWALKER_H

#include "link.h"
#include <set>
#include <vector>

class RouteWalker {
public:
	using Solution = std::vector<LinkWPtr>;

	RouteWalker();

	Solution findRouteTo(const Link::End & currentEnd, const NodePtr & dest);

private:
	void findRouteTo(const Link::End & currentEnd, const NodePtr & dest, float length);

	std::set<const Link::End *> visited;
	Solution bestSolution, currentSolution;
	float solutionLength;
};

#endif