diff options
author | Campbell Barton <campbell@blender.org> | 2022-08-25 09:41:22 +0300 |
---|---|---|
committer | Campbell Barton <campbell@blender.org> | 2022-08-25 09:41:22 +0300 |
commit | 012db9e820439ddea03048f638bfa112d0ab05b0 (patch) | |
tree | 3e6e20553e55461c65d9e494c825d1e98eba08a3 /release/scripts/modules/bpy_extras | |
parent | de570dc87ed17cae2d2d1ed4347793c440266b4b (diff) |
Cleanup: replace dict with set for bmesh_utils.bmesh_linked_uv_islands
Also correct doc-string syntax.
Diffstat (limited to 'release/scripts/modules/bpy_extras')
-rw-r--r-- | release/scripts/modules/bpy_extras/bmesh_utils.py | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/release/scripts/modules/bpy_extras/bmesh_utils.py b/release/scripts/modules/bpy_extras/bmesh_utils.py index baf1f9d863f..5b5437ed358 100644 --- a/release/scripts/modules/bpy_extras/bmesh_utils.py +++ b/release/scripts/modules/bpy_extras/bmesh_utils.py @@ -6,6 +6,7 @@ __all__ = ( import bmesh + def match_uv(face, vert, uv, uv_layer): for loop in face.loops: if loop.vert == vert: @@ -17,12 +18,12 @@ def bmesh_linked_uv_islands(bm, uv_layer): """ Returns lists of face indices connected by UV islands. - For `bpy.types.Mesh`, use `mesh_linked_uv_islands` instead. + For meshes use :class:`bpy.types.Mesh.mesh_linked_uv_islands` instead. :arg bm: the bmesh used to group with. - :type bmesh: :class: `BMesh` + :type bmesh: :class:`BMesh` :arg uv_layer: the UV layer to source UVs from. - :type bmesh: :class: `BMLayerItem` + :type bmesh: :class:`BMLayerItem` :return: list of lists containing polygon indices :rtype: list """ @@ -30,27 +31,27 @@ def bmesh_linked_uv_islands(bm, uv_layer): result = [] bm.faces.ensure_lookup_table() - used = {} + used = set() for seed_face in bm.faces: seed_index = seed_face.index - if used.get(seed_index): - continue # Face has already been processed. - used[seed_index] = True + if seed_index in used: + continue # Face has already been processed. + used.add(seed_index) island = [seed_index] - stack = [seed_face] # Faces still to consider on this island. + stack = [seed_face] # Faces still to consider on this island. while stack: current_face = stack.pop() for loop in current_face.loops: v = loop.vert uv = loop[uv_layer].uv for f in v.link_faces: - if used.get(f.index): + if f.index in used: continue if not match_uv(f, v, uv, uv_layer): continue # `f` is part of island, add to island and stack - used[f.index] = True + used.add(f.index) island.append(f.index) stack.append(f) result.append(island) |