diff options
author | Minh Nguyễn <mxn@1ec5.org> | 2016-01-13 00:47:50 -0800 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2016-01-14 00:40:03 -0800 |
commit | 8bad15bf8785bf7d47eef9f1bf3ab86cfa393481 (patch) | |
tree | 9401b99d37cc447dbca519d569008209ea6cbde2 /test | |
parent | a3d4aeefecadc3717dc27a53ae170a4c0e878ce8 (diff) | |
download | qtlocation-mapboxgl-8bad15bf8785bf7d47eef9f1bf3ab86cfa393481.tar.gz |
[core] Consolidated zoom and angle anchor logic
Made anchor a CameraOption for easeTo().
Diffstat (limited to 'test')
-rw-r--r-- | test/miscellaneous/transform.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/miscellaneous/transform.cpp b/test/miscellaneous/transform.cpp index a5c91b84ef..f06fb56f14 100644 --- a/test/miscellaneous/transform.cpp +++ b/test/miscellaneous/transform.cpp @@ -177,3 +177,28 @@ TEST(Transform, ConstrainWidthAndHeight) { ASSERT_NEAR(85.021422866378742, loc.latitude, 0.0001); ASSERT_NEAR(179.65667724609358, std::abs(loc.longitude), 0.0001); } + +TEST(Transform, Anchor) { + MockView view; + Transform transform(view, ConstrainMode::HeightOnly); + + ASSERT_DOUBLE_EQ(0, transform.getLatLng().latitude); + ASSERT_DOUBLE_EQ(0, transform.getLatLng().longitude); + ASSERT_DOUBLE_EQ(1, transform.getScale()); + + transform.setLatLngZoom({ 10, -100 }, 10); + + ASSERT_DOUBLE_EQ(10, transform.getLatLng().latitude); + ASSERT_DOUBLE_EQ(-100, transform.getLatLng().longitude); + 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 LatLng anchorLatLng = transform.getState().pointToLatLng(anchorPoint); + transform.setAngle(M_PI_4, anchorPoint); + + ASSERT_NEAR(M_PI_4, transform.getAngle(), 0.000001); + ASSERT_NE(anchorLatLng, transform.getLatLng()); + ASSERT_DOUBLE_EQ(anchorLatLng, transform.getState().pointToLatLng(anchorPoint)); +} |