summaryrefslogtreecommitdiff
path: root/src/mbgl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl')
-rw-r--r--src/mbgl/map/map.cpp26
-rw-r--r--src/mbgl/map/transform.cpp29
-rw-r--r--src/mbgl/map/transform.hpp9
3 files changed, 16 insertions, 48 deletions
diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp
index 7fe99e3867..42e14abeb5 100644
--- a/src/mbgl/map/map.cpp
+++ b/src/mbgl/map/map.cpp
@@ -378,31 +378,13 @@ ViewportMode Map::getViewportMode() const {
#pragma mark - Projection mode
-void Map::setAxonometric(bool axonometric) {
- impl->transform.setAxonometric(axonometric);
+void Map::setProjectionMode(const ProjectionMode& options) {
+ impl->transform.setProjectionMode(options);
impl->onUpdate();
}
-bool Map::getAxonometric() const {
- return impl->transform.getAxonometric();
-}
-
-void Map::setXSkew(double xSkew) {
- impl->transform.setXSkew(xSkew);
- impl->onUpdate();
-}
-
-double Map::getXSkew() const {
- return impl->transform.getXSkew();
-}
-
-void Map::setYSkew(double ySkew) {
- impl->transform.setYSkew(ySkew);
- impl->onUpdate();
-}
-
-double Map::getYSkew() const {
- return impl->transform.getYSkew();
+ProjectionMode Map::getProjectionMode() const {
+ return impl->transform.getProjectionMode();
}
#pragma mark - Projection
diff --git a/src/mbgl/map/transform.cpp b/src/mbgl/map/transform.cpp
index 96aa5d2f4a..e60ce7a1bd 100644
--- a/src/mbgl/map/transform.cpp
+++ b/src/mbgl/map/transform.cpp
@@ -435,28 +435,17 @@ ViewportMode Transform::getViewportMode() const {
#pragma mark - Projection mode
-void Transform::setAxonometric(bool axonometric) {
- state.axonometric = axonometric;
+void Transform::setProjectionMode(const ProjectionMode& options) {
+ state.axonometric = options.axonometric.value_or(state.axonometric);
+ state.xSkew = options.xSkew.value_or(state.xSkew);
+ state.ySkew = options.ySkew.value_or(state.ySkew);
}
-bool Transform::getAxonometric() const {
- return state.axonometric;
-}
-
-void Transform::setXSkew(double xSkew) {
- state.xSkew = xSkew;
-}
-
-double Transform::getXSkew() const {
- return state.xSkew;
-}
-
-void Transform::setYSkew(double ySkew) {
- state.ySkew = ySkew;
-}
-
-double Transform::getYSkew() const {
- return state.ySkew;
+ProjectionMode Transform::getProjectionMode() const {
+ return ProjectionMode()
+ .withAxonometric(state.axonometric)
+ .withXSkew(state.xSkew)
+ .withYSkew(state.ySkew);
}
#pragma mark - Transition
diff --git a/src/mbgl/map/transform.hpp b/src/mbgl/map/transform.hpp
index cf342181b1..c4e10ec797 100644
--- a/src/mbgl/map/transform.hpp
+++ b/src/mbgl/map/transform.hpp
@@ -1,6 +1,7 @@
#pragma once
#include <mbgl/map/camera.hpp>
+#include <mbgl/map/projection_mode.hpp>
#include <mbgl/map/map_observer.hpp>
#include <mbgl/map/mode.hpp>
#include <mbgl/map/transform_state.hpp>
@@ -84,12 +85,8 @@ public:
ViewportMode getViewportMode() const;
// Projection mode
- void setAxonometric(bool);
- bool getAxonometric() const;
- void setXSkew(double xSkew);
- double getXSkew() const;
- void setYSkew(double ySkew);
- double getYSkew() const;
+ void setProjectionMode(const ProjectionMode&);
+ ProjectionMode getProjectionMode() const;
// Transitions
bool inTransition() const;