fix initial direction

This commit is contained in:
2019-02-27 11:59:44 +01:00
parent d6501293e9
commit c33fcdf932
3 changed files with 13 additions and 9 deletions

View File

@@ -210,7 +210,11 @@ std::vector<StrokeSample> Stroke::compute_samples()
}
m_dir_kp = m_last_kp;
m_dir_dist = 0;
m_dir_valid = true;
if (!m_dir_valid)
{
m_dir_init = m_dir_angle + m_dir_ref_angle;
m_dir_valid = true;
}
}
bool need_dir = false;
@@ -225,20 +229,18 @@ std::vector<StrokeSample> Stroke::compute_samples()
auto s = randomize_sample(pos, pressure, m_dir_angle + m_dir_ref_angle);
if (s.valid())
{
if (m_brush->m_tip_angle_follow || (!m_dir_valid && m_brush->m_tip_angle_init))
if (m_brush->m_tip_angle_follow)
{
m_direction.add(m_dir_angle);
s.angle += m_direction.average() + m_dir_ref_angle;
m_prev_sample = s;
samples.push_back(s);
}
else
else if (m_brush->m_tip_angle_init)
{
if (m_brush->m_tip_angle_init)
s.angle += m_direction.average() + m_dir_ref_angle;
m_prev_sample = s;
samples.push_back(s);
s.angle = m_dir_init;
}
m_prev_sample = s;
samples.push_back(s);
}
else
{