diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2017-04-03 17:07:17 +0300 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2017-04-10 18:01:28 +0300 |
commit | e5aa4d70cd7b39302ddf1ec4df240a14accfb474 (patch) | |
tree | 8e8595f32fa4f30316e68f533ee4dd289adf11fb /src/mbgl/map | |
parent | 76edc6ee69ec9a8aaa0b0207aed06f257ff5fd83 (diff) | |
download | qtlocation-mapboxgl-e5aa4d70cd7b39302ddf1ec4df240a14accfb474.tar.gz |
[core] Updated Size::isEmpty and TransformState::valid checks
Diffstat (limited to 'src/mbgl/map')
-rw-r--r-- | src/mbgl/map/transform.cpp | 10 | ||||
-rw-r--r-- | src/mbgl/map/transform.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/map/transform_state.cpp | 7 | ||||
-rw-r--r-- | src/mbgl/map/transform_state.hpp | 4 |
4 files changed, 16 insertions, 7 deletions
diff --git a/src/mbgl/map/transform.cpp b/src/mbgl/map/transform.cpp index c30b8d9687..5104aa0562 100644 --- a/src/mbgl/map/transform.cpp +++ b/src/mbgl/map/transform.cpp @@ -45,9 +45,13 @@ Transform::Transform(MapObserver& observer_, #pragma mark - Map View -bool Transform::resize(const Size size) { +void Transform::resize(const Size size) { + if (size.isEmpty()) { + throw std::runtime_error("failed to resize: size is empty"); + } + if (state.size == size) { - return false; + return; } observer.onCameraWillChange(MapObserver::CameraChangeMode::Immediate); @@ -56,8 +60,6 @@ bool Transform::resize(const Size size) { state.constrain(state.scale, state.x, state.y); observer.onCameraDidChange(MapObserver::CameraChangeMode::Immediate); - - return true; } #pragma mark - Camera diff --git a/src/mbgl/map/transform.hpp b/src/mbgl/map/transform.hpp index f11ac81287..15b97cb198 100644 --- a/src/mbgl/map/transform.hpp +++ b/src/mbgl/map/transform.hpp @@ -25,7 +25,7 @@ public: Transform(const TransformState &state_) : observer(MapObserver::nullObserver()), state(state_) {} // Map view - bool resize(Size size); + void resize(Size size); // Camera /** Returns the current camera options. */ diff --git a/src/mbgl/map/transform_state.cpp b/src/mbgl/map/transform_state.cpp index 3fae7b205c..2e97cc9bc8 100644 --- a/src/mbgl/map/transform_state.cpp +++ b/src/mbgl/map/transform_state.cpp @@ -27,6 +27,9 @@ void TransformState::matrixFor(mat4& matrix, const UnwrappedTileID& tileID) cons } void TransformState::getProjMatrix(mat4& projMatrix) const { + if (size.isEmpty()) { + return; + } // Find the distance from the center point [width/2, height/2] to the // center top point [width/2, 0] in Z units, using the law of sines. @@ -216,7 +219,7 @@ double TransformState::scaleZoom(double s) const { } ScreenCoordinate TransformState::latLngToScreenCoordinate(const LatLng& latLng) const { - if (!size) { + if (size.isEmpty()) { return {}; } @@ -229,7 +232,7 @@ ScreenCoordinate TransformState::latLngToScreenCoordinate(const LatLng& latLng) } LatLng TransformState::screenCoordinateToLatLng(const ScreenCoordinate& point, LatLng::WrapMode wrapMode) const { - if (!size) { + if (size.isEmpty()) { return {}; } diff --git a/src/mbgl/map/transform_state.hpp b/src/mbgl/map/transform_state.hpp index a35aa5a255..d281c31995 100644 --- a/src/mbgl/map/transform_state.hpp +++ b/src/mbgl/map/transform_state.hpp @@ -74,6 +74,10 @@ public: double zoomScale(double zoom) const; double scaleZoom(double scale) const; + bool valid() const { + return !size.isEmpty() && (scale >= min_scale && scale <= max_scale); + } + private: bool rotatedNorth() const; void constrain(double& scale, double& x, double& y) const; |