25 #ifndef AAX_CLINEARTAPERDELEGATE_H
26 #define AAX_CLINEARTAPERDELEGATE_H
59 template <
typename T,
int32_t RealPrecision=0>
81 T
Round(
double iValue)
const;
88 template <
typename T,
int32_t RealPrecision>
91 double precision = RealPrecision;
93 return static_cast<T
>(floor(iValue * precision + 0.5) / precision);
94 return static_cast<T
>(iValue);
97 template <
typename T,
int32_t RealPrecision>
105 template <
typename T,
int32_t RealPrecision>
111 template <
typename T,
int32_t RealPrecision>
114 if (mMinValue == mMaxValue)
118 value = Round(value);
120 const T& highValue = mMaxValue > mMinValue ? mMaxValue : mMinValue;
121 const T& lowValue = mMaxValue > mMinValue ? mMinValue : mMaxValue;
123 if (value > highValue)
125 if (value < lowValue)
131 template <
typename T,
int32_t RealPrecision>
134 double doubleRealValue = normalizedValue * (double(mMaxValue) - double(mMinValue)) +
double(mMinValue);
137 T realValue = (0 != RealPrecision) ? Round(doubleRealValue) :
static_cast<T
>(doubleRealValue);
139 return ConstrainRealValue(realValue);
142 template <
typename T,
int32_t RealPrecision>
145 realValue = ConstrainRealValue(realValue);
146 double normalizedValue = (mMaxValue == mMinValue) ? 0.5 : (
double(realValue) - double(mMinValue)) / (
double(mMaxValue) - double(mMinValue));
147 return normalizedValue;
Various utility definitions for AAX.
#define AAX_OVERRIDE
override keyword macro
Definition: AAX.h:141
Defines the taper conversion behavior for a parameter.
A linear taper conforming to AAX_ITaperDelegate.
Definition: AAX_CLinearTaperDelegate.h:61
AAX_CLinearTaperDelegate< T, RealPrecision > * Clone() const AAX_OVERRIDE
Constructs and returns a copy of the taper delegate.
Definition: AAX_CLinearTaperDelegate.h:106
T Round(double iValue) const
Definition: AAX_CLinearTaperDelegate.h:89
T NormalizedToReal(double normalizedValue) const AAX_OVERRIDE
Converts a normalized value to a real value.
Definition: AAX_CLinearTaperDelegate.h:132
T GetMaximumValue() const AAX_OVERRIDE
Returns the taper's maximum real value.
Definition: AAX_CLinearTaperDelegate.h:75
AAX_CLinearTaperDelegate(T minValue=0, T maxValue=1)
Constructs a Linear Taper with specified minimum and maximum values.
Definition: AAX_CLinearTaperDelegate.h:98
double RealToNormalized(T realValue) const AAX_OVERRIDE
Normalizes a real parameter value.
Definition: AAX_CLinearTaperDelegate.h:143
T GetMinimumValue() const AAX_OVERRIDE
Returns the taper's minimum real value.
Definition: AAX_CLinearTaperDelegate.h:74
T ConstrainRealValue(T value) const AAX_OVERRIDE
Applies a contraint to the value and returns the constrained value.
Definition: AAX_CLinearTaperDelegate.h:112
Classes for conversion to and from normalized parameter values.
Definition: AAX_ITaperDelegate.h:89