summaryrefslogtreecommitdiff
path: root/src/mbgl/text/placement.cpp
diff options
context:
space:
mode:
authorAnsis Brammanis <ansis@mapbox.com>2017-11-03 16:35:38 -0400
committerAnsis Brammanis <ansis@mapbox.com>2017-11-03 16:35:38 -0400
commite0daf69fdad227e675fd981bdf93c77e94512bfc (patch)
tree572b5961e3ffd170f03ca5bbf057118fea15b133 /src/mbgl/text/placement.cpp
parent22378c4d0f7985186ad276f39f4b6b4279148ac8 (diff)
downloadqtlocation-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.cpp43
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();