summaryrefslogtreecommitdiff
path: root/src/mbgl/map/transform_state.cpp
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2016-05-19 19:03:41 +0300
committerBruno de Oliveira Abinader <bruno@mapbox.com>2016-05-20 16:18:07 +0300
commitf751d2c46528ac4301ef3753c468950051937940 (patch)
treede8859aadb87cdcb02a1d828087e53bef19d75b6 /src/mbgl/map/transform_state.cpp
parentb962b56072255c818f441a2f0c8fbeb27e7f78bc (diff)
downloadqtlocation-mapboxgl-f751d2c46528ac4301ef3753c468950051937940.tar.gz
[core] Avoid NaNs in TransformState unit conversions
Fix cases where e.g. state has either zero width or height, causing the unit convertion functions would return NaNs.
Diffstat (limited to 'src/mbgl/map/transform_state.cpp')
-rw-r--r--src/mbgl/map/transform_state.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mbgl/map/transform_state.cpp b/src/mbgl/map/transform_state.cpp
index ad41c9eea2..ac8b6396c7 100644
--- a/src/mbgl/map/transform_state.cpp
+++ b/src/mbgl/map/transform_state.cpp
@@ -230,6 +230,10 @@ double TransformState::worldSize() const {
}
ScreenCoordinate TransformState::latLngToScreenCoordinate(const LatLng& latLng) const {
+ if (width == 0 || height == 0) {
+ return {};
+ }
+
mat4 mat = coordinatePointMatrix(getZoom());
vec4 p;
Point<double> pt = project(latLng) / double(util::tileSize);
@@ -239,6 +243,10 @@ ScreenCoordinate TransformState::latLngToScreenCoordinate(const LatLng& latLng)
}
LatLng TransformState::screenCoordinateToLatLng(const ScreenCoordinate& point, LatLng::WrapMode wrapMode) const {
+ if (width == 0 || height == 0) {
+ return {};
+ }
+
float targetZ = 0;
mat4 mat = coordinatePointMatrix(getZoom());