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

Function RouteSegmentsFrom

libs/routing/routing_tests/tools.cpp:13–49  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11}
12
13void RouteSegmentsFrom(std::vector<Segment> const & segments, std::vector<m2::PointD> const & path,
14 std::vector<turns::TurnItem> const & turns,
15 std::vector<RouteSegment::RoadNameInfo> const & names, std::vector<RouteSegment> & routeSegments)
16{
17 size_t size = segments.size();
18 if (size == 0)
19 size = turns.size();
20 if (size == 0)
21 size = names.size();
22 if (size == 0)
23 size = path.size() - 1;
24
25 ASSERT(segments.empty() || segments.size() == size, ());
26 ASSERT(turns.empty() || turns.size() == size, ());
27 ASSERT(names.empty() || names.size() == size, ());
28 ASSERT(path.empty() || path.size() - 1 == size, ());
29
30 for (size_t i = 0; i < size; ++i)
31 {
32 geometry::PointWithAltitude point;
33 if (path.size() > 0)
34 point = geometry::PointWithAltitude(path[i + 1], geometry::kDefaultAltitudeMeters);
35 Segment segment({0, 0, 0, true});
36 if (segments.size() > 0)
37 segment = segments[i];
38 turns::TurnItem turn;
39 if (turns.size() > 0)
40 {
41 turn = turns[i];
42 ASSERT(turn.m_index == i + 1, ());
43 }
44 RouteSegment::RoadNameInfo name;
45 if (names.size() > 0)
46 name = names[i];
47 routeSegments.emplace_back(segment, turn, point, name);
48 }
49}
50} // namespace routing

Callers 6

GetTestRouteSegmentsFunction · 0.85
UNIT_TESTFunction · 0.85
UNIT_TESTFunction · 0.85
UNIT_TESTFunction · 0.85
FillSubroutesInfoFunction · 0.85
UNIT_TESTFunction · 0.85

Calls 5

ASSERTFunction · 0.85
PointWithAltitudeClass · 0.50
sizeMethod · 0.45
emptyMethod · 0.45
emplace_backMethod · 0.45

Tested by 6

GetTestRouteSegmentsFunction · 0.68
UNIT_TESTFunction · 0.68
UNIT_TESTFunction · 0.68
UNIT_TESTFunction · 0.68
FillSubroutesInfoFunction · 0.68
UNIT_TESTFunction · 0.68