diff options
Diffstat (limited to 'magic_uv/op/align_uv_cursor.py')
-rw-r--r-- | magic_uv/op/align_uv_cursor.py | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/magic_uv/op/align_uv_cursor.py b/magic_uv/op/align_uv_cursor.py index 2b7f1491..696b7cb8 100644 --- a/magic_uv/op/align_uv_cursor.py +++ b/magic_uv/op/align_uv_cursor.py @@ -4,8 +4,8 @@ __author__ = "Nutti <nutti.metro@gmail.com>" __status__ = "production" -__version__ = "6.5" -__date__ = "6 Mar 2021" +__version__ = "6.6" +__date__ = "22 Apr 2022" import bpy from mathutils import Vector @@ -175,7 +175,8 @@ class MUV_OT_AlignUVCursor(bpy.types.Operator): uv_layer = bm.loops.layers.uv.verify() for f in bm.faces: - if not f.select: + if (not context.tool_settings.use_uv_select_sync and + not f.select): continue for l in f.loops: uv = l[uv_layer].uv @@ -204,18 +205,30 @@ class MUV_OT_AlignUVCursor(bpy.types.Operator): return None uv_layer = bm.loops.layers.uv.verify() - for f in bm.faces: - if not f.select: - continue - for l in f.loops: - if not l[uv_layer].select: + if context.tool_settings.use_uv_select_sync: + for v in bm.verts: + if not v.select: continue - uv = l[uv_layer].uv - max_.x = max(max_.x, uv.x) - max_.y = max(max_.y, uv.y) - min_.x = min(min_.x, uv.x) - min_.y = min(min_.y, uv.y) - no_selected_face = False + for l in v.link_loops: + uv = l[uv_layer].uv + max_.x = max(max_.x, uv.x) + max_.y = max(max_.y, uv.y) + min_.x = min(min_.x, uv.x) + min_.y = min(min_.y, uv.y) + no_selected_face = False + else: + for f in bm.faces: + if not f.select: + continue + for l in f.loops: + if not l[uv_layer].select: + continue + uv = l[uv_layer].uv + max_.x = max(max_.x, uv.x) + max_.y = max(max_.y, uv.y) + min_.x = min(min_.x, uv.x) + min_.y = min(min_.y, uv.y) + no_selected_face = False if no_selected_face: max_ = Vector((1.0, 1.0)) min_ = Vector((0.0, 0.0)) |