summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSudarsana Babu Nagineni <sudarsana.babu@mapbox.com>2019-03-06 14:30:23 +0200
committerSudarsana Babu Nagineni <sudarsana.babu@mapbox.com>2019-03-08 17:36:40 +0200
commit744d92e7636ffcba7aea7a302315326b1098d8dc (patch)
tree11df789f9b6dc0913b3d95f1debbfd87c9225a6a /src
parentc6598fc5da063f9b60204639cd619647cbbc89da (diff)
downloadqtlocation-mapboxgl-744d92e7636ffcba7aea7a302315326b1098d8dc.tar.gz
[core] consolidate Axonometric rendering API
Instead of having individual APIs for setting axonometric and skew options, create ProjectionMode struct that holds all the relevant options for Axonometric rendering and introduce setter/getter on the Map for those options.
Diffstat (limited to 'src')
-rw-r--r--src/core-files.json1
-rw-r--r--src/mbgl/map/map.cpp26
-rw-r--r--src/mbgl/map/transform.cpp29
-rw-r--r--src/mbgl/map/transform.hpp9
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;