summaryrefslogtreecommitdiff
path: root/src/mbgl/map/transform_state.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/map/transform_state.cpp')
-rw-r--r--src/mbgl/map/transform_state.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/mbgl/map/transform_state.cpp b/src/mbgl/map/transform_state.cpp
index 5cbd307698..4de795d469 100644
--- a/src/mbgl/map/transform_state.cpp
+++ b/src/mbgl/map/transform_state.cpp
@@ -130,6 +130,26 @@ ViewportMode TransformState::getViewportMode() const {
return viewportMode;
}
+#pragma mark - Camera options
+
+CameraOptions TransformState::getCameraOptions(const EdgeInsets& padding) const {
+ CameraOptions camera;
+
+ if (padding.isFlush()) {
+ camera.center = getLatLng();
+ } else {
+ ScreenCoordinate point = padding.getCenter(size.width, size.height);
+ point.y = size.height - point.y;
+ camera.center = screenCoordinateToLatLng(point).wrapped();
+ }
+ camera.padding = padding;
+ camera.zoom = getZoom();
+ camera.angle = -angle * util::RAD2DEG;
+ camera.pitch = pitch * util::RAD2DEG;
+
+ return camera;
+}
+
#pragma mark - Position
LatLng TransformState::getLatLng(LatLng::WrapMode wrapMode) const {