00001
00002
00003
00004
00005
00006 #ifndef ROUTEPLANNINGV2_NODE_H_
00007 #define ROUTEPLANNINGV2_NODE_H_
00008 #include <string>
00009 #include "./Time.h"
00010 using std::string;
00011
00012 enum NodeType
00013 {
00014 ARRIVALNODE, TRANSFERNODE, DEPARTURENODE
00015 };
00016
00017 class NodeExpanded
00018 {
00019 public:
00020 NodeExpanded(int id, double latitude, double longitude);
00021 NodeExpanded(int id, double latitude, double longitude, int stopId, Time time,
00022 NodeType type);
00023 int id;
00024 double latitude;
00025 double longitude;
00026 NodeType type;
00027
00028 int stopId;
00029 Time time;
00030
00031
00032
00033
00034
00035 double straightLineDistanceTo(const NodeExpanded& otherNode);
00036 };
00037
00038
00039
00040
00041
00042 struct NodePointerTimeAndTypeComparator
00043 {
00044 bool operator() (const NodeExpanded* nodeA, const NodeExpanded* nodeB);
00045 };
00046
00047
00048
00049
00050
00051
00052 struct NodeTimeAndTypeComparator
00053 {
00054 bool operator() (const NodeExpanded& nodeA, const NodeExpanded& nodeB);
00055 };
00056 #endif // ROUTEPLANNINGV2_NODE_H_
00057