diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2020-01-07 17:53:56 +0200 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2020-01-08 12:43:26 +0200 |
commit | 1debf4e05b9710c006856fc14254493b16478bbc (patch) | |
tree | 06bcf5ce331e998a6c9754fc302aaa107e7f3021 | |
parent | c25fbe9a94c30be75674772480aab86227521737 (diff) | |
download | qtlocation-mapboxgl-1debf4e05b9710c006856fc14254493b16478bbc.tar.gz |
[core] Fix CollisionIndex::featureIntersectsTileBorders() implementation
-rw-r--r-- | src/mbgl/text/collision_index.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/text/collision_index.hpp | 3 |
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, |