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

Method AddTrack

libs/routing/guides_graph.cpp:93–116  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

91}
92
93Segment GuidesGraph::AddTrack(std::vector<geometry::PointWithAltitude> const & guideTrack, size_t requiredSegmentIdx)
94{
95 uint32_t segmentIdx = 0;
96 Segment segment;
97
98 for (size_t i = 0; i < guideTrack.size() - 1; ++i)
99 {
100 GuideSegmentData data;
101 Segment curSegment(m_mwmId, m_curGuidesFeatrueId, segmentIdx++, true /* forward */);
102 if (i == requiredSegmentIdx)
103 segment = curSegment;
104
105 data.m_pointFirst = LatLonWithAltitude(mercator::ToLatLon(guideTrack[i].GetPoint()), guideTrack[i].GetAltitude());
106 data.m_pointLast =
107 LatLonWithAltitude(mercator::ToLatLon(guideTrack[i + 1].GetPoint()), guideTrack[i + 1].GetAltitude());
108
109 data.m_weight = CalcSegmentTimeS(data.m_pointFirst, data.m_pointLast);
110
111 auto const [it, inserted] = m_segments.emplace(curSegment, data);
112 CHECK(inserted, (curSegment));
113 }
114 ++m_curGuidesFeatrueId;
115 return segment;
116}
117
118Segment GuidesGraph::FindSegment(Segment const & segment, size_t segmentIdx) const
119{

Callers 1

ConnectToGuidesGraphMethod · 0.45

Calls 6

LatLonWithAltitudeClass · 0.85
ToLatLonFunction · 0.50
sizeMethod · 0.45
GetPointMethod · 0.45
GetAltitudeMethod · 0.45
emplaceMethod · 0.45

Tested by

no test coverage detected