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

Function ReadMetalinesFromFile

libs/drape_frontend/read_metaline_task.cpp:37–69  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

35};
36
37std::vector<MetalineData> ReadMetalinesFromFile(MwmSet::MwmId const & mwmId)
38{
39 try
40 {
41 std::vector<MetalineData> model;
42 ModelReaderPtr reader =
43 FilesContainerR(mwmId.GetInfo()->GetLocalFile().GetPath(MapFileType::Map)).GetReader(METALINES_FILE_TAG);
44 ReaderSrc src(reader.GetPtr());
45 auto const version = ReadPrimitiveFromSource<uint8_t>(src);
46 if (version == 1)
47 {
48 for (auto metalineIndex = ReadVarUint<uint32_t>(src); metalineIndex > 0; --metalineIndex)
49 {
50 MetalineData data{};
51 for (auto i = ReadVarUint<uint32_t>(src); i > 0; --i)
52 {
53 auto const fid = ReadVarInt<int32_t>(src);
54 FeatureID const featureId(mwmId, static_cast<uint32_t>(std::abs(fid)));
55 data.m_features.emplace_back(featureId);
56 if (fid <= 0)
57 data.m_reversed.insert(featureId);
58 }
59 if (!data.m_features.empty())
60 model.push_back(std::move(data));
61 }
62 }
63 return model;
64 }
65 catch (Reader::Exception const &)
66 {
67 return {};
68 }
69}
70
71ankerl::unordered_dense::map<FeatureID, std::vector<m2::PointD>> ReadPoints(df::MapDataProvider & model,
72 MetalineData const & metaline)

Callers 1

RunMethod · 0.85

Calls 10

GetLocalFileMethod · 0.80
FilesContainerRClass · 0.50
GetReaderMethod · 0.45
GetPathMethod · 0.45
GetInfoMethod · 0.45
GetPtrMethod · 0.45
emplace_backMethod · 0.45
insertMethod · 0.45
emptyMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected