1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-02-08 04:20:09 +00:00

Slider and NormalisableRange changed to use standard library math functions

This commit is contained in:
ed 2016-08-31 09:00:50 +01:00
parent c10b042f76
commit 16e6c6fd84
2 changed files with 14 additions and 14 deletions

View file

@ -114,10 +114,10 @@ public:
ValueType distanceFromMiddle = static_cast<ValueType> (2) * proportion - static_cast<ValueType> (1);
return (static_cast<ValueType> (1) + pow (std::abs (distanceFromMiddle), skew)
* (distanceFromMiddle < static_cast<ValueType> (0) ? static_cast<ValueType> (-1)
: static_cast<ValueType> (1)))
/ static_cast<ValueType> (2);
return (static_cast<ValueType> (1) + std::pow (std::abs (distanceFromMiddle), skew)
* (distanceFromMiddle < static_cast<ValueType> (0) ? static_cast<ValueType> (-1)
: static_cast<ValueType> (1)))
/ static_cast<ValueType> (2);
}
/** Uses the properties of this mapping to convert a normalised 0->1 value to
@ -128,7 +128,7 @@ public:
if (! symmetricSkew)
{
if (skew != static_cast<ValueType> (1) && proportion > ValueType())
proportion = exp (std::log (proportion) / skew);
proportion = std::exp (std::log (proportion) / skew);
return start + (end - start) * proportion;
}
@ -136,9 +136,9 @@ public:
ValueType distanceFromMiddle = static_cast<ValueType> (2) * proportion - static_cast<ValueType> (1);
if (skew != static_cast<ValueType> (1) && distanceFromMiddle != static_cast<ValueType> (0))
distanceFromMiddle = exp (log (std::abs (distanceFromMiddle)) / skew)
* (distanceFromMiddle < static_cast<ValueType> (0) ? static_cast<ValueType> (-1)
: static_cast<ValueType> (1));
distanceFromMiddle = std::exp (std::log (std::abs (distanceFromMiddle)) / skew)
* (distanceFromMiddle < static_cast<ValueType> (0) ? static_cast<ValueType> (-1)
: static_cast<ValueType> (1));
return start + (end - start) / static_cast<ValueType> (2) * (static_cast<ValueType> (1) + distanceFromMiddle);
}

View file

@ -477,8 +477,8 @@ public:
void setSkewFactorFromMidPoint (const double sliderValueToShowAtMidPoint)
{
if (maximum > minimum)
skewFactor = log (0.5) / log ((sliderValueToShowAtMidPoint - minimum)
/ (maximum - minimum));
skewFactor = std::log (0.5) / std::log ((sliderValueToShowAtMidPoint - minimum)
/ (maximum - minimum));
}
void setIncDecButtonsMode (const IncDecButtonMode mode)
@ -1508,7 +1508,7 @@ double Slider::proportionOfLengthToValue (double proportion)
if (! isSymmetricSkew())
{
if (skew != 1.0 && proportion > 0.0)
proportion = exp (log (proportion) / skew);
proportion = std::exp (std::log (proportion) / skew);
return getMinimum() + (getMaximum() - getMinimum()) * proportion;
}
@ -1516,8 +1516,8 @@ double Slider::proportionOfLengthToValue (double proportion)
double distanceFromMiddle = 2.0 * proportion - 1.0;
if (skew != 1.0 && distanceFromMiddle != 0.0)
distanceFromMiddle = exp (log (std::abs (distanceFromMiddle)) / skew)
* (distanceFromMiddle < 0 ? -1 : 1);
distanceFromMiddle = std::exp (std::log (std::abs (distanceFromMiddle)) / skew)
* (distanceFromMiddle < 0 ? -1 : 1);
return getMinimum() + (getMaximum() - getMinimum()) / 2.0 * (1 + distanceFromMiddle);
}
@ -1534,7 +1534,7 @@ double Slider::valueToProportionOfLength (double value)
return std::pow (n, skew);
double distanceFromMiddle = 2.0 * n - 1.0;
return (1.0 + pow (std::abs (distanceFromMiddle), skew) * (distanceFromMiddle < 0 ? -1 : 1)) / 2.0;
return (1.0 + std::pow (std::abs (distanceFromMiddle), skew) * (distanceFromMiddle < 0 ? -1 : 1)) / 2.0;
}
double Slider::snapValue (double attemptedValue, DragMode)