Exponential curve with variable curvature. More...
#include <Envelope.h>
Public Member Functions | |
Curve (Tp length, Tp curve, Tv end=Tv(1), Tv start=Tv(0)) | |
bool | done () const |
Returns whether curve has gone past end value. | |
Tv | end () const |
Get end value. | |
Tv | value () const |
Get current value. | |
Tv | operator() () |
Generates next value. | |
Curve & | reset (Tv start=Tv(0)) |
Reset envelope. | |
Curve & | value (const Tv &v) |
Set value. | |
Curve & | set (Tp length, Tp curve, Tv end=Tv(1), Tv start=Tv(0)) |
Set length and curvature. |
Exponential curve with variable curvature.
This curve will return values in the interval [start, end] starting from 0 and ending on 'end' over its length in samples. The last point is exclusive, so it takes length + 1 samples to reach 'end' inclusively. For iterations exceeding the specified length, the values returned will be unbounded.
Tv | value (sample) type |
Tp | parameter type |
Curve | ( | Tp | length, |
Tp | curve, | ||
Tv | end = Tv(1) , |
||
Tv | start = Tv(0) |
||
) |
[in] | length | length of curve in samples |
[in] | curve | curvature, c, where c > 0 approaches slowly (accelerates), c < 0 approaches rapidly (decelerates), and c = 0 approaches linearly |
[in] | end | end value |
[in] | start | start value |
Set length and curvature.
[in] | length | length of curve in samples |
[in] | curve | curvature; pos. approaches slowly, neg. approaches rapidly, 0 approaches linearly |
[in] | end | end value |
[in] | start | start value |