27 lines
486 B
C++
27 lines
486 B
C++
#pragma once
|
|
#include <vector>
|
|
|
|
class AStarBase {
|
|
public:
|
|
AStarBase(void) { };
|
|
virtual ~AStarBase(void) { };
|
|
|
|
// Generate a unique key.
|
|
virtual long CalculateKey(void) = 0;
|
|
|
|
// Aproximate the heuristic cost to the goal.
|
|
virtual double Estimate(void) = 0;
|
|
|
|
// Have we reached the goal?
|
|
virtual bool isGoal(void) = 0;
|
|
|
|
virtual std::vector<AStarBase*> GenerateChildren(void) = 0;
|
|
|
|
AStarBase* _parent;
|
|
|
|
double _pastCost;
|
|
double _totalEstimatedCost;
|
|
|
|
long _key;
|
|
};
|