AAX SDK  2.4.1
Avid Audio Extensions Development Kit
List of all members | Public Member Functions | Protected Member Functions
AAX_CLinearTaperDelegate< T, RealPrecision > Class Template Reference

#include <AAX_CLinearTaperDelegate.h>

Inheritance diagram for AAX_CLinearTaperDelegate< T, RealPrecision >:
[legend]
Collaboration diagram for AAX_CLinearTaperDelegate< T, RealPrecision >:
[legend]

Description

template<typename T, int32_t RealPrecision = 0>
class AAX_CLinearTaperDelegate< T, RealPrecision >

A linear taper conforming to AAX_ITaperDelegate.

This taper spaces a parameter's real values evenly between its minimum and maximum, with a linear mapping between the parameter's real and normalized values.

RealPrecision
In addition to its type templatization, this taper includes a precision template parameter. RealPrecision is a multiplier that works in conjunction with the round() function to limit the precision of the real values provided by this taper. For example, if RealPrecision is 1000, it will round to the closest 0.001 when doing any sort of value conversion. If RealPrecision is 1, it will round to the nearest integer. If RealPrecision is 1000000, it will round to the nearest 0.000001. This is particularly useful for preventing things like 1.9999999 truncating down to 1 instead of rounding up to 2.

To accomplish this behavior, the taper multiplies its unrounded parameter values by RealPrecision, rounds the result to the nearest valid value, then divides RealPrecision back out.

Rounding will be disabled if RealPrecision is set to a value less than 1. This is the default.

Public Member Functions

 AAX_CLinearTaperDelegate (T minValue=0, T maxValue=1)
 Constructs a Linear Taper with specified minimum and maximum values. More...
 
AAX_CLinearTaperDelegate< T, RealPrecision > * Clone () const AAX_OVERRIDE
 Constructs and returns a copy of the taper delegate. More...
 
GetMinimumValue () const AAX_OVERRIDE
 Returns the taper's minimum real value. More...
 
GetMaximumValue () const AAX_OVERRIDE
 Returns the taper's maximum real value. More...
 
ConstrainRealValue (T value) const AAX_OVERRIDE
 Applies a contraint to the value and returns the constrained value. More...
 
NormalizedToReal (double normalizedValue) const AAX_OVERRIDE
 Converts a normalized value to a real value. More...
 
double RealToNormalized (T realValue) const AAX_OVERRIDE
 Normalizes a real parameter value. More...
 
- Public Member Functions inherited from AAX_ITaperDelegateBase
virtual ~AAX_ITaperDelegateBase ()
 Virtual destructor. More...
 

Protected Member Functions

Round (double iValue) const
 

Constructor & Destructor Documentation

◆ AAX_CLinearTaperDelegate()

template<typename T , int32_t RealPrecision>
AAX_CLinearTaperDelegate< T, RealPrecision >::AAX_CLinearTaperDelegate ( minValue = 0,
maxValue = 1 
)

Constructs a Linear Taper with specified minimum and maximum values.

Note
The parameter's default value should lie within the min to max range.
Parameters
[in]minValue
[in]maxValue

Member Function Documentation

◆ Clone()

template<typename T , int32_t RealPrecision>
AAX_CLinearTaperDelegate< T, RealPrecision > * AAX_CLinearTaperDelegate< T, RealPrecision >::Clone ( ) const
virtual

Constructs and returns a copy of the taper delegate.

In general, this method's implementation can use a simple copy constructor:

template <typename T>
AAX_CSubclassTaperDelegate<T>* AAX_CSubclassTaperDelegate<T>::Clone() const
{
return new AAX_CSubclassTaperDelegate(*this);
}

Implements AAX_ITaperDelegate< T >.

◆ GetMinimumValue()

template<typename T , int32_t RealPrecision = 0>
T AAX_CLinearTaperDelegate< T, RealPrecision >::GetMinimumValue ( ) const
inlinevirtual

Returns the taper's minimum real value.

Implements AAX_ITaperDelegate< T >.

◆ GetMaximumValue()

template<typename T , int32_t RealPrecision = 0>
T AAX_CLinearTaperDelegate< T, RealPrecision >::GetMaximumValue ( ) const
inlinevirtual

Returns the taper's maximum real value.

Implements AAX_ITaperDelegate< T >.

◆ ConstrainRealValue()

template<typename T , int32_t RealPrecision>
T AAX_CLinearTaperDelegate< T, RealPrecision >::ConstrainRealValue ( value) const
virtual

Applies a contraint to the value and returns the constrained value.

This method is useful if the taper requires a contraint beyond simple minimum and maximum real value limits.

Note
This is the function that should actually enforces the constraints in NormalizeToReal() and RealToNormalized().
Parameters
[in]valueThe unconstrained value

Implements AAX_ITaperDelegate< T >.

◆ NormalizedToReal()

template<typename T , int32_t RealPrecision>
T AAX_CLinearTaperDelegate< T, RealPrecision >::NormalizedToReal ( double  normalizedValue) const
virtual

Converts a normalized value to a real value.

This is where the actual taper algorithm is implemented.

This function should perform the exact inverse of RealToNormalized(), to within the roundoff precision of the individual taper implementation.

Parameters
[in]normalizedValueThe normalized value that will be converted

Implements AAX_ITaperDelegate< T >.

◆ RealToNormalized()

template<typename T , int32_t RealPrecision>
double AAX_CLinearTaperDelegate< T, RealPrecision >::RealToNormalized ( realValue) const
virtual

Normalizes a real parameter value.

This is where the actual taper algorithm is implemented.

This function should perform the exact inverse of NormalizedToReal(), to within the roundoff precision of the individual taper implementation.

Parameters
[in]realValueThe real parameter value that will be normalized

Implements AAX_ITaperDelegate< T >.

◆ Round()

template<typename T , int32_t RealPrecision>
T AAX_CLinearTaperDelegate< T, RealPrecision >::Round ( double  iValue) const
protected

The documentation for this class was generated from the following file: