Added tilt transform for envelopes

This commit is contained in:
xenakios 2018-02-28 05:38:19 +02:00
parent e7011d4acb
commit b4c3b026e1
2 changed files with 10 additions and 3 deletions

View File

@ -335,7 +335,11 @@ bool EnvelopeComponent::keyPressed(const KeyPress & ev)
r = f(m_envelope->m_transform_y_sinus,0.01);
if (ev == 'G')
r = f(m_envelope->m_transform_y_sinus,-0.01);
if (r==true)
if (ev == 'Y')
r = f(m_envelope->m_transform_y_tilt,0.02);
if (ev == 'H')
r = f(m_envelope->m_transform_y_tilt,-0.02);
if (r==true)
{
repaint();
return true;

View File

@ -563,6 +563,7 @@ public:
double m_transform_y_shift = 0.0;
double m_transform_y_scale = 1.0;
double m_transform_y_sinus = 0.0;
double m_transform_y_tilt = 0.0;
inline double getTransformedValue(double x)
{
if (isTransformed() == false)
@ -574,12 +575,14 @@ public:
double diff = 0.5 - v;
double scaled = 0.5 - m_transform_y_scale * diff;
double shifted = scaled + m_transform_y_shift + m_transform_y_sinus*sin(2*3.141592653*(x-m_transform_x_shift)*8.0);
return jlimit(0.0,1.0,shifted);
double tiltline = 0.5+m_transform_y_tilt*x;
double tilted = shifted+tiltline;
return jlimit(0.0,1.0,tilted);
}
bool isTransformed() const
{
return m_transform_x_shift != 0.0 || m_transform_y_shift != 0.0
|| m_transform_y_scale!=1.0 || m_transform_y_sinus!=0.0;
|| m_transform_y_scale!=1.0 || m_transform_y_sinus!=0.0 || m_transform_y_tilt!=0.0;
}
private:
nodes_t m_nodes;