diff options
author | Minh Nguyễn <mxn@1ec5.org> | 2016-01-15 08:23:10 -0800 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2016-01-18 16:54:57 -0800 |
commit | 143f8a78170065fc46afba1eaf987258e9c9f99b (patch) | |
tree | 854e6e55b5d08b4c524afb30c7f4c6ff2d8d3821 /test | |
parent | cb126eafe0e9b482162414d0fbbc0ae4d4f3cea9 (diff) | |
download | qtlocation-mapboxgl-143f8a78170065fc46afba1eaf987258e9c9f99b.tar.gz |
[core] Added padding option to CameraOptions
Moved EdgeInsets to geo.hpp so CameraOptions and Transform can refer to it. Added a padding option to CameraOptions that alters the frame of reference for the center option. Added optional padding parameters to LatLng getters and setters.
Working towards #2600.
Diffstat (limited to 'test')
-rw-r--r-- | test/miscellaneous/transform.cpp | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/test/miscellaneous/transform.cpp b/test/miscellaneous/transform.cpp index f06fb56f14..4a8b685564 100644 --- a/test/miscellaneous/transform.cpp +++ b/test/miscellaneous/transform.cpp @@ -2,6 +2,7 @@ #include "../fixtures/mock_view.hpp" #include <mbgl/map/transform.hpp> +#include <mbgl/util/geo.hpp> using namespace mbgl; @@ -193,8 +194,7 @@ TEST(Transform, Anchor) { ASSERT_DOUBLE_EQ(10, transform.getZoom()); ASSERT_DOUBLE_EQ(0, transform.getAngle()); - const auto size = view.getSize(); - const PrecisionPoint anchorPoint = { size[0] * 0.8, size[1] * 0.3 }; + const PrecisionPoint anchorPoint = {0, 0}; const LatLng anchorLatLng = transform.getState().pointToLatLng(anchorPoint); transform.setAngle(M_PI_4, anchorPoint); @@ -202,3 +202,35 @@ TEST(Transform, Anchor) { ASSERT_NE(anchorLatLng, transform.getLatLng()); ASSERT_DOUBLE_EQ(anchorLatLng, transform.getState().pointToLatLng(anchorPoint)); } + +TEST(Transform, Padding) { + MockView view; + Transform transform(view, ConstrainMode::HeightOnly); + transform.resize({{ 1000, 1000 }}); + + ASSERT_DOUBLE_EQ(0, transform.getLatLng().latitude); + ASSERT_DOUBLE_EQ(0, transform.getLatLng().longitude); + + transform.setLatLngZoom({ 10, -100 }, 10); + + const LatLng trueCenter = transform.getLatLng(); + ASSERT_DOUBLE_EQ(10, trueCenter.latitude); + ASSERT_DOUBLE_EQ(-100, trueCenter.longitude); + ASSERT_DOUBLE_EQ(10, transform.getZoom()); + + const LatLng manualShiftedCenter = transform.getState().pointToLatLng({ + 1000.0 / 2.0, + 1000.0 / 4.0, + }); + + EdgeInsets padding; + padding.top = 1000.0 / 2.0; + ASSERT_GT(padding.top, 0); + ASSERT_TRUE(padding); + + const LatLng shiftedCenter = transform.getLatLng(padding); + ASSERT_NE(trueCenter.latitude, shiftedCenter.latitude); + ASSERT_DOUBLE_EQ(trueCenter.longitude, shiftedCenter.longitude); + ASSERT_DOUBLE_EQ(manualShiftedCenter.latitude, shiftedCenter.latitude); + ASSERT_DOUBLE_EQ(manualShiftedCenter.longitude, shiftedCenter.longitude); +} |