diff options
Diffstat (limited to 'src/mbgl/renderer/buckets/symbol_bucket.cpp')
-rw-r--r-- | src/mbgl/renderer/buckets/symbol_bucket.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mbgl/renderer/buckets/symbol_bucket.cpp b/src/mbgl/renderer/buckets/symbol_bucket.cpp index 7b8eec4471..af2a479c26 100644 --- a/src/mbgl/renderer/buckets/symbol_bucket.cpp +++ b/src/mbgl/renderer/buckets/symbol_bucket.cpp @@ -275,8 +275,8 @@ void SymbolBucket::sortFeatures(const float angle) { featureSortOrder = std::move(symbolsSortOrder); } -std::vector<std::reference_wrapper<const SymbolInstance>> SymbolBucket::getSortedSymbols(const float angle) const { - std::vector<std::reference_wrapper<const SymbolInstance>> result(symbolInstances.begin(), symbolInstances.end()); +SymbolInstanceReferences SymbolBucket::getSortedSymbols(const float angle) const { + SymbolInstanceReferences result(symbolInstances.begin(), symbolInstances.end()); const float sin = std::sin(angle); const float cos = std::cos(angle); @@ -292,6 +292,15 @@ std::vector<std::reference_wrapper<const SymbolInstance>> SymbolBucket::getSorte return result; } +SymbolInstanceReferences SymbolBucket::getSymbols(const optional<SortKeyRange>& range) const { + if (!range) return SymbolInstanceReferences(symbolInstances.begin(), symbolInstances.end()); + assert(range->start < range->end); + assert(range->end <= symbolInstances.size()); + auto begin = symbolInstances.begin() + range->start; + auto end = symbolInstances.begin() + range->end; + return SymbolInstanceReferences(begin, end); +} + bool SymbolBucket::hasFormatSectionOverrides() const { if (!hasFormatSectionOverrides_) { hasFormatSectionOverrides_= SymbolLayerPaintPropertyOverrides::hasOverrides(layout->get<TextField>()); |