diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2017-06-01 00:58:03 +0300 |
---|---|---|
committer | Fabian Guerra <fabian.guerra@mapbox.com> | 2017-06-01 13:46:53 -0400 |
commit | 0d171dbe0e2d172190c21f98fb2cc4a1819ed9a2 (patch) | |
tree | 2818518d59d395a683c16febc2db852626974327 /src/mbgl/map/transform_state.cpp | |
parent | b2f277ac620cc41883dad8e06bb45458c18ffe72 (diff) | |
download | qtlocation-mapboxgl-0d171dbe0e2d172190c21f98fb2cc4a1819ed9a2.tar.gz |
[core] Make TransformState LatLngBounds optional
Diffstat (limited to 'src/mbgl/map/transform_state.cpp')
-rw-r--r-- | src/mbgl/map/transform_state.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/mbgl/map/transform_state.cpp b/src/mbgl/map/transform_state.cpp index 8c3c70feec..bbf7e22b31 100644 --- a/src/mbgl/map/transform_state.cpp +++ b/src/mbgl/map/transform_state.cpp @@ -142,12 +142,14 @@ double TransformState::getZoomFraction() const { #pragma mark - Bounds -void TransformState::setLatLngBounds(const LatLngBounds& bounds_) { - bounds = bounds_; - setLatLngZoom(getLatLng(LatLng::Unwrapped), getZoom()); +void TransformState::setLatLngBounds(optional<LatLngBounds> bounds_) { + if (bounds_ != bounds) { + bounds = bounds_; + setLatLngZoom(getLatLng(LatLng::Unwrapped), getZoom()); + } } -LatLngBounds TransformState::getLatLngBounds() const { +optional<LatLngBounds> TransformState::getLatLngBounds() const { return bounds; } @@ -350,8 +352,11 @@ void TransformState::moveLatLng(const LatLng& latLng, const ScreenCoordinate& an setLatLngZoom(Projection::unproject(centerCoord + latLngCoord - anchorCoord, scale), getZoom()); } -void TransformState::setLatLngZoom(const LatLng &latLng, double zoom) { - const LatLng constrained = bounds.constrain(latLng); +void TransformState::setLatLngZoom(const LatLng& latLng, double zoom) { + LatLng constrained = latLng; + if (bounds) { + constrained = bounds->constrain(latLng); + } double newScale = zoomScale(zoom); const double newWorldSize = newScale * util::tileSize; |