#pragma once #include "indexer/feature_altitude.hpp" #include "indexer/index.hpp" #include "coding/memory_region.hpp" #include "std/unique_ptr.hpp" #include "std/vector.hpp" #include "3party/succinct/rs_bit_vector.hpp" namespace feature { class AltitudeLoader { public: explicit AltitudeLoader(MwmValue const & mwmValue); TAltitudes const & GetAltitudes(uint32_t featureId, size_t pointCount); bool HasAltitudes() const; private: unique_ptr m_altitudeAvailabilityRegion; unique_ptr m_featureTableRegion; succinct::rs_bit_vector m_altitudeAvailability; succinct::elias_fano m_featureTable; unique_ptr m_reader; map m_cache; TAltitudes const m_dummy; AltitudeHeader m_header; }; } // namespace feature