diff options
author | vng <viktor.govako@gmail.com> | 2011-09-22 12:57:05 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:24:12 +0300 |
commit | 36ecd0526d87db9e9c19d20f8333c45eb91b80f9 (patch) | |
tree | 91fb44675708be49eb69bea6faef181211a3d928 /indexer/scale_index_builder.hpp | |
parent | ded59b69b8b4bc3d41323f525de74ace95f639fa (diff) |
Pass scale range of mwm to index building routine.
Diffstat (limited to 'indexer/scale_index_builder.hpp')
-rw-r--r-- | indexer/scale_index_builder.hpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/indexer/scale_index_builder.hpp b/indexer/scale_index_builder.hpp index 87a3b219d7..bd8a0346ad 100644 --- a/indexer/scale_index_builder.hpp +++ b/indexer/scale_index_builder.hpp @@ -56,9 +56,11 @@ class FeatureCoverer public: FeatureCoverer(uint32_t bucket, + pair<int, int> const & scaleRange, SorterT & sorter, - uint32_t & numFeatures) : - m_Sorter(sorter), + uint32_t & numFeatures) + : m_Sorter(sorter), + m_mwmScaleRange(scaleRange), m_ScaleRange(ScaleIndexBase::ScaleRangeForBucket(bucket)), m_NumFeatures(numFeatures) { @@ -69,7 +71,9 @@ public: { if (FeatureShouldBeIndexed(f)) { + /// @todo Use m_mwmScaleRange to make better covering. vector<int64_t> const cells = covering::CoverFeature(f, RectId::DEPTH_LEVELS, 250); + for (vector<int64_t>::const_iterator it = cells.begin(); it != cells.end(); ++it) m_Sorter.Add(CellFeaturePair(*it, offset)); ++m_NumFeatures; @@ -89,6 +93,7 @@ public: private: SorterT & m_Sorter; + pair<int, int> m_mwmScaleRange; pair<uint32_t, uint32_t> m_ScaleRange; uint32_t & m_NumFeatures; }; @@ -112,6 +117,7 @@ private: template <class FeaturesVectorT, class WriterT> inline void IndexScales(uint32_t bucketsCount, + pair<int, int> const & scaleRange, FeaturesVectorT const & featuresVector, WriterT & writer, string const & tmpFilePrefix) @@ -133,7 +139,7 @@ inline void IndexScales(uint32_t bucketsCount, WriterFunctor<FileWriter> out(cellsToFeaturesWriter); SorterType sorter(1024*1024, tmpFilePrefix + ".c2f.tmp", out); featuresVector.ForEachOffset( - FeatureCoverer<SorterType>(bucket, sorter, numFeatures)); + FeatureCoverer<SorterType>(bucket, scaleRange, sorter, numFeatures)); // LOG(LINFO, ("Sorting...")); sorter.SortAndFinish(); } |