diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-04-13 12:41:30 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-04-13 12:41:30 +0400 |
commit | 1cf0358a334cf4cfce207d03ae2db2a93f2cd32c (patch) | |
tree | eb2311f6caa545281588664d6a3e5a740de856bb /release | |
parent | 6046500ee50f95bc3d9b3781bf5d6cb424f61ea6 (diff) |
bmesh todo: vertex dirtmap now working again.
also renamed Polygon helper property from 'loops' to loop_indices
Diffstat (limited to 'release')
4 files changed, 18 insertions, 19 deletions
diff --git a/release/scripts/modules/bpy_types.py b/release/scripts/modules/bpy_types.py index 131bb8ee77e..91d8f1b3467 100644 --- a/release/scripts/modules/bpy_types.py +++ b/release/scripts/modules/bpy_types.py @@ -457,7 +457,7 @@ class MeshPolygon(StructRNA): return [ord_ind(verts[i], verts[(i + 1) % vlen]) for i in range(vlen)] @property - def loops(self): + def loop_indices(self): start = self.loop_start end = start + self.loop_total return range(start, end) diff --git a/release/scripts/startup/bl_operators/uvcalc_follow_active.py b/release/scripts/startup/bl_operators/uvcalc_follow_active.py index 8d74af2986e..99ae5a3e436 100644 --- a/release/scripts/startup/bl_operators/uvcalc_follow_active.py +++ b/release/scripts/startup/bl_operators/uvcalc_follow_active.py @@ -60,8 +60,8 @@ def extend(obj, operator, EXTEND_MODE): vidx_target = face_target.vertices uv_layer = me.uv_loop_layers.active.data - uvs_source = [uv_layer[i].uv for i in face_source.loops] - uvs_target = [uv_layer[i].uv for i in face_target.loops] + uvs_source = [uv_layer[i].uv for i in face_source.loop_indices] + uvs_target = [uv_layer[i].uv for i in face_target.loop_indices] # vertex index is the key, uv is the value diff --git a/release/scripts/startup/bl_operators/uvcalc_smart_project.py b/release/scripts/startup/bl_operators/uvcalc_smart_project.py index c4a94e7f679..bb3086f711b 100644 --- a/release/scripts/startup/bl_operators/uvcalc_smart_project.py +++ b/release/scripts/startup/bl_operators/uvcalc_smart_project.py @@ -759,7 +759,7 @@ class thickface(object): __slost__= "v", "uv", "no", "area", "edge_keys" def __init__(self, face, uv_layer, mesh_verts): self.v = [mesh_verts[i] for i in face.vertices] - self.uv = [uv_layer[i].uv for i in face.loops] + self.uv = [uv_layer[i].uv for i in face.loop_indices] self.no = face.normal self.area = face.area diff --git a/release/scripts/startup/bl_operators/vertexpaint_dirt.py b/release/scripts/startup/bl_operators/vertexpaint_dirt.py index a5d361f206a..bfbde2f4b07 100644 --- a/release/scripts/startup/bl_operators/vertexpaint_dirt.py +++ b/release/scripts/startup/bl_operators/vertexpaint_dirt.py @@ -26,8 +26,6 @@ def applyVertexDirt(me, blur_iterations, blur_strength, clamp_dirt, clamp_clean, from mathutils import Vector from math import acos - #BPyMesh.meshCalcNormals(me) - vert_tone = [0.0] * len(me.vertices) min_tone = 180.0 @@ -95,7 +93,7 @@ def applyVertexDirt(me, blur_iterations, blur_strength, clamp_dirt, clamp_clean, tone_range = max_tone - min_tone if not tone_range: - return + return {'CANCELLED'} active_col_layer = None @@ -109,18 +107,17 @@ def applyVertexDirt(me, blur_iterations, blur_strength, clamp_dirt, clamp_clean, active_col_layer = me.vertex_colors[0].data if not active_col_layer: - return('CANCELLED', ) - - for i, f in enumerate(me.faces): - if not me.use_paint_mask or f.select: - - f_col = active_col_layer[i] + return - f_col = [f_col.color1, f_col.color2, f_col.color3, f_col.color4] + use_paint_mask = me.use_paint_mask - for j, v in enumerate(f.vertices): - col = f_col[j] - tone = vert_tone[me.vertices[v].index] + for i, p in enumerate(me.polygons): + if not use_paint_mask or p.select: + for loop_index in p.loop_indices: + loop = me.loops[loop_index] + v = loop.vertex_index + col = active_col_layer[loop_index].color + tone = vert_tone[v] tone = (tone - min_tone) / tone_range if dirt_only: @@ -131,6 +128,8 @@ def applyVertexDirt(me, blur_iterations, blur_strength, clamp_dirt, clamp_clean, col[1] = tone * col[1] col[2] = tone * col[2] + return {'FINISHED'} + import bpy from bpy.types import Operator @@ -185,8 +184,8 @@ class VertexPaintDirt(Operator): t = time.time() - applyVertexDirt(mesh, self.blur_iterations, self.blur_strength, radians(self.dirt_angle), radians(self.clean_angle), self.dirt_only) + ret = applyVertexDirt(mesh, self.blur_iterations, self.blur_strength, radians(self.dirt_angle), radians(self.clean_angle), self.dirt_only) print('Dirt calculated in %.6f' % (time.time() - t)) - return {'FINISHED'} + return ret |