summaryrefslogtreecommitdiff
path: root/include/mbgl/map/projection_mode.hpp
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 /include/mbgl/map/projection_mode.hpp
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 'include/mbgl/map/projection_mode.hpp')
-rw-r--r--include/mbgl/map/projection_mode.hpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/mbgl/map/projection_mode.hpp b/include/mbgl/map/projection_mode.hpp
new file mode 100644
index 0000000000..4617371e15
--- /dev/null
+++ b/include/mbgl/map/projection_mode.hpp
@@ -0,0 +1,34 @@
+#pragma once
+
+#include <mbgl/util/optional.hpp>
+
+#include <functional>
+
+namespace mbgl {
+
+/**
+ * @brief Holds values for Axonometric rendering. All fields are
+ * optional.
+ */
+struct ProjectionMode {
+ ProjectionMode& withAxonometric(bool o) { axonometric = o; return *this; }
+ ProjectionMode& withXSkew(double o) { xSkew = o; return *this; }
+ ProjectionMode& withYSkew(double o) { ySkew = o; return *this; }
+
+ /**
+ * @brief Set to True to enable axonometric rendering, false otherwise.
+ */
+ optional<bool> axonometric;
+
+ /**
+ * @brief The X skew value represents how much to skew on the x-axis.
+ */
+ optional<double> xSkew;
+
+ /**
+ * @brief The Y skew value represents how much to skew on the y-axis.
+ */
+ optional<double> ySkew;
+};
+
+} // namespace mbgl