add dual brush roundness property
This commit is contained in:
@@ -278,7 +278,7 @@ std::vector<std::shared_ptr<Brush>> ABR::compute_brushes(const std::string& path
|
||||
b->m_dual_flow = .90f;
|
||||
b->m_dual_opacity = 1.f;
|
||||
|
||||
//b->m_tip_aspect = (1.f - samp->value<UnitFloat>("Rndn") * 0.01) * 0.5f + 0.5f;
|
||||
b->m_dual_aspect = (1.f - samp->value<UnitFloat>("Rndn") * 0.01) * 0.5f + 0.5f;
|
||||
b->m_dual_size = samp->value<UnitFloat>("Dmtr") / b->m_tip_size;
|
||||
b->m_dual_spacing = samp->value<UnitFloat>("Spcn") * 0.01f;
|
||||
|
||||
|
||||
47
src/brush.h
47
src/brush.h
@@ -24,6 +24,7 @@ public:
|
||||
|
||||
glm::vec4 m_tip_color = { 0, 0, 0, 1 };
|
||||
glm::vec2 m_tip_scale = { 1.f, 1.f };
|
||||
glm::vec2 m_dual_scale = { 1.f, 1.f };
|
||||
float m_tip_size = 50;
|
||||
float m_tip_spacing = .25;
|
||||
float m_tip_flow = 1.f;
|
||||
@@ -44,47 +45,47 @@ public:
|
||||
float m_jitter_scale = 0;
|
||||
float m_jitter_angle = 0;
|
||||
float m_jitter_scatter = 0;
|
||||
bool m_jitter_scatter_bothaxis = false;
|
||||
bool m_jitter_scatter_bothaxis = false;
|
||||
float m_jitter_flow = 0;
|
||||
float m_jitter_opacity = 0;
|
||||
float m_jitter_hue = 0;
|
||||
float m_jitter_sat = 0;
|
||||
float m_jitter_val = 0;
|
||||
int m_blend_mode = 0;
|
||||
int m_blend_mode = 0;
|
||||
|
||||
bool m_tip_invert = false;
|
||||
bool m_tip_flipx = false;
|
||||
bool m_tip_flipy = false;
|
||||
bool m_pattern_enabled = false;
|
||||
bool m_dual_enabled = false;
|
||||
int m_dual_blend_mode = 1;
|
||||
bool m_dual_randflip = false;
|
||||
bool m_tip_invert = false;
|
||||
bool m_tip_flipx = false;
|
||||
bool m_tip_flipy = false;
|
||||
bool m_pattern_enabled = false;
|
||||
bool m_dual_enabled = false;
|
||||
int m_dual_blend_mode = 1;
|
||||
bool m_dual_randflip = false;
|
||||
float m_dual_size = .75;
|
||||
float m_dual_spacing = .25;
|
||||
float m_dual_scatter = 0;
|
||||
bool m_dual_scatter_bothaxis = false;
|
||||
bool m_dual_invert = false;
|
||||
bool m_dual_flipx = false;
|
||||
bool m_dual_flipy = false;
|
||||
bool m_tip_randflipx = false;
|
||||
bool m_tip_randflipy = false;
|
||||
bool m_dual_scatter_bothaxis = false;
|
||||
bool m_dual_invert = false;
|
||||
bool m_dual_flipx = false;
|
||||
bool m_dual_flipy = false;
|
||||
bool m_tip_randflipx = false;
|
||||
bool m_tip_randflipy = false;
|
||||
float m_tip_aspect = 0.5f;
|
||||
float m_dual_flow = .75f;
|
||||
float m_dual_opacity = 1.f;
|
||||
float m_dual_rotate = .25f;
|
||||
float m_dual_angle = 0;
|
||||
int m_dual_count = 1;
|
||||
glm::vec2 m_dual_scale = { 1.f, 1.f };
|
||||
float m_dual_aspect = 0.5f;
|
||||
int m_dual_count = 1;
|
||||
|
||||
int m_pattern_blend_mode = 1;
|
||||
bool m_pattern_eachsample = false;
|
||||
bool m_pattern_invert = false;
|
||||
bool m_pattern_flipx = false;
|
||||
bool m_pattern_flipy = false;
|
||||
int m_pattern_blend_mode = 1;
|
||||
bool m_pattern_eachsample = false;
|
||||
bool m_pattern_invert = false;
|
||||
bool m_pattern_flipx = false;
|
||||
bool m_pattern_flipy = false;
|
||||
float m_pattern_scale = .25f;
|
||||
float m_pattern_brightness = 0.5f;
|
||||
float m_pattern_contrast = 0.5f;
|
||||
bool m_pattern_rand_offset = false;
|
||||
bool m_pattern_rand_offset = false;
|
||||
float m_pattern_depth = 1.f;
|
||||
|
||||
bool load_tip(const std::string& path, const std::string& thumb);
|
||||
|
||||
@@ -921,6 +921,7 @@ void Canvas::stroke_start(glm::vec3 point, float pressure)
|
||||
dual_brush->m_jitter_scatter_bothaxis = m_current_brush->m_dual_scatter_bothaxis;
|
||||
dual_brush->m_jitter_angle = m_current_brush->m_dual_rotate;
|
||||
dual_brush->m_tip_texture = m_current_brush->m_dual_texture;
|
||||
dual_brush->m_tip_aspect = m_current_brush->m_dual_aspect;
|
||||
m_dual_stroke = std::make_unique<Stroke>();
|
||||
m_dual_stroke->m_camera.rot = m_cam_rot;
|
||||
m_dual_stroke->m_camera.fov = m_cam_fov;
|
||||
|
||||
@@ -536,6 +536,7 @@ bool NodePanelBrushPreset::save()
|
||||
i.m_dual_rotate = b->m_dual_rotate;
|
||||
i.m_dual_angle = b->m_dual_angle;
|
||||
i.m_dual_count = b->m_dual_count;
|
||||
i.m_dual_aspect = b->m_dual_aspect;
|
||||
i.m_dual_scale = b->m_dual_scale;
|
||||
|
||||
i.m_pattern_eachsample = b->m_pattern_eachsample;
|
||||
@@ -638,6 +639,7 @@ bool NodePanelBrushPreset::restore()
|
||||
b->m_dual_rotate = i.m_dual_rotate;
|
||||
b->m_dual_angle = i.m_dual_angle;
|
||||
b->m_dual_count = i.m_dual_count;
|
||||
b->m_dual_aspect = i.m_dual_aspect;
|
||||
b->m_dual_scale = i.m_dual_scale;
|
||||
|
||||
b->m_pattern_eachsample = i.m_pattern_eachsample;
|
||||
|
||||
@@ -105,6 +105,7 @@ class NodePanelBrushPreset : public Node
|
||||
|
||||
glm::vec4 m_tip_color{ 0, 0, 0, 1 };
|
||||
glm::vec2 m_tip_scale = { 1.f, 1.f };
|
||||
glm::vec2 m_dual_scale = { 1.f, 1.f };
|
||||
float m_tip_size = 0;
|
||||
float m_tip_spacing = 0;
|
||||
float m_tip_flow = 0;
|
||||
@@ -125,37 +126,37 @@ class NodePanelBrushPreset : public Node
|
||||
float m_jitter_scale = 0;
|
||||
float m_jitter_angle = 0;
|
||||
float m_jitter_scatter = 0;
|
||||
bool m_jitter_scatter_bothaxis = false;
|
||||
bool m_jitter_scatter_bothaxis = false;
|
||||
float m_jitter_flow = 0;
|
||||
float m_jitter_opacity = 0;
|
||||
float m_jitter_hue = 0;
|
||||
float m_jitter_sat = 0;
|
||||
float m_jitter_val = 0;
|
||||
int m_blend_mode = 0;
|
||||
float m_dual_aspect = 0.5f;
|
||||
int m_blend_mode = 0;
|
||||
|
||||
bool m_tip_invert = false;
|
||||
bool m_tip_flipx = false;
|
||||
bool m_tip_flipy = false;
|
||||
bool m_pattern_enabled = false;
|
||||
bool m_dual_enabled = false;
|
||||
int m_dual_blend_mode = 0;
|
||||
bool m_dual_randflip = false;
|
||||
bool m_tip_invert = false;
|
||||
bool m_tip_flipx = false;
|
||||
bool m_tip_flipy = false;
|
||||
bool m_pattern_enabled = false;
|
||||
bool m_dual_enabled = false;
|
||||
int m_dual_blend_mode = 0;
|
||||
bool m_dual_randflip = false;
|
||||
float m_dual_size = 0;
|
||||
float m_dual_spacing = 0;
|
||||
float m_dual_scatter = 0;
|
||||
bool m_dual_scatter_bothaxis = false;
|
||||
bool m_dual_invert = false;
|
||||
bool m_dual_flipx = false;
|
||||
bool m_dual_flipy = false;
|
||||
bool m_tip_randflipx = false;
|
||||
bool m_tip_randflipy = false;
|
||||
bool m_dual_scatter_bothaxis = false;
|
||||
bool m_dual_invert = false;
|
||||
bool m_dual_flipx = false;
|
||||
bool m_dual_flipy = false;
|
||||
bool m_tip_randflipx = false;
|
||||
bool m_tip_randflipy = false;
|
||||
float m_tip_aspect = 0;
|
||||
float m_dual_flow = .75f;
|
||||
float m_dual_opacity = 1.f;
|
||||
float m_dual_rotate = .25f;
|
||||
float m_dual_angle = 0;
|
||||
int m_dual_count = 1;
|
||||
glm::vec2 m_dual_scale = { 1.f, 1.f };
|
||||
int m_dual_count = 1;
|
||||
|
||||
bool m_pattern_eachsample = false;
|
||||
bool m_pattern_invert = false;
|
||||
|
||||
@@ -269,6 +269,7 @@ void NodeStrokePreview::draw_stroke()
|
||||
dual_brush->m_jitter_scatter_bothaxis = b->m_dual_scatter_bothaxis;
|
||||
dual_brush->m_jitter_angle = b->m_dual_rotate;
|
||||
dual_brush->m_tip_texture = b->m_dual_texture;
|
||||
dual_brush->m_tip_aspect = b->m_dual_aspect;
|
||||
|
||||
if (b->m_dual_enabled)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user