summaryrefslogtreecommitdiff
path: root/src/mbgl/util/tile_cover.cpp
diff options
context:
space:
mode:
authorAnsis Brammanis <brammanis@gmail.com>2015-08-17 16:45:20 -0400
committerAnsis Brammanis <brammanis@gmail.com>2015-08-24 18:41:51 -0400
commit0d68c4fedf780ed11d697ccf81b4f6b5b92b3134 (patch)
tree05751d5d8cc6e2ada23c25d1adf117654d881910 /src/mbgl/util/tile_cover.cpp
parentcef1b254445bdcfb20ada157ecc7f72c27aeacf9 (diff)
downloadqtlocation-mapboxgl-0d68c4fedf780ed11d697ccf81b4f6b5b92b3134.tar.gz
load correct covering tiles in perspective view
port pointCoordinate from -js to convert screen points to tile coordinates correctly in perspective view.
Diffstat (limited to 'src/mbgl/util/tile_cover.cpp')
-rw-r--r--src/mbgl/util/tile_cover.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/mbgl/util/tile_cover.cpp b/src/mbgl/util/tile_cover.cpp
index 9e444fec12..b7937bf849 100644
--- a/src/mbgl/util/tile_cover.cpp
+++ b/src/mbgl/util/tile_cover.cpp
@@ -1,6 +1,7 @@
#include <mbgl/util/tile_cover.hpp>
#include <mbgl/util/vec.hpp>
#include <mbgl/util/box.hpp>
+#include <mbgl/util/tile_coordinate.hpp>
namespace mbgl {
@@ -78,13 +79,19 @@ std::forward_list<TileID> tileCover(int8_t z, const mbgl::box &bounds, int8_t ac
}
};
+ mbgl::vec2<double> tl = { bounds.tl.column, bounds.tl.row };
+ mbgl::vec2<double> tr = { bounds.tr.column, bounds.tr.row };
+ mbgl::vec2<double> br = { bounds.br.column, bounds.br.row };
+ mbgl::vec2<double> bl = { bounds.bl.column, bounds.bl.row };
+
// Divide the screen up in two triangles and scan each of them:
// \---+
// | \ |
// +---\.
- scanTriangle(bounds.tl, bounds.tr, bounds.br, 0, tiles, scanLine);
- scanTriangle(bounds.br, bounds.bl, bounds.tl, 0, tiles, scanLine);
+ scanTriangle(tl, tr, br, 0, tiles, scanLine);
+ scanTriangle(br, bl, tl, 0, tiles, scanLine);
+ t.sort();
t.unique();
return t;