-
Notifications
You must be signed in to change notification settings - Fork 0
/
base_classes.h
41 lines (33 loc) · 987 Bytes
/
base_classes.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#ifndef BASECLASSES_H
#define BASECLASSES_H
// STUDENTS MUST NOT CHANGE THIS FILE
#include <string>
#include <vector>
#include "geopoint.h"
#include "stops.h"
#include "tourcmd.h"
class GeoDatabaseBase
{
public:
GeoDatabaseBase() {}
virtual ~GeoDatabaseBase() {}
virtual bool load(const std::string& map_data_file) = 0;
virtual bool get_poi_location(const std::string& poi, GeoPoint& point) const = 0;
virtual std::vector<GeoPoint> get_connected_points(const GeoPoint& pt) const = 0;
virtual std::string get_street_name(const GeoPoint& pt1, const GeoPoint& pt2) const = 0;
};
class RouterBase
{
public:
RouterBase() {}
virtual ~RouterBase() {}
virtual std::vector<GeoPoint> route(const GeoPoint& pt1, const GeoPoint& pt2) const = 0;
};
class TourGeneratorBase
{
public:
TourGeneratorBase() { }
virtual ~TourGeneratorBase() {}
virtual std::vector<TourCommand> generate_tour(const Stops &stops) const = 0;
};
#endif // BASECLASSES_H