summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2020-01-07 17:53:56 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2020-01-08 12:43:26 +0200
commit1debf4e05b9710c006856fc14254493b16478bbc (patch)
tree06bcf5ce331e998a6c9754fc302aaa107e7f3021
parentc25fbe9a94c30be75674772480aab86227521737 (diff)
downloadqtlocation-mapboxgl-1debf4e05b9710c006856fc14254493b16478bbc.tar.gz
[core] Fix CollisionIndex::featureIntersectsTileBorders() implementation
-rw-r--r--src/mbgl/text/collision_index.cpp4
-rw-r--r--src/mbgl/text/collision_index.hpp3
2 files changed, 3 insertions, 4 deletions
diff --git a/src/mbgl/text/collision_index.cpp b/src/mbgl/text/collision_index.cpp
index 7f22d884c9..cbb1502428 100644
--- a/src/mbgl/text/collision_index.cpp
+++ b/src/mbgl/text/collision_index.cpp
@@ -88,7 +88,7 @@ inline bool CollisionIndex::isInsideTile(
return x1 >= tileBoundaries[0] && y1 >= tileBoundaries[1] && x2 < tileBoundaries[2] && y2 < tileBoundaries[3];
}
-inline bool CollisionIndex::intersectsTileBorders(
+inline bool CollisionIndex::overlapsTile(
float x1, float y1, float x2, float y2, const CollisionTileBoundaries& tileBoundaries) const {
return x1 < tileBoundaries[2] && x2 > tileBoundaries[0] && y1 < tileBoundaries[3] && y2 > tileBoundaries[1];
}
@@ -108,7 +108,7 @@ bool CollisionIndex::featureIntersectsTileBorders(const CollisionFeature& featur
float px2 = (box.x2 + shift.x) * tileToViewport + projectedPoint.first.x;
float py2 = (box.y2 + shift.y) * tileToViewport + projectedPoint.first.y;
- return intersectsTileBorders(px1, py1, px2, py2, tileEdges);
+ return overlapsTile(px1, py1, px2, py2, tileEdges) && !isInsideTile(px1, py1, px2, py2, tileEdges);
}
std::pair<bool,bool> CollisionIndex::placeFeature(const CollisionFeature& feature,
diff --git a/src/mbgl/text/collision_index.hpp b/src/mbgl/text/collision_index.hpp
index 71a4a7cd06..b02647037a 100644
--- a/src/mbgl/text/collision_index.hpp
+++ b/src/mbgl/text/collision_index.hpp
@@ -54,8 +54,7 @@ private:
bool isOffscreen(float x1, float y1, float x2, float y2) const;
bool isInsideGrid(float x1, float y1, float x2, float y2) const;
bool isInsideTile(float x1, float y1, float x2, float y2, const CollisionTileBoundaries& tileBoundaries) const;
- bool intersectsTileBorders(
- float x1, float y1, float x2, float y2, const CollisionTileBoundaries& tileBoundaries) const;
+ bool overlapsTile(float x1, float y1, float x2, float y2, const CollisionTileBoundaries& tileBoundaries) const;
std::pair<bool,bool> placeLineFeature(const CollisionFeature& feature,
const mat4& posMatrix,