diff options
Diffstat (limited to 'src/mbgl/util/interpolate.cpp')
-rw-r--r-- | src/mbgl/util/interpolate.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/mbgl/util/interpolate.cpp b/src/mbgl/util/interpolate.cpp new file mode 100644 index 0000000000..306a5c6630 --- /dev/null +++ b/src/mbgl/util/interpolate.cpp @@ -0,0 +1,19 @@ +#include <mbgl/util/interpolate.hpp> + +#include <cmath> + +namespace mbgl { +namespace util { + +float interpolationFactor(float base, Range<float> range, float z) { + const float zoomDiff = range.max - range.min; + const float zoomProgress = z - range.min; + if (base == 1.0f) { + return zoomProgress / zoomDiff; + } else { + return (std::pow(base, zoomProgress) - 1) / (std::pow(base, zoomDiff) - 1); + } +} + +} // namespace util +} // namespace mbgl |