diff options
author | Sybren A. Stüvel <sybren@stuvel.eu> | 2018-02-09 14:52:46 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@stuvel.eu> | 2018-02-09 14:52:46 +0300 |
commit | 908ee2e0f2145cf8204501c99dc1eea431f933cd (patch) | |
tree | b8303b9a01db5b8e393ac781cb56a72746f1d8c4 /release | |
parent | 3c09077e3b88a33d103875a7e0fd0f7ca0736046 (diff) |
Paint Dirt: remove operator call from Python
Instead of calling an operator I just call `collection.new()`. Moving the
code into a separate function also simplifies it. In its new form there is
also no undefined behaviour when me.vertex_colors is non-empty but without
active layer.
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/startup/bl_operators/vertexpaint_dirt.py | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/release/scripts/startup/bl_operators/vertexpaint_dirt.py b/release/scripts/startup/bl_operators/vertexpaint_dirt.py index 7042f42744c..f12b76a76ba 100644 --- a/release/scripts/startup/bl_operators/vertexpaint_dirt.py +++ b/release/scripts/startup/bl_operators/vertexpaint_dirt.py @@ -21,7 +21,17 @@ # <pep8 compliant> -# Contributor(s): Keith "Wahooney" Boshoff, Campbell Barton +# Contributor(s): Keith "Wahooney" Boshoff, Campbell Barton, Sybren A. Stüvel + + +def get_vcolor_layer_data(me): + for lay in me.vertex_colors: + if lay.active: + return lay.data + + lay = me.vertex_colors.new() + lay.active = True + return lay.data def applyVertexDirt(me, blur_iterations, blur_strength, clamp_dirt, clamp_clean, dirt_only): @@ -93,17 +103,7 @@ def applyVertexDirt(me, blur_iterations, blur_strength, clamp_dirt, clamp_clean, else: tone_range = 1.0 / tone_range - active_col_layer = None - - if me.vertex_colors: - for lay in me.vertex_colors: - if lay.active: - active_col_layer = lay.data - else: - bpy.ops.mesh.vertex_color_add() - me.vertex_colors[0].active = True - active_col_layer = me.vertex_colors[0].data - + active_col_layer = get_vcolor_layer_data(me) if not active_col_layer: return {'CANCELLED'} |