From ac70ada2d3e9b842a1fd3f46361d323ddb20d232 Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Thu, 10 Mar 2016 19:49:09 +0200 Subject: [core] Check for NaNs in mbgl::util::{min,max,clamp} --- include/mbgl/util/projection.hpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'include/mbgl/util/projection.hpp') diff --git a/include/mbgl/util/projection.hpp b/include/mbgl/util/projection.hpp index bee5eac8ae..09c8ce74ab 100644 --- a/include/mbgl/util/projection.hpp +++ b/include/mbgl/util/projection.hpp @@ -3,6 +3,7 @@ #include #include +#include #include @@ -13,16 +14,16 @@ class Projection { public: static inline double getMetersPerPixelAtLatitude(double lat, double zoom) { const double mapPixelWidthAtZoom = std::pow(2.0, zoom) * util::tileSize; - const double constrainedLatitude = ::fmin(::fmax(lat, -util::LATITUDE_MAX), util::LATITUDE_MAX); + const double constrainedLatitude = util::clamp(lat, -util::LATITUDE_MAX, util::LATITUDE_MAX); return std::cos(constrainedLatitude * util::DEG2RAD) * util::M2PI * util::EARTH_RADIUS_M / mapPixelWidthAtZoom; } static inline ProjectedMeters projectedMetersForLatLng(const LatLng& latLng) { - const double constrainedLatitude = ::fmin(::fmax(latLng.latitude, -util::LATITUDE_MAX), util::LATITUDE_MAX); + const double constrainedLatitude = util::clamp(latLng.latitude, -util::LATITUDE_MAX, util::LATITUDE_MAX); const double m = 1 - 1e-15; - const double f = ::fmin(::fmax(std::sin(util::DEG2RAD * constrainedLatitude), -m), m); + const double f = util::clamp(std::sin(util::DEG2RAD * constrainedLatitude), -m, m); const double easting = util::EARTH_RADIUS_M * latLng.longitude * util::DEG2RAD; const double northing = 0.5 * util::EARTH_RADIUS_M * std::log((1 + f) / (1 - f)); @@ -34,7 +35,7 @@ public: double latitude = (2 * std::atan(std::exp(projectedMeters.northing / util::EARTH_RADIUS_M)) - (M_PI / 2)) * util::RAD2DEG; double longitude = projectedMeters.easting * util::RAD2DEG / util::EARTH_RADIUS_M; - latitude = ::fmin(::fmax(latitude, -util::LATITUDE_MAX), util::LATITUDE_MAX); + latitude = util::clamp(latitude, -util::LATITUDE_MAX, util::LATITUDE_MAX); return LatLng(latitude, longitude); } -- cgit v1.2.1