summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Loer <chris.loer@gmail.com>2017-10-26 14:15:37 -0700
committerChris Loer <chris.loer@gmail.com>2017-10-26 14:15:37 -0700
commitf02938facd900aff2f937d6b4065c112fe29ac2f (patch)
treeba0ca59530d592f7b384cbd2365f8b0491de528d
parent547e3a8832f0c4b00a7cae821f45a3187f4b887a (diff)
downloadqtlocation-mapboxgl-f02938facd900aff2f937d6b4065c112fe29ac2f.tar.gz
Don't insert "unused" collision circles into the grid, it slows everything down!
-rw-r--r--src/mbgl/text/collision_index.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/mbgl/text/collision_index.cpp b/src/mbgl/text/collision_index.cpp
index 2b970ee278..d16864d1c7 100644
--- a/src/mbgl/text/collision_index.cpp
+++ b/src/mbgl/text/collision_index.cpp
@@ -204,10 +204,13 @@ bool CollisionIndex::placeLineFeature(CollisionFeature& feature,
void CollisionIndex::insertFeature(CollisionFeature& feature, bool ignorePlacement) {
if (feature.alongLine) {
- for (auto& box : feature.boxes) {
- GridUnit px = box.px;
- GridUnit py = box.py;
- GridUnit radius = box.radius;
+ for (auto& circle : feature.boxes) {
+ if (!circle.used) {
+ continue;
+ }
+ GridUnit px = circle.px;
+ GridUnit py = circle.py;
+ GridUnit radius = circle.radius;
if (ignorePlacement) {
// TODO: revisit whether GridIndex should move vs. copy on insert
ignoredGrid.insert(IndexedSubfeature(feature.indexedFeature), {{ px, py }, radius});