fix initial direction
This commit is contained in:
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user