diff options
author | vng <viktor.govako@gmail.com> | 2013-04-25 13:04:08 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:53:48 +0300 |
commit | 585d9e3ad340345568eaedafc0c3b7fc0db8c6b3 (patch) | |
tree | 7ce0316f9c5e52186c94a63a5db727fe05b16a57 /indexer/classificator.cpp | |
parent | 6a395b0aba57fc4be818c87b183b9ca3f5d1f965 (diff) |
Store drawing keys for feature in buffer_vector<16> - speedup feature reading.
Diffstat (limited to 'indexer/classificator.cpp')
-rw-r--r-- | indexer/classificator.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/indexer/classificator.cpp b/indexer/classificator.cpp index 6267b63c12..439598d9ac 100644 --- a/indexer/classificator.cpp +++ b/indexer/classificator.cpp @@ -301,16 +301,16 @@ namespace typedef vec_t::const_iterator iter_t; vec_t const & m_rules; - vec_t & m_keys; + drule::KeysT & m_keys; bool m_added; void add_rule(int ft, iter_t i) { static const int visible[3][drule::count_of_rules] = { - {0, 0, 1, 1, 1, 0, 0}, // fpoint - {1, 0, 0, 0, 0, 1, 0}, // fline - {1, 1, 1, 1, 0, 0, 0} // farea + { 0, 0, 1, 1, 1, 0, 0 }, // fpoint + { 1, 0, 0, 0, 0, 1, 0 }, // fline + { 1, 1, 1, 1, 0, 0, 0 } // farea }; if (visible[ft][i->m_type] == 1) @@ -321,7 +321,7 @@ namespace } public: - suitable_getter(vec_t const & rules, vec_t & keys) + suitable_getter(vec_t const & rules, drule::KeysT & keys) : m_rules(rules), m_keys(keys) { } @@ -330,14 +330,12 @@ namespace { iter_t i = lower_bound(m_rules.begin(), m_rules.end(), scale, less_scales()); while (i != m_rules.end() && i->m_scale == scale) - { add_rule(ft, i++); - } } }; } -void ClassifObject::GetSuitable(int scale, FeatureGeoType ft, vector<drule::Key> & keys) const +void ClassifObject::GetSuitable(int scale, FeatureGeoType ft, drule::KeysT & keys) const { ASSERT ( ft <= FEATURE_TYPE_AREA, () ); |