MCPcopy Create free account
hub / github.com/comaps/comaps / FindBestSegments

Method FindBestSegments

libs/routing/index_router.cpp:1266–1291  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1264}
1265
1266bool IndexRouter::PointsOnEdgesSnapping::FindBestSegments(m2::PointD const & checkpoint, m2::PointD const & direction,
1267 bool isOutgoing, vector<Segment> & bestSegments,
1268 bool & bestSegmentIsAlmostCodirectional)
1269{
1270 vector<Edge> bestEdges;
1271 if (!FindBestEdges(checkpoint, direction, isOutgoing, kFirstSearchDistanceM /* closestEdgesRadiusM */, bestEdges,
1272 bestSegmentIsAlmostCodirectional))
1273 {
1274 if (!FindBestEdges(checkpoint, direction, isOutgoing, 500.0 /* closestEdgesRadiusM */, bestEdges,
1275 bestSegmentIsAlmostCodirectional) &&
1276 bestEdges.size() < kMaxRoadCandidates)
1277 {
1278 if (!FindBestEdges(checkpoint, direction, isOutgoing, 2000.0 /* closestEdgesRadiusM */, bestEdges,
1279 bestSegmentIsAlmostCodirectional))
1280 {
1281 return false;
1282 }
1283 }
1284 }
1285
1286 bestSegments.clear();
1287 for (auto const & edge : bestEdges)
1288 bestSegments.emplace_back(GetSegmentByEdge(edge));
1289
1290 return true;
1291}
1292
1293bool IndexRouter::PointsOnEdgesSnapping::FindBestEdges(m2::PointD const & checkpoint, m2::PointD const & direction,
1294 bool isOutgoing, double closestEdgesRadiusM,

Callers 2

AdjustRouteMethod · 0.80

Calls 3

sizeMethod · 0.45
clearMethod · 0.45
emplace_backMethod · 0.45

Tested by

no test coverage detected