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

Function MergePoints

libs/drape_frontend/read_metaline_task.cpp:103–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

101}
102
103std::vector<m2::PointD> MergePoints(ankerl::unordered_dense::map<FeatureID, std::vector<m2::PointD>> && points,
104 std::vector<FeatureID> const & featuresOrder)
105{
106 if (points.size() == 1)
107 return std::move(points.begin()->second);
108
109 size_t sz = 0;
110 for (auto const & p : points)
111 sz += p.second.size();
112
113 std::vector<m2::PointD> result;
114 result.reserve(sz);
115 for (auto const & f : featuresOrder)
116 {
117 auto const it = points.find(f);
118 ASSERT(it != points.cend(), ());
119
120 if (!result.empty())
121 {
122 auto iBeg = it->second.begin();
123 if (result.back().EqualDxDy(*iBeg, kMwmPointAccuracy))
124 ++iBeg;
125 result.insert(result.end(), iBeg, it->second.end());
126 }
127 else
128 result = std::move(it->second);
129 }
130
131 return result;
132}
133} // namespace
134
135namespace df

Callers 1

RunMethod · 0.85

Calls 11

ASSERTFunction · 0.85
backMethod · 0.80
sizeMethod · 0.45
beginMethod · 0.45
reserveMethod · 0.45
findMethod · 0.45
cendMethod · 0.45
emptyMethod · 0.45
EqualDxDyMethod · 0.45
insertMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected