summaryrefslogtreecommitdiff
path: root/src/mbgl/text/collision_index.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/text/collision_index.cpp')
-rw-r--r--src/mbgl/text/collision_index.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/mbgl/text/collision_index.cpp b/src/mbgl/text/collision_index.cpp
index 90acb2b441..f81a8a4f0f 100644
--- a/src/mbgl/text/collision_index.cpp
+++ b/src/mbgl/text/collision_index.cpp
@@ -80,6 +80,8 @@ bool CollisionIndex::isInsideTile(const CollisionBox& box, const CollisionTileBo
std::pair<bool,bool> CollisionIndex::placeFeature(CollisionFeature& feature,
+ const float shiftX,
+ const float shiftY,
const mat4& posMatrix,
const mat4& labelPlaneMatrix,
const float textPixelRatio,
@@ -95,10 +97,10 @@ std::pair<bool,bool> CollisionIndex::placeFeature(CollisionFeature& feature,
CollisionBox& box = feature.boxes.front();
const auto projectedPoint = projectAndGetPerspectiveRatio(posMatrix, box.anchor);
const float tileToViewport = textPixelRatio * projectedPoint.second;
- box.px1 = box.x1 * tileToViewport + projectedPoint.first.x;
- box.py1 = box.y1 * tileToViewport + projectedPoint.first.y;
- box.px2 = box.x2 * tileToViewport + projectedPoint.first.x;
- box.py2 = box.y2 * tileToViewport + projectedPoint.first.y;
+ box.px1 = (box.x1 + shiftX) * tileToViewport + projectedPoint.first.x;
+ box.py1 = (box.y1 + shiftY) * tileToViewport + projectedPoint.first.y;
+ box.px2 = (box.x2 + shiftX) * tileToViewport + projectedPoint.first.x;
+ box.py2 = (box.y2 + shiftY) * tileToViewport + projectedPoint.first.y;
if ((avoidEdges && !isInsideTile(box, *avoidEdges)) ||