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_kp = m_last_kp;
|
||||||
m_dir_dist = 0;
|
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;
|
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);
|
auto s = randomize_sample(pos, pressure, m_dir_angle + m_dir_ref_angle);
|
||||||
if (s.valid())
|
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);
|
m_direction.add(m_dir_angle);
|
||||||
s.angle += m_direction.average() + m_dir_ref_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_dir_init;
|
||||||
s.angle += m_direction.average() + m_dir_ref_angle;
|
|
||||||
m_prev_sample = s;
|
|
||||||
samples.push_back(s);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_prev_sample = s;
|
||||||
|
samples.push_back(s);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -160,6 +160,7 @@ public:
|
|||||||
float m_dir_dist = 0;
|
float m_dir_dist = 0;
|
||||||
float m_dir_step = 10;
|
float m_dir_step = 10;
|
||||||
float m_dir_angle = 0;
|
float m_dir_angle = 0;
|
||||||
|
float m_dir_init = 0;
|
||||||
float m_curve = 0;
|
float m_curve = 0;
|
||||||
float m_dist = 0;
|
float m_dist = 0;
|
||||||
float m_step = 0;
|
float m_step = 0;
|
||||||
|
|||||||
@@ -166,6 +166,7 @@ void NodePanelStroke::update_controls()
|
|||||||
m_jitter_val->m_value.x = b->m_jitter_val;
|
m_jitter_val->m_value.x = b->m_jitter_val;
|
||||||
m_jitter_aspect->m_value.x = b->m_jitter_aspect;
|
m_jitter_aspect->m_value.x = b->m_jitter_aspect;
|
||||||
m_tip_angle_follow->checked = b->m_tip_angle_follow;
|
m_tip_angle_follow->checked = b->m_tip_angle_follow;
|
||||||
|
m_tip_angle_init->checked = b->m_tip_angle_init;
|
||||||
m_tip_flow_pressure->checked = b->m_tip_flow_pressure;
|
m_tip_flow_pressure->checked = b->m_tip_flow_pressure;
|
||||||
m_tip_size_pressure->checked = b->m_tip_size_pressure;
|
m_tip_size_pressure->checked = b->m_tip_size_pressure;
|
||||||
m_jitter_aspect_bothaxis->checked = b->m_jitter_aspect_bothaxis;
|
m_jitter_aspect_bothaxis->checked = b->m_jitter_aspect_bothaxis;
|
||||||
|
|||||||
Reference in New Issue
Block a user