Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSybren A. Stüvel <sybren@stuvel.eu>2018-02-09 14:52:46 +0300
committerSybren A. Stüvel <sybren@stuvel.eu>2018-02-09 14:52:46 +0300
commit908ee2e0f2145cf8204501c99dc1eea431f933cd (patch)
treeb8303b9a01db5b8e393ac781cb56a72746f1d8c4
parent3c09077e3b88a33d103875a7e0fd0f7ca0736046 (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.
-rw-r--r--release/scripts/startup/bl_operators/vertexpaint_dirt.py24
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'}