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:
authorCampbell Barton <campbell@blender.org>2022-08-25 09:41:22 +0300
committerCampbell Barton <campbell@blender.org>2022-08-25 09:41:22 +0300
commit012db9e820439ddea03048f638bfa112d0ab05b0 (patch)
tree3e6e20553e55461c65d9e494c825d1e98eba08a3 /release/scripts/modules/bpy_extras/bmesh_utils.py
parentde570dc87ed17cae2d2d1ed4347793c440266b4b (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/bmesh_utils.py')
-rw-r--r--release/scripts/modules/bpy_extras/bmesh_utils.py21
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)