diff options
author | Ansis Brammanis <ansis@mapbox.com> | 2017-11-03 16:35:38 -0400 |
---|---|---|
committer | Ansis Brammanis <ansis@mapbox.com> | 2017-11-03 16:35:38 -0400 |
commit | e0daf69fdad227e675fd981bdf93c77e94512bfc (patch) | |
tree | 572b5961e3ffd170f03ca5bbf057118fea15b133 /src/mbgl/text/placement.cpp | |
parent | 22378c4d0f7985186ad276f39f4b6b4279148ac8 (diff) | |
download | qtlocation-mapboxgl-e0daf69fdad227e675fd981bdf93c77e94512bfc.tar.gz |
drop symbols outside of tile boundaries earlier
Diffstat (limited to 'src/mbgl/text/placement.cpp')
-rw-r--r-- | src/mbgl/text/placement.cpp | 43 |
1 files changed, 18 insertions, 25 deletions
diff --git a/src/mbgl/text/placement.cpp b/src/mbgl/text/placement.cpp index b7de01623f..7076a8b6da 100644 --- a/src/mbgl/text/placement.cpp +++ b/src/mbgl/text/placement.cpp @@ -98,11 +98,6 @@ void Placement::placeLayerBucket( for (auto& symbolInstance : bucket.symbolInstances) { - // TODO symbollayout handles a couple special cases related to this. copy those over if needed. - auto anchor = symbolInstance.anchor; - const bool withinPlus0 = anchor.point.x >= 0 && anchor.point.x < util::EXTENT && anchor.point.y >= 0 && anchor.point.y < util::EXTENT; - if (!withinPlus0) continue; - if (seenCrossTileIDs.count(symbolInstance.crossTileID) == 0) { bool placeText = false; bool placeIcon = false; @@ -246,27 +241,25 @@ void Placement::updateBucketOpacities(SymbolBucket& bucket) { } } - if (symbolInstance.insideTileBoundaries) { - auto updateCollisionBox = [&](const auto& feature, const bool placed) { - for (const CollisionBox& box : feature.boxes) { - if (feature.alongLine) { - auto opacityVertex = CollisionBoxOpacityAttributes::vertex(placed, !box.used); - bucket.collisionCircle.opacityVertices.emplace_back(opacityVertex); - bucket.collisionCircle.opacityVertices.emplace_back(opacityVertex); - bucket.collisionCircle.opacityVertices.emplace_back(opacityVertex); - bucket.collisionCircle.opacityVertices.emplace_back(opacityVertex); - } else { - auto opacityVertex = CollisionBoxOpacityAttributes::vertex(placed, false); - bucket.collisionBox.opacityVertices.emplace_back(opacityVertex); - bucket.collisionBox.opacityVertices.emplace_back(opacityVertex); - bucket.collisionBox.opacityVertices.emplace_back(opacityVertex); - bucket.collisionBox.opacityVertices.emplace_back(opacityVertex); - } + auto updateCollisionBox = [&](const auto& feature, const bool placed) { + for (const CollisionBox& box : feature.boxes) { + if (feature.alongLine) { + auto opacityVertex = CollisionBoxOpacityAttributes::vertex(placed, !box.used); + bucket.collisionCircle.opacityVertices.emplace_back(opacityVertex); + bucket.collisionCircle.opacityVertices.emplace_back(opacityVertex); + bucket.collisionCircle.opacityVertices.emplace_back(opacityVertex); + bucket.collisionCircle.opacityVertices.emplace_back(opacityVertex); + } else { + auto opacityVertex = CollisionBoxOpacityAttributes::vertex(placed, false); + bucket.collisionBox.opacityVertices.emplace_back(opacityVertex); + bucket.collisionBox.opacityVertices.emplace_back(opacityVertex); + bucket.collisionBox.opacityVertices.emplace_back(opacityVertex); + bucket.collisionBox.opacityVertices.emplace_back(opacityVertex); } - }; - updateCollisionBox(symbolInstance.textCollisionFeature, opacityState.text.placed); - updateCollisionBox(symbolInstance.iconCollisionFeature, opacityState.icon.placed); - } + } + }; + updateCollisionBox(symbolInstance.textCollisionFeature, opacityState.text.placed); + updateCollisionBox(symbolInstance.iconCollisionFeature, opacityState.icon.placed); } bucket.updateOpacity(); |