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.cpp29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/mbgl/map/transform_state.cpp b/src/mbgl/map/transform_state.cpp
index c8f1c7f594..c5bb38653a 100644
--- a/src/mbgl/map/transform_state.cpp
+++ b/src/mbgl/map/transform_state.cpp
@@ -1,11 +1,12 @@
#include <mbgl/map/transform_state.hpp>
+#include <mbgl/math/clamp.hpp>
+#include <mbgl/math/log2.hpp>
#include <mbgl/tile/tile_id.hpp>
#include <mbgl/util/constants.hpp>
#include <mbgl/util/interpolate.hpp>
+#include <mbgl/util/logging.hpp>
#include <mbgl/util/projection.hpp>
#include <mbgl/util/tile_coordinate.hpp>
-#include <mbgl/math/log2.hpp>
-#include <mbgl/math/clamp.hpp>
namespace mbgl {
TransformState::TransformState(ConstrainMode constrainMode_, ViewportMode viewportMode_)
@@ -340,6 +341,30 @@ double TransformState::getMaxZoom() const {
return scaleZoom(max_scale);
}
+void TransformState::setMinPitch(const double pitch_) {
+ if (pitch_ <= maxPitch) {
+ minPitch = util::clamp(pitch_, util::PITCH_MIN, maxPitch);
+ } else {
+ Log::Warning(Event::General, "Trying to set minimum pitch to larger than maximum pitch, no changes made.");
+ }
+}
+
+double TransformState::getMinPitch() const {
+ return minPitch;
+}
+
+void TransformState::setMaxPitch(const double pitch_) {
+ if (pitch_ >= minPitch) {
+ maxPitch = util::clamp(pitch_, minPitch, util::PITCH_MAX);
+ } else {
+ Log::Warning(Event::General, "Trying to set maximum pitch to smaller than minimum pitch, no changes made.");
+ }
+}
+
+double TransformState::getMaxPitch() const {
+ return maxPitch;
+}
+
#pragma mark - Scale
double TransformState::getScale() const {
return scale;