38template <
typename ValueType>
53 ValueType intervalValue,
55 bool useSymmetricSkew =
false)
noexcept
94 ValueType valueToRemap)>;
112 :
start (rangeStart),
114 convertFrom0To1Function (
std::move (convertFrom0To1Func)),
115 convertTo0To1Function (
std::move (convertTo0To1Func)),
116 snapToLegalValueFunction (
std::move (snapToLegalValueFunc))
131 if (
skew ==
static_cast<ValueType
> (1))
135 return std::pow (proportion,
skew);
137 auto distanceFromMiddle =
static_cast<ValueType
> (2) * proportion -
static_cast<ValueType
> (1);
139 return (
static_cast<ValueType
> (1) + std::pow (std::abs (distanceFromMiddle),
skew)
140 * (distanceFromMiddle < ValueType() ?
static_cast<ValueType
> (-1)
141 :
static_cast<ValueType
> (1)))
142 /
static_cast<ValueType
> (2);
157 if (
skew !=
static_cast<ValueType
> (1) && proportion > ValueType())
158 proportion = std::exp (std::log (proportion) /
skew);
163 auto distanceFromMiddle =
static_cast<ValueType
> (2) * proportion -
static_cast<ValueType
> (1);
165 if (
skew !=
static_cast<ValueType
> (1) && distanceFromMiddle !=
static_cast<ValueType
> (0))
166 distanceFromMiddle = std::exp (std::log (std::abs (distanceFromMiddle)) /
skew)
167 * (distanceFromMiddle < ValueType() ? static_cast<ValueType> (-1)
168 :
static_cast<ValueType
> (1));
170 return start + (
end -
start) /
static_cast<ValueType
> (2) * (
static_cast<ValueType
> (1) + distanceFromMiddle);
204 skew = std::log (
static_cast<ValueType
> (0.5)) / std::log ((centrePointValue -
start) / (
end -
start));
249 auto clampedValue =
jlimit (
static_cast<ValueType
> (0),
static_cast<ValueType
> (1),
value);
#define noexcept
Definition DistrhoDefines.h:72
ValueType skew
Definition juce_NormalisableRange.h:234
ValueType end
Definition juce_NormalisableRange.h:212
bool symmetricSkew
Definition juce_NormalisableRange.h:237
ValueType snapToLegalValue(ValueType v) const noexcept
Definition juce_NormalisableRange.h:176
std::function< ValueType(ValueType rangeStart, ValueType rangeEnd, ValueType valueToRemap)> ValueRemapFunction
Definition juce_NormalisableRange.h:92
NormalisableRange(NormalisableRange &&)=default
NormalisableRange()=default
static ValueType clampTo0To1(ValueType value)
Definition juce_NormalisableRange.h:247
ValueType start
Definition juce_NormalisableRange.h:209
ValueType convertFrom0to1(ValueType proportion) const noexcept
Definition juce_NormalisableRange.h:148
NormalisableRange(const NormalisableRange &)=default
NormalisableRange(ValueType rangeStart, ValueType rangeEnd) noexcept
Definition juce_NormalisableRange.h:63
void setSkewForCentre(ValueType centrePointValue) noexcept
Definition juce_NormalisableRange.h:198
NormalisableRange(ValueType rangeStart, ValueType rangeEnd, ValueRemapFunction convertFrom0To1Func, ValueRemapFunction convertTo0To1Func, ValueRemapFunction snapToLegalValueFunc={}) noexcept
Definition juce_NormalisableRange.h:107
NormalisableRange(ValueType rangeStart, ValueType rangeEnd, ValueType intervalValue) noexcept
Definition juce_NormalisableRange.h:71
Range< ValueType > getRange() const noexcept
Definition juce_NormalisableRange.h:188
ValueType interval
Definition juce_NormalisableRange.h:220
NormalisableRange(Range< ValueType > range, ValueType intervalValue) noexcept
Definition juce_NormalisableRange.h:86
NormalisableRange(ValueType rangeStart, ValueType rangeEnd, ValueType intervalValue, ValueType skewFactor, bool useSymmetricSkew=false) noexcept
Definition juce_NormalisableRange.h:51
ValueType convertTo0to1(ValueType v) const noexcept
Definition juce_NormalisableRange.h:124
ValueRemapFunction snapToLegalValueFunction
Definition juce_NormalisableRange.h:258
ValueRemapFunction convertFrom0To1Function
Definition juce_NormalisableRange.h:258
NormalisableRange(Range< ValueType > range) noexcept
Definition juce_NormalisableRange.h:80
ValueRemapFunction convertTo0To1Function
Definition juce_NormalisableRange.h:258
void checkInvariants() const
Definition juce_NormalisableRange.h:240
Definition juce_Range.h:40
unsigned v[N_MAX]
Definition inflate.c:1584
static PuglViewHint int value
Definition pugl.h:1708
virtual ASIOError start()=0
Definition carla_juce.cpp:31
RangedDirectoryIterator end(const RangedDirectoryIterator &)
Definition juce_RangedDirectoryIterator.h:184
Type jlimit(Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
Definition juce_MathsFunctions.h:262
Definition juce_Uuid.h:141
#define const
Definition zconf.h:137