From 226dad651b046bd6e73d4b950a6bb87d57e5a8cb Mon Sep 17 00:00:00 2001 From: Dennis Luxen Date: Tue, 24 Sep 2013 10:10:50 +0200 Subject: [PATCH] minor simplification of code --- RoutingAlgorithms/AlternativePathRouting.h | 6 +- RoutingAlgorithms/BasicRoutingInterface.h | 78 ++++++++++++++-------- 2 files changed, 53 insertions(+), 31 deletions(-) diff --git a/RoutingAlgorithms/AlternativePathRouting.h b/RoutingAlgorithms/AlternativePathRouting.h index 3af05736d..44f3fc6cf 100644 --- a/RoutingAlgorithms/AlternativePathRouting.h +++ b/RoutingAlgorithms/AlternativePathRouting.h @@ -372,7 +372,7 @@ private: } for ( EdgeID edge = facade->BeginEdges( node ); edge < facade->EndEdges(node); edge++ ) { - const typename DataFacadeT::EdgeData & data = facade->GetEdgeData(edge); + const EdgeData & data = facade->GetEdgeData(edge); bool forwardDirectionFlag = (forwardDirection ? data.forward : data.backward ); if(forwardDirectionFlag) { @@ -462,7 +462,7 @@ private: EdgeID edgeIDInViaPath = facade->FindEdgeInEitherDirection(viaPathEdge.first, viaPathEdge.second); if(UINT_MAX == edgeIDInViaPath) return false; - typename DataFacadeT::EdgeData currentEdgeData = facade->GetEdgeData(edgeIDInViaPath); + EdgeData currentEdgeData = facade->GetEdgeData(edgeIDInViaPath); bool IsViaEdgeShortCut = currentEdgeData.shortcut; if (IsViaEdgeShortCut) { const NodeID middleOfViaPath = currentEdgeData.id; @@ -503,7 +503,7 @@ private: EdgeID edgeIDInViaPath = facade->FindEdgeInEitherDirection(viaPathEdge.first, viaPathEdge.second); if(UINT_MAX == edgeIDInViaPath) return false; - typename DataFacadeT::EdgeData currentEdgeData = facade->GetEdgeData(edgeIDInViaPath); + EdgeData currentEdgeData = facade->GetEdgeData(edgeIDInViaPath); const bool IsViaEdgeShortCut = currentEdgeData.shortcut; if (IsViaEdgeShortCut) { const NodeID middleOfViaPath = currentEdgeData.id; diff --git a/RoutingAlgorithms/BasicRoutingInterface.h b/RoutingAlgorithms/BasicRoutingInterface.h index ea40ae917..637b0d3cf 100644 --- a/RoutingAlgorithms/BasicRoutingInterface.h +++ b/RoutingAlgorithms/BasicRoutingInterface.h @@ -4,7 +4,7 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU AFFERO General Public License as published by -the Free Software Foundation; either version 3 of the License, or +the Free Software Foundation; edge_idher version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, @@ -44,6 +44,8 @@ SearchEngineData::SearchEngineHeapPtr SearchEngineData::backwardHeap3; template class BasicRoutingInterface : boost::noncopyable { +private: + typedef typename DataFacadeT::EdgeData EdgeData; protected: DataFacadeT * facade; public: @@ -82,8 +84,8 @@ public: edge < facade->EndEdges(node); ++edge ) { - const typename DataFacadeT::EdgeData & data = facade->GetEdgeData(edge); - bool reverse_flag = (!forward_direction) ? data.forward : data.backward; + const EdgeData & data = facade->GetEdgeData(edge); + const bool reverse_flag = (!forward_direction) ? data.forward : data.backward; if( reverse_flag ) { const NodeID to = facade->GetTarget(edge); const int edge_weight = data.distance; @@ -98,8 +100,12 @@ public: } } - for ( EdgeID edge = facade->BeginEdges( node ); edge < facade->EndEdges(node); ++edge ) { - const typename DataFacadeT::EdgeData & data = facade->GetEdgeData(edge); + for( + EdgeID edge = facade->BeginEdges(node), end_edge = facade->EndEdges(node); + edge < end_edge; + ++edge + ) { + const EdgeData & data = facade->GetEdgeData(edge); bool forward_directionFlag = (forward_direction ? data.forward : data.backward ); if( forward_directionFlag ) { @@ -144,34 +150,42 @@ public: EdgeID smaller_edge_id = SPECIAL_EDGEID; int edge_weight = INT_MAX; - for(EdgeID eit = facade->BeginEdges(edge.first);eit < facade->EndEdges(edge.first);++eit){ - const int weight = facade->GetEdgeData(eit).distance; + for( + EdgeID edge_id = facade->BeginEdges(edge.first); + edge_id < facade->EndEdges(edge.first); + ++edge_id + ){ + const int weight = facade->GetEdgeData(edge_id).distance; if( - (facade->GetTarget(eit) == edge.second) && - (weight < edge_weight) && - facade->GetEdgeData(eit).forward + (facade->GetTarget(edge_id) == edge.second) && + (weight < edge_weight) && + facade->GetEdgeData(edge_id).forward ){ - smaller_edge_id = eit; + smaller_edge_id = edge_id; edge_weight = weight; } } if( SPECIAL_EDGEID == smaller_edge_id ){ - for(EdgeID eit = facade->BeginEdges(edge.second); eit < facade->EndEdges(edge.second); ++eit){ - const int weight = facade->GetEdgeData(eit).distance; + for( + EdgeID edge_id = facade->BeginEdges(edge.second); + edge_id < facade->EndEdges(edge.second); + ++edge_id + ){ + const int weight = facade->GetEdgeData(edge_id).distance; if( - (facade->GetTarget(eit) == edge.first) && + (facade->GetTarget(edge_id) == edge.first) && (weight < edge_weight) && - facade->GetEdgeData(eit).backward + facade->GetEdgeData(edge_id).backward ){ - smaller_edge_id = eit; + smaller_edge_id = edge_id; edge_weight = weight; } } } BOOST_ASSERT_MSG(edge_weight != INT_MAX, "edge id invalid"); - const typename DataFacadeT::EdgeData& ed = facade->GetEdgeData(smaller_edge_id); + const EdgeData& ed = facade->GetEdgeData(smaller_edge_id); if( ed.shortcut ) {//unpack const NodeID middle_node_id = ed.id; //again, we need to this in reversed order @@ -206,34 +220,42 @@ public: EdgeID smaller_edge_id = SPECIAL_EDGEID; int edge_weight = INT_MAX; - for(EdgeID eit = facade->BeginEdges(edge.first);eit < facade->EndEdges(edge.first);++eit){ - const int weight = facade->GetEdgeData(eit).distance; + for( + EdgeID edge_id = facade->BeginEdges(edge.first); + edge_id < facade->EndEdges(edge.first); + ++edge_id + ){ + const int weight = facade->GetEdgeData(edge_id).distance; if( - (facade->GetTarget(eit) == edge.second) && + (facade->GetTarget(edge_id) == edge.second) && (weight < edge_weight) && - facade->GetEdgeData(eit).forward + facade->GetEdgeData(edge_id).forward ){ - smaller_edge_id = eit; + smaller_edge_id = edge_id; edge_weight = weight; } } if( SPECIAL_EDGEID == smaller_edge_id ){ - for(EdgeID eit = facade->BeginEdges(edge.second);eit < facade->EndEdges(edge.second);++eit){ - const int weight = facade->GetEdgeData(eit).distance; + for( + EdgeID edge_id = facade->BeginEdges(edge.second); + edge_id < facade->EndEdges(edge.second); + ++edge_id + ){ + const int weight = facade->GetEdgeData(edge_id).distance; if( - (facade->GetTarget(eit) == edge.first) && + (facade->GetTarget(edge_id) == edge.first) && (weight < edge_weight) && - facade->GetEdgeData(eit).backward + facade->GetEdgeData(edge_id).backward ){ - smaller_edge_id = eit; + smaller_edge_id = edge_id; edge_weight = weight; } } } BOOST_ASSERT_MSG(edge_weight != INT_MAX, "edge weight invalid"); - const typename DataFacadeT::EdgeData& ed = facade->GetEdgeData(smaller_edge_id); + const EdgeData& ed = facade->GetEdgeData(smaller_edge_id); if(ed.shortcut) {//unpack const NodeID middle_node_id = ed.id; //again, we need to this in reversed order