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

Method LoadV1

libs/indexer/centers_table.cpp:55–80  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53}
54
55std::unique_ptr<CentersTable> CentersTable::LoadV1(Reader & reader)
56{
57 auto table = std::make_unique<CentersTable>();
58 table->m_version = Version::V1;
59
60 Header header;
61 header.Read(reader);
62
63 NonOwningReaderSource src(reader, header.m_geometryParamsOffset,
64 header.m_geometryParamsOffset + header.m_geometryParamsSize);
65
66 serial::GeometryCodingParams codingParams;
67 codingParams.Load(src);
68 auto minX = ReadPrimitiveFromSource<uint32_t>(src);
69 auto minY = ReadPrimitiveFromSource<uint32_t>(src);
70 auto maxX = ReadPrimitiveFromSource<uint32_t>(src);
71 auto maxY = ReadPrimitiveFromSource<uint32_t>(src);
72 m2::RectD limitRect(PointUToPointD({minX, minY}, kPointCoordBits), PointUToPointD({maxX, maxY}, kPointCoordBits));
73
74 table->m_centersSubreader = reader.CreateSubReader(header.m_centersOffset, header.m_centersSize);
75 if (!table->m_centersSubreader)
76 return {};
77 if (!table->Init(*(table->m_centersSubreader), codingParams, limitRect))
78 return {};
79 return table;
80}
81
82bool CentersTable::Init(Reader & reader, serial::GeometryCodingParams const & codingParams, m2::RectD const & limitRect)
83{

Callers

nothing calls this directly

Calls 5

PointUToPointDFunction · 0.85
ReadMethod · 0.45
LoadMethod · 0.45
CreateSubReaderMethod · 0.45
InitMethod · 0.45

Tested by

no test coverage detected