[core] More complete fix for composite function interpolation edge case
b5b4549 / #8613 handled the edge case for layout properties, but not paint properties. Move the check for a degenerate range to interpolationFactor in order to handle both correctly.
This commit is contained in:
@@ -8,7 +8,9 @@ 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) {
|
||||
if (zoomDiff == 0) {
|
||||
return 0;
|
||||
} else if (base == 1.0f) {
|
||||
return zoomProgress / zoomDiff;
|
||||
} else {
|
||||
return (std::pow(base, zoomProgress) - 1) / (std::pow(base, zoomDiff) - 1);
|
||||
|
||||
Reference in New Issue
Block a user