co-maps/libs/indexer/shared_load_info.cpp
2025-11-22 13:58:55 +01:00

45 lines
1.2 KiB
C++

#include "indexer/shared_load_info.hpp"
#include "indexer/feature_impl.hpp"
#include "indexer/features_offsets_table.hpp"
#include "defines.hpp"
namespace feature
{
SharedLoadInfo::SharedLoadInfo(FilesContainerR const & cont, DataHeader const & header,
feature::FeaturesOffsetsTable const * relTable,
indexer::MetadataDeserializer * metaDeserializer)
: m_cont(cont)
, m_header(header)
, m_relTable(relTable)
, m_metaDeserializer(metaDeserializer)
{}
SharedLoadInfo::Reader SharedLoadInfo::GetDataReader() const
{
return m_cont.GetReader(FEATURES_FILE_TAG);
}
SharedLoadInfo::Reader SharedLoadInfo::GetGeometryReader(size_t ind) const
{
return m_cont.GetReader(GetTagForIndex(GEOMETRY_FILE_TAG, ind));
}
SharedLoadInfo::Reader SharedLoadInfo::GetTrianglesReader(size_t ind) const
{
return m_cont.GetReader(GetTagForIndex(TRIANGLE_FILE_TAG, ind));
}
RouteRelationBase SharedLoadInfo::ReadRelation(uint32_t id) const
{
auto reader = m_cont.GetReader(RELATIONS_FILE_TAG);
ReaderSource src(reader);
src.Skip(m_relTable->GetFeatureOffset(id));
RouteRelationBase res;
res.Read(src);
return res;
}
} // namespace feature