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-07 17:54:23 +0200
commit1b55ca875d96af2ad4a5574241a1eddac261b4ff (patch)
tree5fdd850ac380303d4cf32755f161dd4c1cd1defd
parent975aaa7ad67fe5d89594537abeeace2bad43b973 (diff)
downloadqtlocation-mapboxgl-1b55ca875d96af2ad4a5574241a1eddac261b4ff.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,