31 typedef typename std::list<Data>::iterator DataPtr;
32 typedef const std::map<int,DataPtr> EdgeList;
33 typedef typename EdgeList::const_iterator EdgeListIterator;
38 inline void init(EdgeList& _edges,EdgeList& _co_edges) {
42 inline int source()
const {
return n; }
43 inline int target()
const {
return e->first; }
44 inline bool end()
const {
return e==edges->end(); }
45 inline void operator++() { ++e; }
46 inline void operator++(
int) { ++e; }
47 inline void operator--() { --e; }
48 inline void operator--(
int) { --e; }
49 inline Data* operator->()
const {
return &(*e->second); }
50 inline Data& operator*()
const {
return *e->second; }
54 EdgeList *edges, *co_edges;
60 typedef typename std::list<Data>::iterator DataPtr;
61 typedef const std::map<int,DataPtr> EdgeList;
62 typedef typename EdgeList::const_iterator EdgeListIterator;
65 : n(-1), co_edges(NULL)
67 inline void init(EdgeList& _edges,EdgeList& _co_edges) {
68 co_edges = &_co_edges;
69 e = _co_edges.begin();
71 inline int source()
const {
return n; }
72 inline int target()
const {
return e->first; }
73 inline bool end()
const {
return e==co_edges->end(); }
74 inline void operator++() { ++e; }
75 inline void operator++(
int) { ++e; }
76 inline void operator--() { --e; }
77 inline void operator--(
int) { --e; }
78 inline Data* operator->()
const {
return &(*e->second); }
79 inline Data& operator*()
const {
return *e->second; }
80 inline Data& operator*() {
return *e->second; }
91 typedef typename std::list<Data>::iterator DataPtr;
92 typedef const std::map<int,DataPtr> EdgeList;
93 typedef typename EdgeList::const_iterator EdgeListIterator;
96 : n(-1), edges(NULL), co_edges(NULL)
98 inline void init(EdgeList& _edges,EdgeList& _co_edges) {
100 co_edges = &_co_edges;
101 e = (_edges.empty() ? _co_edges.begin() : _edges.begin());
103 inline int source()
const {
return n; }
104 inline int target()
const {
return e->first; }
105 inline bool end()
const {
return e==co_edges->end(); }
106 inline void operator++() {
108 if(e == edges->end()) e=co_edges->begin();
110 inline void operator++(
int) { operator++(); }
111 inline void operator--() {
112 if(e == co_edges->begin())
116 inline void operator--(
int) { operator--(); }
117 inline Data* operator->()
const {
return &(*e->second); }
118 inline Data& operator*()
const {
return *e->second; }
122 const EdgeList *edges,*co_edges;
126 typedef double Weight;
128 template <
class Edge>
129 inline Weight ConstantWeight(
const Edge& e) {
return 1.0; }
130 template <
class Edge>
131 inline Weight StandardWeight(
const Edge& e) {
return e.weight; }
Abstract base class for an edge planner / edge checker (i.e., local planner).
Definition: EdgePlanner.h:49
Namespace for all classes and functions in the Graph subdirectory.
Definition: ApproximateShortestPaths.h:7