summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMinh Nguyễn <mxn@1ec5.org>2016-01-15 08:23:10 -0800
committerMinh Nguyễn <mxn@1ec5.org>2016-01-18 16:54:57 -0800
commit143f8a78170065fc46afba1eaf987258e9c9f99b (patch)
tree854e6e55b5d08b4c524afb30c7f4c6ff2d8d3821 /test
parentcb126eafe0e9b482162414d0fbbc0ae4d4f3cea9 (diff)
downloadqtlocation-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.cpp36
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);
+}