diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core-files.json | 1 | ||||
-rw-r--r-- | src/mbgl/map/map.cpp | 26 | ||||
-rw-r--r-- | src/mbgl/map/transform.cpp | 29 | ||||
-rw-r--r-- | src/mbgl/map/transform.hpp | 9 |
4 files changed, 17 insertions, 48 deletions
diff --git a/src/core-files.json b/src/core-files.json index ab43e6b409..bba2a94bf2 100644 --- a/src/core-files.json +++ b/src/core-files.json @@ -330,6 +330,7 @@ "mbgl/map/map.hpp": "include/mbgl/map/map.hpp", "mbgl/map/map_observer.hpp": "include/mbgl/map/map_observer.hpp", "mbgl/map/mode.hpp": "include/mbgl/map/mode.hpp", + "mbgl/map/projection_mode.hpp": "include/mbgl/map/projection_mode.hpp", "mbgl/math/clamp.hpp": "include/mbgl/math/clamp.hpp", "mbgl/math/log2.hpp": "include/mbgl/math/log2.hpp", "mbgl/math/minmax.hpp": "include/mbgl/math/minmax.hpp", 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; |