OpenWareLaboratory
|
This class calculates transformation matrix once per audio block just like the CompositeTemplate. More...
Public Member Functions | |
void | computeMatrix () |
FloatMatrix | getMatrix () |
InterpolatedCompositeTransform (FloatMatrix matrix, FloatMatrix prev_matrix, FloatMatrix delta_matrix, size_t num_transforms, MatrixType **transforms) | |
ComplexFloat | process (ComplexFloat input) |
virtual ComplexFloat | process (ComplexFloat input)=0 |
void | process (ComplexFloatArray input, ComplexFloatArray output) |
void | resetMatrix () |
Static Public Member Functions | |
static InterpolatedCompositeTransform< matrix_order > * | create () |
template<typename... Transforms> | |
static InterpolatedCompositeTransform * | create (Transforms *... transform_ptrs) |
static void | destroy (InterpolatedCompositeTransform *transform) |
Static Protected Member Functions | |
static void | setTransform (MatrixType **transforms, size_t position) |
template<typename... Transforms> | |
static void | setTransform (MatrixType **transforms, size_t position, MatrixType *transform, Transforms *... transform_ptrs) |
Protected Attributes | |
FloatMatrix | delta_matrix |
size_t | num_transforms |
FloatMatrix | prev_matrix |
MatrixType ** | transforms |
This class calculates transformation matrix once per audio block just like the CompositeTemplate.
In addition to that it calculates second matrix with delta values used to smoothly interpolate between matrix states at audio rate. This adds one matrix addition per sample
Definition at line 277 of file ComplexTransform.h.
|
inline |
Definition at line 286 of file ComplexTransform.h.
Referenced by InterpolatedCompositeTransform< matrix_order >::create().
|
inline |
Definition at line 310 of file ComplexTransform.h.
References FloatMatrix::copyFrom(), AbstractMatrix< matrix_order >::getMatrix(), FloatMatrix::multiply(), InterpolatedCompositeTransform< matrix_order >::num_transforms, and InterpolatedCompositeTransform< matrix_order >::transforms.
Referenced by InterpolatedCompositeTransform< matrix_order >::process().
|
inlinestaticinherited |
Definition at line 63 of file ComplexTransform.h.
|
inlinestatic |
Definition at line 318 of file ComplexTransform.h.
References FloatMatrix::create(), InterpolatedCompositeTransform< matrix_order >::delta_matrix, InterpolatedCompositeTransform< matrix_order >::InterpolatedCompositeTransform(), InterpolatedCompositeTransform< matrix_order >::prev_matrix, InterpolatedCompositeTransform< matrix_order >::setTransform(), and InterpolatedCompositeTransform< matrix_order >::transforms.
|
inlinestatic |
|
inlineinherited |
Definition at line 16 of file ComplexTransform.h.
References AbstractMatrix< matrix_order >::matrix.
Referenced by CompositeTransform< matrix_order >::computeMatrix(), InterpolatedCompositeTransform< matrix_order >::computeMatrix(), Reflection2D< matrix_order >::reflect(), Rotation2D< matrix_order >::rotate(), Scale2D< matrix_order >::scale(), Shear2D< matrix_order >::shearX(), Shear2D< matrix_order >::shearY(), Squeeze2D< matrix_order >::squeeze(), Stretch2D< matrix_order >::stretch(), and Translation2D< matrix_order >::translate().
|
inlinevirtualinherited |
Implements ComplexSignalProcessor.
Definition at line 41 of file ComplexTransform.h.
|
inherited |
|
inlinevirtual |
Reimplemented from ComplexSignalProcessor.
Definition at line 295 of file ComplexTransform.h.
References FloatMatrix::add(), InterpolatedCompositeTransform< matrix_order >::computeMatrix(), FloatMatrix::copyFrom(), InterpolatedCompositeTransform< matrix_order >::delta_matrix, SimpleArray< T >::getSize(), InterpolatedCompositeTransform< matrix_order >::prev_matrix, and TransformationMatrix< matrix_order, InterpolatedCompositeTransform< matrix_order > >::process().
|
inlineinherited |
Definition at line 19 of file ComplexTransform.h.
References FloatMatrix::clear(), and AbstractMatrix< matrix_order >::matrix.
Referenced by AbstractMatrix< matrix_order >::AbstractMatrix().
|
inlinestaticprotected |
Definition at line 347 of file ComplexTransform.h.
|
inlinestaticprotected |
Definition at line 341 of file ComplexTransform.h.
References InterpolatedCompositeTransform< matrix_order >::transforms.
Referenced by InterpolatedCompositeTransform< matrix_order >::create().
|
protected |
Definition at line 338 of file ComplexTransform.h.
Referenced by InterpolatedCompositeTransform< matrix_order >::create(), InterpolatedCompositeTransform< matrix_order >::destroy(), and InterpolatedCompositeTransform< matrix_order >::process().
|
protected |
Definition at line 337 of file ComplexTransform.h.
Referenced by InterpolatedCompositeTransform< matrix_order >::computeMatrix().
|
protected |
Definition at line 338 of file ComplexTransform.h.
Referenced by InterpolatedCompositeTransform< matrix_order >::create(), InterpolatedCompositeTransform< matrix_order >::destroy(), and InterpolatedCompositeTransform< matrix_order >::process().
|
protected |
Definition at line 336 of file ComplexTransform.h.
Referenced by InterpolatedCompositeTransform< matrix_order >::computeMatrix(), InterpolatedCompositeTransform< matrix_order >::create(), InterpolatedCompositeTransform< matrix_order >::destroy(), and InterpolatedCompositeTransform< matrix_order >::setTransform().