diff options
author | Ansis Brammanis <brammanis@gmail.com> | 2015-08-17 16:45:20 -0400 |
---|---|---|
committer | Ansis Brammanis <brammanis@gmail.com> | 2015-08-24 18:41:51 -0400 |
commit | 0d68c4fedf780ed11d697ccf81b4f6b5b92b3134 (patch) | |
tree | 05751d5d8cc6e2ada23c25d1adf117654d881910 /src/mbgl/util/tile_cover.cpp | |
parent | cef1b254445bdcfb20ada157ecc7f72c27aeacf9 (diff) | |
download | qtlocation-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.cpp | 11 |
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; |