diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2020-02-28 14:11:15 +0200 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2020-03-03 16:13:48 +0200 |
commit | dea10633197fbcf949e48ffc0a46fd75bbcb057d (patch) | |
tree | c708ae9d384ed4221f3f8b112b5d53d2d1e94c38 /src/mbgl/layout | |
parent | ffe95ec7d3e4f8bf5274b308d39e5a5a6bd13339 (diff) | |
download | qtlocation-mapboxgl-dea10633197fbcf949e48ffc0a46fd75bbcb057d.tar.gz |
[core] Encapsulate placement code handling symbols sort ranges
Diffstat (limited to 'src/mbgl/layout')
-rw-r--r-- | src/mbgl/layout/symbol_instance.hpp | 7 | ||||
-rw-r--r-- | src/mbgl/layout/symbol_layout.cpp | 4 |
2 files changed, 3 insertions, 8 deletions
diff --git a/src/mbgl/layout/symbol_instance.hpp b/src/mbgl/layout/symbol_instance.hpp index 3303e5f7e3..fa05affc13 100644 --- a/src/mbgl/layout/symbol_instance.hpp +++ b/src/mbgl/layout/symbol_instance.hpp @@ -123,11 +123,6 @@ public: static constexpr uint32_t invalidCrossTileID() { return std::numeric_limits<uint32_t>::max(); } }; -class SortKeyRange { -public: - float sortKey; - size_t symbolInstanceStart; - size_t symbolInstanceEnd; -}; +using SymbolInstanceReferences = std::vector<std::reference_wrapper<const SymbolInstance>>; } // namespace mbgl diff --git a/src/mbgl/layout/symbol_layout.cpp b/src/mbgl/layout/symbol_layout.cpp index 63ce223574..093b11de1d 100644 --- a/src/mbgl/layout/symbol_layout.cpp +++ b/src/mbgl/layout/symbol_layout.cpp @@ -613,8 +613,8 @@ void SymbolLayout::addFeature(const std::size_t layoutFeatureIndex, iconType); if (sortFeaturesByKey) { - if (sortKeyRanges.size() && sortKeyRanges.back().sortKey == feature.sortKey) { - sortKeyRanges.back().symbolInstanceEnd = symbolInstances.size(); + if (!sortKeyRanges.empty() && sortKeyRanges.back().sortKey == feature.sortKey) { + sortKeyRanges.back().end = symbolInstances.size(); } else { sortKeyRanges.push_back({feature.sortKey, symbolInstances.size() - 1, symbolInstances.size()}); } |