From f66c1e4a4fbfa5cbd4d3a278e7a79a69f3499ea4 Mon Sep 17 00:00:00 2001 From: DennisOSRM Date: Wed, 16 Nov 2011 18:10:51 +0100 Subject: [PATCH] Removed unnecessary nameID of first leg --- Contractor/Contractor.h | 18 +++++++----------- Contractor/EdgeBasedGraphFactory.cpp | 8 ++++---- Contractor/EdgeBasedGraphFactory.h | 4 ++-- DataStructures/ImportEdge.h | 12 +++++------- routed.cpp | 6 ++---- 5 files changed, 20 insertions(+), 28 deletions(-) diff --git a/Contractor/Contractor.h b/Contractor/Contractor.h index 95f1388d0..3bf2888ac 100644 --- a/Contractor/Contractor.h +++ b/Contractor/Contractor.h @@ -47,8 +47,7 @@ private: unsigned distance; unsigned originalEdges; unsigned via; - unsigned nameID1; - unsigned nameID2; + unsigned nameID; bool shortcut; bool forward; bool backward; @@ -115,8 +114,7 @@ public: } #endif edge.data.shortcut = false; - edge.data.nameID1 = i->nameID1(); - edge.data.nameID2 = i->nameID2(); + edge.data.nameID = i->getNameIDOfTurnTarget(); edge.data.via = i->via(); edge.data.turnInstruction = i->turnInstruction(); edge.data.forward = i->isForward(); @@ -140,7 +138,7 @@ public: const NodeID target = edges[i].target; const NodeID via = edges[i].data.via; const short turnType = edges[i].data.turnInstruction; - assert(turnType >= 0); + assert(turnType == 0 || turnType == 1); //remove eigenloops if ( source == target ) { i++; @@ -153,8 +151,7 @@ public: forwardEdge.data.forward = backwardEdge.data.backward = true; forwardEdge.data.backward = backwardEdge.data.forward = false; forwardEdge.data.turnInstruction = backwardEdge.data.turnInstruction = turnType; - forwardEdge.data.nameID1 = backwardEdge.data.nameID2 = edges[i].data.nameID1; - forwardEdge.data.nameID2 = backwardEdge.data.nameID1 = edges[i].data.nameID2; + forwardEdge.data.nameID = backwardEdge.data.nameID = edges[i].data.nameID; forwardEdge.data.shortcut = backwardEdge.data.shortcut = false; forwardEdge.data.via = backwardEdge.data.via = via; forwardEdge.data.originalEdges = backwardEdge.data.originalEdges = 1; @@ -359,9 +356,8 @@ public: newEdge.data.distance = data.distance; newEdge.data.shortcut = data.shortcut; newEdge.data.via = data.via; - newEdge.data.nameID1 = data.nameID1; - newEdge.data.nameID2 = data.nameID2; - + newEdge.data.nameID1 = data.nameID; + newEdge.data.turnInstruction = data.turnInstruction; newEdge.data.forward = data.forward; newEdge.data.backward = data.backward; edges.push_back( newEdge ); @@ -524,7 +520,7 @@ private: newEdge.data.backward = false; newEdge.data.via = node; newEdge.data.shortcut = true; - newEdge.data.turnInstruction = outData.turnInstruction; + newEdge.data.turnInstruction = inData.turnInstruction; newEdge.data.originalEdges = outData.originalEdges + inData.originalEdges; data->insertedEdges.push_back( newEdge ); diff --git a/Contractor/EdgeBasedGraphFactory.cpp b/Contractor/EdgeBasedGraphFactory.cpp index f613990fc..fe967e14e 100644 --- a/Contractor/EdgeBasedGraphFactory.cpp +++ b/Contractor/EdgeBasedGraphFactory.cpp @@ -148,11 +148,11 @@ void EdgeBasedGraphFactory::Run() { newEdge.data.forward = true; newEdge.data.backward = false; newEdge.data.via = v; - newEdge.data.nameID1 = _nodeBasedGraph->GetEdgeData(e1).middleName.nameID; - newEdge.data.nameID2 = _nodeBasedGraph->GetEdgeData(e2).middleName.nameID; + newEdge.data.nameID = _nodeBasedGraph->GetEdgeData(e2).middleName.nameID; + //newEdge.data.nameID2 = _nodeBasedGraph->GetEdgeData(e2).middleName.nameID; //Todo: turn instruction angeben - if(newEdge.data.nameID1 == newEdge.data.nameID2) + if(newEdge.data.nameID == _nodeBasedGraph->GetEdgeData(e1).middleName.nameID) newEdge.data.turnInstruction = 0; else { //TODO: Winkel berechnen und angepasste Anweisung geben. @@ -163,7 +163,7 @@ void EdgeBasedGraphFactory::Run() { EdgeBasedNode currentNode; if(_nodeBasedGraph->GetEdgeData(e1).type != 14) { - currentNode.nameID = newEdge.data.nameID1; + currentNode.nameID = _nodeBasedGraph->GetEdgeData(e1).middleName.nameID; currentNode.lat1 = inputNodeInfoList[u].lat; currentNode.lon1 = inputNodeInfoList[u].lon; currentNode.lat2 = inputNodeInfoList[v].lat; diff --git a/Contractor/EdgeBasedGraphFactory.h b/Contractor/EdgeBasedGraphFactory.h index 8b6035522..3ecbb227f 100644 --- a/Contractor/EdgeBasedGraphFactory.h +++ b/Contractor/EdgeBasedGraphFactory.h @@ -55,8 +55,8 @@ private: struct _EdgeBasedEdgeData { int distance; unsigned via; - unsigned nameID1; - unsigned nameID2; + unsigned nameID; +// unsigned nameID2; bool forward; bool backward; short turnInstruction; diff --git a/DataStructures/ImportEdge.h b/DataStructures/ImportEdge.h index e4d025e40..195caa6ea 100644 --- a/DataStructures/ImportEdge.h +++ b/DataStructures/ImportEdge.h @@ -88,8 +88,7 @@ public: _source(myEdge.source), _target(myEdge.target), _via(myEdge.data.via), - _nameID1(myEdge.data.nameID1), - _nameID2(myEdge.data.nameID2), + _nameID1(myEdge.data.nameID), _weight(myEdge.data.distance), forward(myEdge.data.forward), backward(myEdge.data.backward), @@ -97,10 +96,10 @@ public: /** Default constructor. target and weight are set to 0.*/ EdgeBasedEdge() : - _source(0), _target(0), _via(0), _nameID1(0), _nameID2(0), _weight(0), forward(0), backward(0), _turnInstruction(0) { assert(false); } //shall not be used. + _source(0), _target(0), _via(0), _nameID1(0), _weight(0), forward(0), backward(0), _turnInstruction(0) { assert(false); } //shall not be used. explicit EdgeBasedEdge(NodeID s, NodeID t, NodeID v, unsigned n1, unsigned n2, EdgeWeight w, bool f, bool b, short ty) : - _source(s), _target(t), _via(v), _nameID1(n1), _nameID2(n2), _weight(w), forward(f), backward(b), _turnInstruction(ty) { assert(ty >= 0); } + _source(s), _target(t), _via(v), _nameID1(n1), _weight(w), forward(f), backward(b), _turnInstruction(ty) { assert(ty >= 0); } NodeID target() const {return _target; } NodeID source() const {return _source; } @@ -110,14 +109,13 @@ public: bool isBackward() const { return backward; } bool isForward() const { return forward; } - unsigned nameID1() const { return _nameID1; } - unsigned nameID2() const { return _nameID2; } + unsigned getNameIDOfTurnTarget() const { return _nameID1; } NodeID _source; NodeID _target; NodeID _via; unsigned _nameID1; - unsigned _nameID2; +// unsigned _nameID2; EdgeWeight _weight; bool forward; bool backward; diff --git a/routed.cpp b/routed.cpp index e8d00f66a..bbaca2f5f 100644 --- a/routed.cpp +++ b/routed.cpp @@ -121,18 +121,16 @@ int main (int argc, char *argv[]) { sigaddset(&wait_mask, SIGQUIT); sigaddset(&wait_mask, SIGTERM); pthread_sigmask(SIG_BLOCK, &wait_mask, 0); - + std::cout << "[server] running and waiting for requests" << std::endl; sigwait(&wait_mask, &sig); #else // Set console control handler to allow server to be stopped. console_ctrl_function = boost::bind(&Server::Stop, s); SetConsoleCtrlHandler(console_ctrl_handler, TRUE); - + std::cout << "[server] running and waiting for requests" << std::endl; s->Run(); #endif - std::cout << "[server] running and waiting for requests" << std::endl; - std::cout << std::endl << "[server] shutting down" << std::endl; s->Stop(); t.join();