diff options
Diffstat (limited to 'src/mbgl/map/transform.cpp')
-rw-r--r-- | src/mbgl/map/transform.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/mbgl/map/transform.cpp b/src/mbgl/map/transform.cpp index 469db09e0a..9febc3ab5a 100644 --- a/src/mbgl/map/transform.cpp +++ b/src/mbgl/map/transform.cpp @@ -120,7 +120,7 @@ void Transform::easeTo(const CameraOptions& camera, const AnimationOptions& anim // Constrain camera options. zoom = util::clamp(zoom, state.getMinZoom(), state.getMaxZoom()); const double scale = state.zoomScale(zoom); - pitch = util::clamp(pitch, 0., util::PITCH_MAX); + pitch = util::clamp(pitch, state.min_pitch, state.max_pitch); Update update = state.getZoom() == zoom ? Update::Repaint : Update::RecalculateStyle; @@ -188,7 +188,7 @@ void Transform::flyTo(const CameraOptions &camera, const AnimationOptions &anima // Constrain camera options. zoom = util::clamp(zoom, state.getMinZoom(), state.getMaxZoom()); - pitch = util::clamp(pitch, 0., util::PITCH_MAX); + pitch = util::clamp(pitch, state.min_pitch, state.max_pitch); // Minimize rotation by taking the shorter path around the circle. angle = _normalizeAngle(angle, state.angle); @@ -451,6 +451,16 @@ void Transform::setMaxZoom(const double maxZoom) { state.setMaxZoom(maxZoom); } +void Transform::setMinPitch(double minPitch) { + if (std::isnan(minPitch)) return; + state.setMinPitch(minPitch); +} + +void Transform::setMaxPitch(double maxPitch) { + if (std::isnan(maxPitch)) return; + state.setMaxPitch(maxPitch); +} + #pragma mark - Angle void Transform::rotateBy(const ScreenCoordinate& first, const ScreenCoordinate& second, const AnimationOptions& animation) { |