22#ifndef AAX_CLINEARTAPERDELEGATE_H
23#define AAX_CLINEARTAPERDELEGATE_H
56template <
typename T,
int32_t RealPrecision=0>
78 T
Round(
double iValue)
const;
85template <
typename T,
int32_t RealPrecision>
88 double precision = RealPrecision;
90 return static_cast<T
>(floor(iValue * precision + 0.5) / precision);
91 return static_cast<T
>(iValue);
94template <
typename T,
int32_t RealPrecision>
102template <
typename T,
int32_t RealPrecision>
108template <
typename T,
int32_t RealPrecision>
111 if (mMinValue == mMaxValue)
115 value = Round(value);
117 const T& highValue = mMaxValue > mMinValue ? mMaxValue : mMinValue;
118 const T& lowValue = mMaxValue > mMinValue ? mMinValue : mMaxValue;
120 if (value > highValue)
122 if (value < lowValue)
128template <
typename T,
int32_t RealPrecision>
131 double doubleRealValue = normalizedValue * (double(mMaxValue) - double(mMinValue)) +
double(mMinValue);
134 T realValue = (0 != RealPrecision) ? Round(doubleRealValue) :
static_cast<T
>(doubleRealValue);
136 return ConstrainRealValue(realValue);
139template <
typename T,
int32_t RealPrecision>
142 realValue = ConstrainRealValue(realValue);
143 double normalizedValue = (mMaxValue == mMinValue) ? 0.5 : (
double(realValue) - double(mMinValue)) / (
double(mMaxValue) - double(mMinValue));
144 return normalizedValue;
Defines the taper conversion behavior for a parameter.
Various utility definitions for AAX.
#define AAX_OVERRIDE
override keyword macro
Definition: AAX.h:151
A linear taper conforming to AAX_ITaperDelegate.
Definition: AAX_CLinearTaperDelegate.h:58
AAX_CLinearTaperDelegate< T, RealPrecision > * Clone() const AAX_OVERRIDE
Constructs and returns a copy of the taper delegate.
Definition: AAX_CLinearTaperDelegate.h:103
T Round(double iValue) const
Definition: AAX_CLinearTaperDelegate.h:86
T NormalizedToReal(double normalizedValue) const AAX_OVERRIDE
Converts a normalized value to a real value.
Definition: AAX_CLinearTaperDelegate.h:129
T GetMaximumValue() const AAX_OVERRIDE
Returns the taper's maximum real value.
Definition: AAX_CLinearTaperDelegate.h:72
AAX_CLinearTaperDelegate(T minValue=0, T maxValue=1)
Constructs a Linear Taper with specified minimum and maximum values.
Definition: AAX_CLinearTaperDelegate.h:95
double RealToNormalized(T realValue) const AAX_OVERRIDE
Normalizes a real parameter value.
Definition: AAX_CLinearTaperDelegate.h:140
T GetMinimumValue() const AAX_OVERRIDE
Returns the taper's minimum real value.
Definition: AAX_CLinearTaperDelegate.h:71
T ConstrainRealValue(T value) const AAX_OVERRIDE
Applies a contraint to the value and returns the constrained value.
Definition: AAX_CLinearTaperDelegate.h:109
Definition: AAX_ITaperDelegate.h:86