diff --git a/DataStructures/ImportEdge.h b/DataStructures/ImportEdge.h index 5da516b15..38656d16b 100644 --- a/DataStructures/ImportEdge.h +++ b/DataStructures/ImportEdge.h @@ -18,16 +18,17 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or see http://www.gnu.org/licenses/agpl.txt. */ -#ifndef EDGE_H -#define EDGE_H - +#ifndef IMPORT_EDGE_H +#define IMPORT_EDGE_H #include "../Util/OSRMException.h" -#include +#include "../typedefs.h" + +#include class NodeBasedEdge { -public: +public: bool operator< (const NodeBasedEdge& e) const { if (source() == e.source()) { if (target() == e.target()) { @@ -58,9 +59,9 @@ public: _target(t), _name(n), _weight(w), + _type(ty), forward(f), backward(b), - _type(ty), _roundabout(ra), _ignoreInGrid(ig), _accessRestricted(ar), @@ -71,42 +72,41 @@ public: } } - NodeID target() const {return _target; } - NodeID source() const {return _source; } - NodeID name() const { return _name; } - EdgeWeight weight() const {return _weight; } + NodeID target() const {return _target; } + NodeID source() const {return _source; } + NodeID name() const { return _name; } + EdgeWeight weight() const {return _weight; } + short type() const { + BOOST_ASSERT_MSG(_type >= 0, "type of ImportEdge invalid"); + return _type; } + bool isBackward() const { return backward; } + bool isForward() const { return forward; } + bool isLocatable() const { return _type != 14; } + bool isRoundabout() const { return _roundabout; } + bool ignoreInGrid() const { return _ignoreInGrid; } + bool isAccessRestricted() const { return _accessRestricted; } + bool isContraFlow() const { return _contraFlow; } - short type() const { assert(_type >= 0); return _type; } - bool isBackward() const { return backward; } - bool isForward() const { return forward; } - bool isLocatable() const { return _type != 14; } - bool isRoundabout() const { return _roundabout; } - bool ignoreInGrid() const { return _ignoreInGrid; } - bool isAccessRestricted() const { return _accessRestricted; } - bool isContraFlow() const { return _contraFlow; } - - NodeID _source; - NodeID _target; - NodeID _name; - EdgeWeight _weight; - bool forward; - bool backward; - short _type; - bool _roundabout; - bool _ignoreInGrid; - bool _accessRestricted; - bool _contraFlow; + //TODO: names need to be fixed. + NodeID _source; + NodeID _target; + NodeID _name; + EdgeWeight _weight; + short _type; + bool forward:1; + bool backward:1; + bool _roundabout:1; + bool _ignoreInGrid:1; + bool _accessRestricted:1; + bool _contraFlow:1; private: - /** Default constructor. target and weight are set to 0.*/ - NodeBasedEdge() : - _source(0), _target(0), _name(0), _weight(0), forward(0), backward(0), _type(0), _roundabout(false), _ignoreInGrid(false), _accessRestricted(false), _contraFlow(false) { assert(false); } //shall not be used. - + NodeBasedEdge() { } }; class EdgeBasedEdge { -public: +public: bool operator< (const EdgeBasedEdge& e) const { if (source() == e.source()) { if (target() == e.target()) { @@ -141,7 +141,14 @@ public: m_backward(false) { } - explicit EdgeBasedEdge(const NodeID s, const NodeID t, const NodeID v, const EdgeWeight w, const bool f, const bool b) : + explicit EdgeBasedEdge( + const NodeID s, + const NodeID t, + const NodeID v, + const EdgeWeight w, + const bool f, + const bool b + ) : m_source(s), m_target(t), m_edgeID(v), @@ -150,21 +157,22 @@ public: m_backward(b) {} - NodeID target() const {return m_target; } - NodeID source() const {return m_source; } - EdgeWeight weight() const {return m_weight; } - NodeID id() const { return m_edgeID; } - bool isBackward() const { return m_backward; } - bool isForward() const { return m_forward; } + NodeID target() const { return m_target; } + NodeID source() const { return m_source; } + EdgeWeight weight() const { return m_weight; } + NodeID id() const { return m_edgeID; } + bool isBackward() const { return m_backward; } + bool isForward() const { return m_forward; } + private: - NodeID m_source; - NodeID m_target; - NodeID m_edgeID; - EdgeWeight m_weight:30; - bool m_forward:1; - bool m_backward:1; + NodeID m_source; + NodeID m_target; + NodeID m_edgeID; + EdgeWeight m_weight:30; + bool m_forward:1; + bool m_backward:1; }; typedef NodeBasedEdge ImportEdge; -#endif // EDGE_H +#endif /* IMPORT_EDGE_H */