35#ifndef AAX_CLINEARTAPERDELEGATE_H
36#define AAX_CLINEARTAPERDELEGATE_H
69template <
typename T,
int32_t RealPrecision=0>
91 T
Round(
double iValue)
const;
98template <
typename T,
int32_t RealPrecision>
101 double precision = RealPrecision;
103 return static_cast<T
>(floor(iValue * precision + 0.5) / precision);
104 return static_cast<T
>(iValue);
107template <
typename T,
int32_t RealPrecision>
115template <
typename T,
int32_t RealPrecision>
121template <
typename T,
int32_t RealPrecision>
124 if (mMinValue == mMaxValue)
128 value = Round(value);
130 const T& highValue = mMaxValue > mMinValue ? mMaxValue : mMinValue;
131 const T& lowValue = mMaxValue > mMinValue ? mMinValue : mMaxValue;
133 if (value > highValue)
135 if (value < lowValue)
141template <
typename T,
int32_t RealPrecision>
144 double doubleRealValue = normalizedValue * (double(mMaxValue) - double(mMinValue)) +
double(mMinValue);
147 T realValue = (0 != RealPrecision) ? Round(doubleRealValue) :
static_cast<T
>(doubleRealValue);
149 return ConstrainRealValue(realValue);
152template <
typename T,
int32_t RealPrecision>
155 realValue = ConstrainRealValue(realValue);
156 double normalizedValue = (mMaxValue == mMinValue) ? 0.5 : (
double(realValue) - double(mMinValue)) / (
double(mMaxValue) - double(mMinValue));
157 return normalizedValue;
Defines the taper conversion behavior for a parameter.
Various utility definitions for AAX.
#define AAX_OVERRIDE
override keyword macro
Definition: AAX.h:164
A linear taper conforming to AAX_ITaperDelegate.
Definition: AAX_CLinearTaperDelegate.h:71
AAX_CLinearTaperDelegate< T, RealPrecision > * Clone() const AAX_OVERRIDE
Constructs and returns a copy of the taper delegate.
Definition: AAX_CLinearTaperDelegate.h:116
T Round(double iValue) const
Definition: AAX_CLinearTaperDelegate.h:99
T NormalizedToReal(double normalizedValue) const AAX_OVERRIDE
Converts a normalized value to a real value.
Definition: AAX_CLinearTaperDelegate.h:142
T GetMaximumValue() const AAX_OVERRIDE
Returns the taper's maximum real value.
Definition: AAX_CLinearTaperDelegate.h:85
AAX_CLinearTaperDelegate(T minValue=0, T maxValue=1)
Constructs a Linear Taper with specified minimum and maximum values.
Definition: AAX_CLinearTaperDelegate.h:108
double RealToNormalized(T realValue) const AAX_OVERRIDE
Normalizes a real parameter value.
Definition: AAX_CLinearTaperDelegate.h:153
T GetMinimumValue() const AAX_OVERRIDE
Returns the taper's minimum real value.
Definition: AAX_CLinearTaperDelegate.h:84
T ConstrainRealValue(T value) const AAX_OVERRIDE
Applies a contraint to the value and returns the constrained value.
Definition: AAX_CLinearTaperDelegate.h:122
Definition: AAX_ITaperDelegate.h:99