diff options
author | Brad Leege <bleege@gmail.com> | 2016-03-25 15:34:43 -0500 |
---|---|---|
committer | Brad Leege <bleege@gmail.com> | 2016-03-25 16:55:07 -0500 |
commit | 335e346ed19fc199de383f123ae5154be93588dd (patch) | |
tree | 0c1cb5671827fc840c0faa0591fe2630a679cf91 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/MathUtils.java | |
parent | 8cdb4f74e13085f438c22f940cec198c0dd85492 (diff) | |
download | qtlocation-mapboxgl-335e346ed19fc199de383f123ae5154be93588dd.tar.gz |
[android] #4475 - Introducing LatLng.wrap() and removing usage of wrap() in JNI's nativeLatLngForPixel()
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/MathUtils.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/MathUtils.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/MathUtils.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/MathUtils.java index ff1b56422b..1803462b46 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/MathUtils.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/MathUtils.java @@ -24,4 +24,23 @@ public class MathUtils { return Math.max(min, Math.min(max, value)); } + /** + * Constrains n to the given range (including min, excluding max) via modular arithmetic. + * + * Same formula as used in Core GL (math.hpp) + * std::fmod((std::fmod((value - min), d) + d), d) + min; + * + * @param value Value to wrap + * @param min Minimum value + * @param max Maximum value + * @return Wrapped value + */ + public static double wrap(double value, double min, double max) { + double delta = max - min; + + double firstMod = (value - min) % delta; + double secondMod = (firstMod + delta) % delta; + + return secondMod + min; + } } |