clang-format

This commit is contained in:
Lev Dragunov 2015-05-28 12:36:12 +03:00 committed by Alex Zolotarev
parent 884c674b47
commit b6c8921c4e
9 changed files with 78 additions and 57 deletions

View file

@ -10,7 +10,6 @@ double const kMwmCrossingNodeEqualityRadiusMeters = 1000.0;
namespace routing
{
IRouter::ResultCode CrossMwmGraph::SetStartNode(CrossNode const & startNode)
{
ASSERT(startNode.mwmName.length(), ());
@ -86,7 +85,8 @@ IRouter::ResultCode CrossMwmGraph::SetFinalNode(CrossNode const & finalNode)
if (IsValidEdgeWeight(weights[i]))
{
IngoingCrossNode const & iNode = *(mwmIngoingIter.first + i);
CrossNode start(iNode.m_nodeId, finalNode.mwmName, MercatorBounds::FromLatLon(iNode.m_point.y, iNode.m_point.x));
CrossNode start(iNode.m_nodeId, finalNode.mwmName,
MercatorBounds::FromLatLon(iNode.m_point.y, iNode.m_point.x));
vector<CrossWeightedEdge> dummyEdges;
dummyEdges.emplace_back(make_pair(finalNode, finalNode), weights[i]);
m_virtualEdges.insert(make_pair(start, dummyEdges));
@ -95,7 +95,8 @@ IRouter::ResultCode CrossMwmGraph::SetFinalNode(CrossNode const & finalNode)
return IRouter::NoError;
}
TCrossPair CrossMwmGraph::FindNextMwmNode(OutgoingCrossNode const & startNode, TRoutingMappingPtr const & currentMapping) const
TCrossPair CrossMwmGraph::FindNextMwmNode(OutgoingCrossNode const & startNode,
TRoutingMappingPtr const & currentMapping) const
{
m2::PointD const & startPoint = startNode.m_point;
@ -111,14 +112,18 @@ TCrossPair CrossMwmGraph::FindNextMwmNode(OutgoingCrossNode const & startNode, T
for (auto i = income_iters.first; i < income_iters.second; ++i)
{
m2::PointD const & targetPoint = i->m_point;
if (ms::DistanceOnEarth(startPoint.y, startPoint.x, targetPoint.y, targetPoint.x) < kMwmCrossingNodeEqualityRadiusMeters)
return make_pair(CrossNode(startNode.m_nodeId, currentMapping->GetName(), MercatorBounds::FromLatLon(targetPoint.y, targetPoint.x)),
CrossNode(i->m_nodeId, nextMwm, MercatorBounds::FromLatLon(targetPoint.y, targetPoint.x)));
if (ms::DistanceOnEarth(startPoint.y, startPoint.x, targetPoint.y, targetPoint.x) <
kMwmCrossingNodeEqualityRadiusMeters)
return make_pair(CrossNode(startNode.m_nodeId, currentMapping->GetName(),
MercatorBounds::FromLatLon(targetPoint.y, targetPoint.x)),
CrossNode(i->m_nodeId, nextMwm,
MercatorBounds::FromLatLon(targetPoint.y, targetPoint.x)));
}
return TCrossPair();
}
void CrossMwmGraph::GetOutgoingEdgesListImpl(TCrossPair const & v, vector<CrossWeightedEdge> & adj) const
void CrossMwmGraph::GetOutgoingEdgesListImpl(TCrossPair const & v,
vector<CrossWeightedEdge> & adj) const
{
// Check for virtual edges
adj.clear();
@ -127,7 +132,7 @@ void CrossMwmGraph::GetOutgoingEdgesListImpl(TCrossPair const & v, vector<CrossW
{
for (auto const & a : it->second)
{
ASSERT(a.GetTarget().first.IsValid() ,());
ASSERT(a.GetTarget().first.IsValid(), ());
adj.push_back(a);
}
return;
@ -164,5 +169,4 @@ void CrossMwmGraph::GetOutgoingEdgesListImpl(TCrossPair const & v, vector<CrossW
}
}
} //namespace routing
} // namespace routing

View file

@ -17,18 +17,21 @@ struct CrossNode
string mwmName;
m2::PointD point;
CrossNode(NodeID node, string const & mwmName, m2::PointD const & point): node(node), mwmName(mwmName), point(point) {}
CrossNode(NodeID node, string const & mwmName, m2::PointD const & point)
: node(node), mwmName(mwmName), point(point)
{
}
CrossNode() : node(INVALID_NODE_ID), point(m2::PointD::Zero()) {}
inline bool IsValid() const { return node != INVALID_NODE_ID; }
};
bool operator == (CrossNode const & a, CrossNode const & b)
bool operator==(CrossNode const & a, CrossNode const & b)
{
return a.node == b.node && a.mwmName == b.mwmName;
}
bool operator < (CrossNode const & a, CrossNode const & b)
bool operator<(CrossNode const & a, CrossNode const & b)
{
if (a.node < b.node)
return true;
@ -47,15 +50,9 @@ inline string DebugPrint(CrossNode const & t)
/// Representation of border crossing. Contains node on previous map and node on next map.
using TCrossPair = pair<CrossNode, CrossNode>;
bool operator == (TCrossPair const & a, TCrossPair const & b)
{
return a.first == b.first;
}
bool operator==(TCrossPair const & a, TCrossPair const & b) { return a.first == b.first; }
bool operator < (TCrossPair const & a, TCrossPair const & b)
{
return a.first < b.first;
}
bool operator<(TCrossPair const & a, TCrossPair const & b) { return a.first < b.first; }
inline string DebugPrint(TCrossPair const & t)
{
@ -89,19 +86,23 @@ public:
private:
friend class Graph<TCrossPair, CrossWeightedEdge, CrossMwmGraph>;
TCrossPair FindNextMwmNode(OutgoingCrossNode const & startNode, TRoutingMappingPtr const & currentMapping) const;
TCrossPair FindNextMwmNode(OutgoingCrossNode const & startNode,
TRoutingMappingPtr const & currentMapping) const;
// Graph<CrossNode, CrossWeightedEdge, CrossMwmGraph> implementation:
void GetOutgoingEdgesListImpl(TCrossPair const & v, vector<CrossWeightedEdge> & adj) const;
void GetIngoingEdgesListImpl(TCrossPair const & v, vector<CrossWeightedEdge> & adj) const {ASSERT(!"IMPL", ());}
void GetIngoingEdgesListImpl(TCrossPair const & v, vector<CrossWeightedEdge> & adj) const
{
ASSERT(!"IMPL", ());
}
double HeuristicCostEstimateImpl(TCrossPair const & v, TCrossPair const & w) const
{
//TODO return some average values
// TODO return some average values
return 0.0;
}
map<CrossNode, vector<CrossWeightedEdge> > m_virtualEdges;
mutable RoutingIndexManager m_indexManager;
};
} // namespace routing
} // namespace routing

View file

@ -2,22 +2,27 @@
#include "cross_mwm_road_graph.hpp"
#include "base/astar_algorithm.hpp"
namespace routing {
namespace routing
{
using TAlgorithm = AStarAlgorithm<CrossMwmGraph>;
/// Function to run AStar Algorythm from the base.
IRouter::ResultCode CalculateRoute(TCrossPair const & startPos, TCrossPair const & finalPos, CrossMwmGraph const & roadGraph,
vector<TCrossPair> & route, RoutingVisualizerFn const & routingVisualizer)
IRouter::ResultCode CalculateRoute(TCrossPair const & startPos, TCrossPair const & finalPos,
CrossMwmGraph const & roadGraph, vector<TCrossPair> & route,
RoutingVisualizerFn const & routingVisualizer)
{
TAlgorithm m_algo;
m_algo.SetGraph(roadGraph);
TAlgorithm::OnVisitedVertexCallback onVisitedVertexCallback = nullptr;
if (nullptr != routingVisualizer)
onVisitedVertexCallback = [routingVisualizer](TCrossPair const & cross) { routingVisualizer(cross.first.point); };
onVisitedVertexCallback = [routingVisualizer](TCrossPair const & cross)
{
routingVisualizer(cross.first.point);
};
TAlgorithm::Result const result = m_algo.FindPath(startPos, finalPos, route, onVisitedVertexCallback);
TAlgorithm::Result const result =
m_algo.FindPath(startPos, finalPos, route, onVisitedVertexCallback);
switch (result)
{
case TAlgorithm::Result::OK:
@ -67,12 +72,14 @@ IRouter::ResultCode CalculateCrossMwmPath(TRoutingNodes const & startGraphNodes,
if (code != IRouter::NoError)
return IRouter::EndPointNotFound;
vector<TCrossPair> tempRoad;
code = CalculateRoute({startNode, startNode}, {finalNode, finalNode}, roadGraph, tempRoad, routingVisualizer);
code = CalculateRoute({startNode, startNode}, {finalNode, finalNode}, roadGraph, tempRoad,
routingVisualizer);
if (code != IRouter::NoError)
return code;
for (size_t i = 0; i < tempRoad.size() - 1; ++i)
{
route.emplace_back(tempRoad[i].second.node, tempRoad[i + 1].first.node, tempRoad[i].second.mwmName);
route.emplace_back(tempRoad[i].second.node, tempRoad[i + 1].first.node,
tempRoad[i].second.mwmName);
}
if (!route.empty())
{
@ -84,4 +91,4 @@ IRouter::ResultCode CalculateCrossMwmPath(TRoutingNodes const & startGraphNodes,
return IRouter::NoError;
}
} // namespace routing
} // namespace routing

View file

@ -7,8 +7,8 @@
#include "std/string.hpp"
#include "std/vector.hpp"
namespace routing {
namespace routing
{
/*!
* \brief The RoutePathCross struct contains information neaded to describe path inside single map.
*/
@ -17,7 +17,11 @@ struct RoutePathCross
FeatureGraphNode startNode; /**< start graph node representation */
FeatureGraphNode finalNode; /**< end graph node representation */
RoutePathCross(NodeID const startNode, NodeID const finalNode, string const & name) : startNode(startNode, true /* isStartNode */, name), finalNode(finalNode, false /* isStartNode*/, name) {}
RoutePathCross(NodeID const startNode, NodeID const finalNode, string const & name)
: startNode(startNode, true /* isStartNode */, name),
finalNode(finalNode, false /* isStartNode*/, name)
{
}
};
using TCheckedPath = vector<RoutePathCross>;
@ -37,4 +41,4 @@ IRouter::ResultCode CalculateCrossMwmPath(TRoutingNodes const & startGraphNodes,
RoutingVisualizerFn const & RoutingVisualizerFn,
TCheckedPath & route);
} // namespace routing
} // namespace routing

View file

@ -91,9 +91,12 @@ void CrossRoutingContextReader::Load(Reader const & r)
}
}
const string & CrossRoutingContextReader::getOutgoingMwmName(OutgoingCrossNode const & outgoingNode) const
const string & CrossRoutingContextReader::getOutgoingMwmName(
OutgoingCrossNode const & outgoingNode) const
{
ASSERT(outgoingNode.m_outgoingIndex < m_neighborMwmList.size(), ("Routing context out of size mwm name index:", outgoingNode.m_outgoingIndex, m_neighborMwmList.size()));
ASSERT(outgoingNode.m_outgoingIndex < m_neighborMwmList.size(),
("Routing context out of size mwm name index:", outgoingNode.m_outgoingIndex,
m_neighborMwmList.size()));
return m_neighborMwmList[outgoingNode.m_outgoingIndex];
}

View file

@ -90,7 +90,9 @@ bool FindSingleRoute(FeatureGraphNode const & source, FeatureGraphNode const & t
return false;
}
FeatureGraphNode::FeatureGraphNode(NodeID const nodeId, bool const isStartNode, string const & mwmName): segmentPoint(m2::PointD::Zero()), mwmName(mwmName)
FeatureGraphNode::FeatureGraphNode(NodeID const nodeId, bool const isStartNode,
string const & mwmName)
: segmentPoint(m2::PointD::Zero()), mwmName(mwmName)
{
node.forward_node_id = isStartNode ? nodeId : INVALID_NODE_ID;
node.reverse_node_id = isStartNode ? INVALID_NODE_ID : nodeId;

View file

@ -388,7 +388,8 @@ size_t GetLastSegmentPointIndex(pair<size_t, size_t> const & p)
}
} // namespace
OsrmRouter::OsrmRouter(Index const * index, TCountryFileFn const & fn, RoutingVisualizerFn routingVisualization)
OsrmRouter::OsrmRouter(Index const * index, TCountryFileFn const & fn,
RoutingVisualizerFn routingVisualization)
: m_pIndex(index), m_indexManager(fn, index), m_routingVisualization(routingVisualization)
{
}
@ -416,7 +417,7 @@ bool OsrmRouter::FindRouteFromCases(TFeatureGraphNodeVec const & source,
return false;
}
//TODO (ldragunov) move this function to cross mwm router
// TODO (ldragunov) move this function to cross mwm router
OsrmRouter::ResultCode OsrmRouter::MakeRouteFromCrossesPath(TCheckedPath const & path,
Route & route)
{
@ -432,8 +433,7 @@ OsrmRouter::ResultCode OsrmRouter::MakeRouteFromCrossesPath(TCheckedPath const &
ASSERT(mwmMapping->IsValid(), ());
MappingGuard mwmMappingGuard(mwmMapping);
UNUSED_VALUE(mwmMappingGuard);
if (!FindSingleRoute(cross.startNode, cross.finalNode, mwmMapping->m_dataFacade,
routingResult))
if (!FindSingleRoute(cross.startNode, cross.finalNode, mwmMapping->m_dataFacade, routingResult))
return OsrmRouter::RouteNotFound;
// Get annotated route
@ -584,7 +584,8 @@ OsrmRouter::ResultCode OsrmRouter::CalculateRoute(m2::PointD const & startPoint,
{
LOG(LINFO, ("Multiple mwm routing case"));
TCheckedPath finalPath;
ResultCode code = CalculateCrossMwmPath(startTask, m_CachedTargetTask, m_indexManager, m_routingVisualization, finalPath);
ResultCode code = CalculateCrossMwmPath(startTask, m_CachedTargetTask, m_indexManager,
m_routingVisualization, finalPath);
timer.Reset();
// 5. Make generate answer
@ -1049,9 +1050,9 @@ IRouter::ResultCode OsrmRouter::FindPhantomNodes(string const & fName, m2::Point
Point2PhantomNode getter(mapping->m_segMapping, m_pIndex, direction);
getter.SetPoint(point);
m_pIndex->ForEachInRectForMWM(getter,
MercatorBounds::RectByCenterXYAndSizeInMeters(point, kFeatureFindingRectSideMeters),
scales::GetUpperScale(), mapping->GetMwmId());
m_pIndex->ForEachInRectForMWM(
getter, MercatorBounds::RectByCenterXYAndSizeInMeters(point, kFeatureFindingRectSideMeters),
scales::GetUpperScale(), mapping->GetMwmId());
if (!getter.HasCandidates())
return StartPointNotFound;

View file

@ -82,7 +82,8 @@ protected:
private:
/*!
* \brief Makes route (points turns and other annotations) from the map cross structs and submits them to @route class
* \brief Makes route (points turns and other annotations) from the map cross structs and submits
* them to @route class
* \warning monitors m_requestCancel flag for process interrupting.
* \param path vector of pathes through mwms
* \param route class to render final route

View file

@ -13,7 +13,7 @@
namespace routing
{
using TDataFacade = OsrmDataFacade<QueryEdge::EdgeData>;
using TCountryFileFn = function<string (m2::PointD const &)>;
using TCountryFileFn = function<string(m2::PointD const &)>;
/// Datamapping and facade for single MWM and MWM.routing file
struct RoutingMapping
@ -85,7 +85,8 @@ public:
class RoutingIndexManager
{
public:
RoutingIndexManager(TCountryFileFn const & fn, Index const * index): m_countryFn(fn), m_index(index)
RoutingIndexManager(TCountryFileFn const & fn, Index const * index)
: m_countryFn(fn), m_index(index)
{
ASSERT(index, ());
}
@ -100,10 +101,7 @@ public:
for_each(m_mapping.begin(), m_mapping.end(), toDo);
}
void Clear()
{
m_mapping.clear();
}
void Clear() { m_mapping.clear(); }
private:
TCountryFileFn m_countryFn;
@ -111,4 +109,4 @@ private:
unordered_map<string, TRoutingMappingPtr> m_mapping;
};
} // namespace routing
} // namespace routing