22 #ifndef FIFE_PATHFINDER_HEURISTIC_H
23 #define FIFE_PATHFINDER_HEURISTIC_H
34 #include "model/metamodel/modelcoords.h"
35 #include "util/base/singleton.h"
40 virtual ~Heuristic(
void) { }
42 virtual float calculate(
const ModelCoordinate& current,
const ModelCoordinate& dest) = 0;
44 static Heuristic* getHeuristic(
const std::string& cellgridType);
47 class SquareGridHeuristic :
public Heuristic,
public StaticSingleton<SquareGridHeuristic> {
49 virtual float calculate(
const ModelCoordinate& current,
const ModelCoordinate& dest);
52 SINGLEFRIEND(SquareGridHeuristic);
55 class HexGridHeuristic :
public Heuristic,
public StaticSingleton<HexGridHeuristic> {
57 virtual float calculate(
const ModelCoordinate& current,
const ModelCoordinate& dest);
60 SINGLEFRIEND(HexGridHeuristic);