diff options
Diffstat (limited to 'src/mbgl/layout')
-rw-r--r-- | src/mbgl/layout/symbol_instance.cpp | 8 | ||||
-rw-r--r-- | src/mbgl/layout/symbol_instance.hpp | 8 | ||||
-rw-r--r-- | src/mbgl/layout/symbol_layout.cpp | 7 |
3 files changed, 11 insertions, 12 deletions
diff --git a/src/mbgl/layout/symbol_instance.cpp b/src/mbgl/layout/symbol_instance.cpp index 7dfa8edf43..a9b4b929ec 100644 --- a/src/mbgl/layout/symbol_instance.cpp +++ b/src/mbgl/layout/symbol_instance.cpp @@ -11,7 +11,6 @@ SymbolInstance::SymbolInstance(Anchor& anchor_, optional<PositionedIcon> shapedIcon, const SymbolLayoutProperties::Evaluated& layout, const float layoutTextSize, - const uint32_t index_, const float textBoxScale, const float textPadding, const SymbolPlacementType textPlacement, @@ -21,19 +20,20 @@ SymbolInstance::SymbolInstance(Anchor& anchor_, const std::array<float, 2> iconOffset_, const GlyphPositionMap& positions, const IndexedSubfeature& indexedFeature, - const std::size_t featureIndex_, + const std::size_t layoutFeatureIndex_, + const std::size_t dataFeatureIndex_, const std::u16string& key_, const float overscaling) : anchor(anchor_), line(line_), - index(index_), hasText(false), hasIcon(shapedIcon), // Create the collision features that will be used to check whether this symbol instance can be placed textCollisionFeature(line_, anchor, shapedTextOrientations.first, textBoxScale, textPadding, textPlacement, indexedFeature, overscaling), iconCollisionFeature(line_, anchor, shapedIcon, iconBoxScale, iconPadding, indexedFeature), - featureIndex(featureIndex_), + layoutFeatureIndex(layoutFeatureIndex_), + dataFeatureIndex(dataFeatureIndex_), textOffset(textOffset_), iconOffset(iconOffset_), key(key_) { diff --git a/src/mbgl/layout/symbol_instance.hpp b/src/mbgl/layout/symbol_instance.hpp index 827a5dbbdb..ae79311790 100644 --- a/src/mbgl/layout/symbol_instance.hpp +++ b/src/mbgl/layout/symbol_instance.hpp @@ -19,7 +19,6 @@ public: optional<PositionedIcon> shapedIcon, const style::SymbolLayoutProperties::Evaluated&, const float layoutTextSize, - const uint32_t index, const float textBoxScale, const float textPadding, style::SymbolPlacementType textPlacement, @@ -29,13 +28,13 @@ public: const std::array<float, 2> iconOffset, const GlyphPositionMap&, const IndexedSubfeature&, - const std::size_t featureIndex, + const std::size_t layoutFeatureIndex, + const std::size_t dataFeatureIndex, const std::u16string& key, const float overscaling); Anchor anchor; GeometryCoordinates line; - uint32_t index; bool hasText; bool hasIcon; SymbolQuads horizontalGlyphQuads; @@ -44,7 +43,8 @@ public: CollisionFeature textCollisionFeature; CollisionFeature iconCollisionFeature; WritingModeType writingModes; - std::size_t featureIndex; + std::size_t layoutFeatureIndex; // Index into the set of features included at layout time + std::size_t dataFeatureIndex; // Index into the underlying tile data feature set std::array<float, 2> textOffset; std::array<float, 2> iconOffset; std::u16string key; diff --git a/src/mbgl/layout/symbol_layout.cpp b/src/mbgl/layout/symbol_layout.cpp index 4249ffc24e..e71cfb93b0 100644 --- a/src/mbgl/layout/symbol_layout.cpp +++ b/src/mbgl/layout/symbol_layout.cpp @@ -260,7 +260,7 @@ void SymbolLayout::prepare(const GlyphMap& glyphMap, const GlyphPositions& glyph compareText.clear(); } -void SymbolLayout::addFeature(const std::size_t index, +void SymbolLayout::addFeature(const std::size_t layoutFeatureIndex, const SymbolFeature& feature, const std::pair<Shaping, Shaping>& shapedTextOrientations, optional<PositionedIcon> shapedIcon, @@ -317,10 +317,9 @@ void SymbolLayout::addFeature(const std::size_t index, if (mode == MapMode::Tile || withinPlus0) { symbolInstances.emplace_back(anchor, line, shapedTextOrientations, shapedIcon, layout.evaluate(zoom, feature), layoutTextSize, - symbolInstances.size(), textBoxScale, textPadding, textPlacement, textOffset, iconBoxScale, iconPadding, iconOffset, - glyphPositionMap, indexedFeature, index, feature.text.value_or(std::u16string()), overscaling); + glyphPositionMap, indexedFeature, layoutFeatureIndex, feature.index, feature.text.value_or(std::u16string()), overscaling); } }; @@ -426,7 +425,7 @@ std::unique_ptr<SymbolBucket> SymbolLayout::place(const bool showCollisionBoxes) const bool hasText = symbolInstance.hasText; const bool hasIcon = symbolInstance.hasIcon; - const auto& feature = features.at(symbolInstance.featureIndex); + const auto& feature = features.at(symbolInstance.layoutFeatureIndex); // Insert final placement into collision tree and add glyphs/icons to buffers |