summaryrefslogtreecommitdiff
path: root/src/mbgl/layout
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2020-02-28 14:11:15 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2020-03-03 16:13:48 +0200
commitdea10633197fbcf949e48ffc0a46fd75bbcb057d (patch)
treec708ae9d384ed4221f3f8b112b5d53d2d1e94c38 /src/mbgl/layout
parentffe95ec7d3e4f8bf5274b308d39e5a5a6bd13339 (diff)
downloadqtlocation-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.hpp7
-rw-r--r--src/mbgl/layout/symbol_layout.cpp4
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()});
}