45 lines
1.2 KiB
C++
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
|