From 0023a36b40d2df9b05c45a4634f76ba4a179f349 Mon Sep 17 00:00:00 2001 From: Nutti Date: Wed, 2 Aug 2017 21:33:43 +0900 Subject: Magic UV: Fix bugs, add copy/paste seams option to Copy/Paste UV, Transfer UV --- uv_magic_uv/__init__.py | 8 +++--- uv_magic_uv/muv_common.py | 4 +-- uv_magic_uv/muv_cpuv_ops.py | 49 +++++++++++++++++++++++++++++++---- uv_magic_uv/muv_cpuv_selseq_ops.py | 37 +++++++++++++++++++++----- uv_magic_uv/muv_fliprot_ops.py | 25 +++++++++++++++--- uv_magic_uv/muv_menu.py | 4 +-- uv_magic_uv/muv_mirroruv_ops.py | 4 +-- uv_magic_uv/muv_mvuv_ops.py | 4 +-- uv_magic_uv/muv_packuv_ops.py | 4 +-- uv_magic_uv/muv_preferences.py | 4 +-- uv_magic_uv/muv_preserve_uv_aspect.py | 4 +-- uv_magic_uv/muv_props.py | 6 +++-- uv_magic_uv/muv_texlock_ops.py | 4 +-- uv_magic_uv/muv_texproj_ops.py | 4 +-- uv_magic_uv/muv_transuv_ops.py | 22 ++++++++++++---- uv_magic_uv/muv_unwrapconst_ops.py | 4 +-- uv_magic_uv/muv_uvbb_ops.py | 4 +-- uv_magic_uv/muv_wsuv_ops.py | 17 +++++------- 18 files changed, 150 insertions(+), 58 deletions(-) diff --git a/uv_magic_uv/__init__.py b/uv_magic_uv/__init__.py index 01d3582a..6b9b6d2b 100644 --- a/uv_magic_uv/__init__.py +++ b/uv_magic_uv/__init__.py @@ -20,16 +20,16 @@ __author__ = "Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" bl_info = { "name": "Magic UV", "author": "Nutti, Mifth, Jace Priester, kgeogeo, mem, " "Keith (Wahooney) Boshoff, McBuff, MaxRobinot", - "version": (4, 3, 1), - "blender": (2, 77, 0), + "version": (4, 4, 0), + "blender": (2, 79, 0), "location": "See Add-ons Preferences", "description": "UV Manipulator Tools. See Add-ons Preferences for details", "warning": "", diff --git a/uv_magic_uv/muv_common.py b/uv_magic_uv/muv_common.py index 121915e8..ff2fe3f0 100644 --- a/uv_magic_uv/muv_common.py +++ b/uv_magic_uv/muv_common.py @@ -20,8 +20,8 @@ __author__ = "Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" import bpy from . import muv_props diff --git a/uv_magic_uv/muv_cpuv_ops.py b/uv_magic_uv/muv_cpuv_ops.py index 3ef1a9de..257d686e 100644 --- a/uv_magic_uv/muv_cpuv_ops.py +++ b/uv_magic_uv/muv_cpuv_ops.py @@ -20,8 +20,8 @@ __author__ = "Nutti , Jace Priester" __status__ = "production" -__version__ = "4.3.1" -__date__ = "1 Apr 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" import bpy import bmesh @@ -80,12 +80,15 @@ class MUV_CPUVCopyUV(bpy.types.Operator): # get selected face props.src_uvs = [] props.src_pin_uvs = [] + props.src_seams = [] for face in bm.faces: if face.select: uvs = [l[uv_layer].uv.copy() for l in face.loops] pin_uvs = [l[uv_layer].pin_uv for l in face.loops] + seams = [l.edge.seam for l in face.loops] props.src_uvs.append(uvs) props.src_pin_uvs.append(pin_uvs) + props.src_seams.append(seams) if len(props.src_uvs) == 0 or len(props.src_pin_uvs) == 0: self.report({'WARNING'}, "No faces are selected") return {'CANCELLED'} @@ -153,6 +156,11 @@ class MUV_CPUVPasteUV(bpy.types.Operator): min=0, max=30 ) + copy_seams = BoolProperty( + name="Copy Seams", + description="Copy Seams", + default=True + ) def execute(self, context): props = context.scene.muv_props.cpuv @@ -182,14 +190,17 @@ class MUV_CPUVPasteUV(bpy.types.Operator): # get selected face dest_uvs = [] dest_pin_uvs = [] + dest_seams = [] dest_face_indices = [] for face in bm.faces: if face.select: dest_face_indices.append(face.index) uvs = [l[uv_layer].uv.copy() for l in face.loops] pin_uvs = [l[uv_layer].pin_uv for l in face.loops] + seams = [l.edge.seam for l in face.loops] dest_uvs.append(uvs) dest_pin_uvs.append(pin_uvs) + dest_seams.append(seams) if len(dest_uvs) == 0 or len(dest_pin_uvs) == 0: self.report({'WARNING'}, "No faces are selected") return {'CANCELLED'} @@ -205,37 +216,48 @@ class MUV_CPUVPasteUV(bpy.types.Operator): for i, idx in enumerate(dest_face_indices): suv = None spuv = None + ss = None duv = None if self.strategy == 'N_N': suv = props.src_uvs[i] spuv = props.src_pin_uvs[i] + ss = props.src_seams[i] duv = dest_uvs[i] elif self.strategy == 'N_M': suv = props.src_uvs[i % len(props.src_uvs)] spuv = props.src_pin_uvs[i % len(props.src_pin_uvs)] + ss = props.src_seams[i % len(props.src_seams)] duv = dest_uvs[i] if len(suv) != len(duv): self.report({'WARNING'}, "Some faces are different size") return {'CANCELLED'} suvs_fr = [uv for uv in suv] spuvs_fr = [pin_uv for pin_uv in spuv] + ss_fr = [s for s in ss] # flip UVs if self.flip_copied_uv is True: suvs_fr.reverse() spuvs_fr.reverse() + ss_fr.reverse() # rotate UVs for _ in range(self.rotate_copied_uv): uv = suvs_fr.pop() pin_uv = spuvs_fr.pop() + s = ss_fr.pop() suvs_fr.insert(0, uv) spuvs_fr.insert(0, pin_uv) + ss_fr.insert(0, s) # paste UVs - for l, suv, spuv in zip(bm.faces[idx].loops, suvs_fr, spuvs_fr): + for l, suv, spuv, ss in zip(bm.faces[idx].loops, suvs_fr, spuvs_fr, ss_fr): l[uv_layer].uv = suv l[uv_layer].pin_uv = spuv + if self.copy_seams is True: + l.edge.seam = ss self.report({'INFO'}, "%d face(s) are copied" % len(dest_uvs)) bmesh.update_edit_mesh(obj.data) + if self.copy_seams is True: + obj.data.show_edge_seams = True return {'FINISHED'} @@ -305,11 +327,14 @@ class MUV_CPUVObjCopyUV(bpy.types.Operator): # get selected face props.src_uvs = [] props.src_pin_uvs = [] + props.src_seams = [] for face in bm.faces: uvs = [l[uv_layer].uv.copy() for l in face.loops] pin_uvs = [l[uv_layer].pin_uv for l in face.loops] + seams = [l.edge.seam for l in face.loops] props.src_uvs.append(uvs) props.src_pin_uvs.append(pin_uvs) + props.src_seams.append(seams) self.report({'INFO'}, "%s's UV coordinates are copied" % (obj.name)) @@ -349,6 +374,11 @@ class MUV_CPUVObjPasteUV(bpy.types.Operator): bl_options = {'REGISTER', 'UNDO'} uv_map = StringProperty(options={'HIDDEN'}) + copy_seams = BoolProperty( + name="Copy Seams", + description="Copy Seams", + default=True + ) @memorize_view_3d_mode def execute(self, context): @@ -393,13 +423,16 @@ class MUV_CPUVObjPasteUV(bpy.types.Operator): # get selected face dest_uvs = [] dest_pin_uvs = [] + dest_seams = [] dest_face_indices = [] for face in bm.faces: dest_face_indices.append(face.index) uvs = [l[uv_layer].uv.copy() for l in face.loops] pin_uvs = [l[uv_layer].pin_uv for l in face.loops] + seams = [l.edge.seam for l in face.loops] dest_uvs.append(uvs) dest_pin_uvs.append(pin_uvs) + dest_seams.append(seams) if len(props.src_uvs) != len(dest_uvs): self.report( {'WARNING'}, @@ -413,19 +446,25 @@ class MUV_CPUVObjPasteUV(bpy.types.Operator): for i, idx in enumerate(dest_face_indices): suv = props.src_uvs[i] spuv = props.src_pin_uvs[i] + ss = props.src_seams[i] duv = dest_uvs[i] if len(suv) != len(duv): self.report({'WARNING'}, "Some faces are different size") return {'CANCELLED'} suvs_fr = [uv for uv in suv] spuvs_fr = [pin_uv for pin_uv in spuv] + ss_fr = [s for s in ss] # paste UVs - for l, suv, spuv in zip( - bm.faces[idx].loops, suvs_fr, spuvs_fr): + for l, suv, spuv, ss in zip( + bm.faces[idx].loops, suvs_fr, spuvs_fr, ss_fr): l[uv_layer].uv = suv l[uv_layer].pin_uv = spuv + if self.copy_seams is True: + l.edge.seam = ss bmesh.update_edit_mesh(obj.data) + if self.copy_seams is True: + obj.data.show_edge_seams = True self.report( {'INFO'}, "%s's UV coordinates are pasted" % (obj.name)) diff --git a/uv_magic_uv/muv_cpuv_selseq_ops.py b/uv_magic_uv/muv_cpuv_selseq_ops.py index bbb9de5a..5a1154a9 100644 --- a/uv_magic_uv/muv_cpuv_selseq_ops.py +++ b/uv_magic_uv/muv_cpuv_selseq_ops.py @@ -20,8 +20,8 @@ __author__ = "Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" import bpy import bmesh @@ -73,12 +73,15 @@ class MUV_CPUVSelSeqCopyUV(bpy.types.Operator): # get selected face props.src_uvs = [] props.src_pin_uvs = [] + props.src_seams = [] for hist in bm.select_history: if isinstance(hist, bmesh.types.BMFace) and hist.select: uvs = [l[uv_layer].uv.copy() for l in hist.loops] pin_uvs = [l[uv_layer].pin_uv for l in hist.loops] + seams = [l.edge.seam for l in hist.loops] props.src_uvs.append(uvs) props.src_pin_uvs.append(pin_uvs) + props.src_seams.append(seams) if len(props.src_uvs) == 0 or len(props.src_pin_uvs) == 0: self.report({'WARNING'}, "No faces are selected") return {'CANCELLED'} @@ -128,16 +131,24 @@ class MUV_CPUVSelSeqPasteUV(bpy.types.Operator): ('N_N', 'N:N', 'Number of faces must be equal to source'), ('N_M', 'N:M', 'Number of faces must not be equal to source') ], - default="N_M") + default="N_M" + ) flip_copied_uv = BoolProperty( name="Flip Copied UV", description="Flip Copied UV...", - default=False) + default=False + ) rotate_copied_uv = IntProperty( default=0, name="Rotate Copied UV", min=0, - max=30) + max=30 + ) + copy_seams = BoolProperty( + name="Copy Seams", + description="Copy Seams", + default=True + ) def execute(self, context): props = context.scene.muv_props.cpuv_selseq @@ -170,14 +181,17 @@ class MUV_CPUVSelSeqPasteUV(bpy.types.Operator): # get selected face dest_uvs = [] dest_pin_uvs = [] + dest_seams = [] dest_face_indices = [] for hist in bm.select_history: if isinstance(hist, bmesh.types.BMFace) and hist.select: dest_face_indices.append(hist.index) uvs = [l[uv_layer].uv.copy() for l in hist.loops] pin_uvs = [l[uv_layer].pin_uv for l in hist.loops] + seams = [l.edge.seam for l in hist.loops] dest_uvs.append(uvs) dest_pin_uvs.append(pin_uvs) + dest_seams.append(seams) if len(dest_uvs) == 0 or len(dest_pin_uvs) == 0: self.report({'WARNING'}, "No faces are selected") return {'CANCELLED'} @@ -193,38 +207,49 @@ class MUV_CPUVSelSeqPasteUV(bpy.types.Operator): for i, idx in enumerate(dest_face_indices): suv = None spuv = None + ss = None duv = None if self.strategy == 'N_N': suv = props.src_uvs[i] spuv = props.src_pin_uvs[i] + ss = props.src_seams[i] duv = dest_uvs[i] elif self.strategy == 'N_M': suv = props.src_uvs[i % len(props.src_uvs)] spuv = props.src_pin_uvs[i % len(props.src_pin_uvs)] + ss = props.src_seams[i % len(props.src_seams)] duv = dest_uvs[i] if len(suv) != len(duv): self.report({'WARNING'}, "Some faces are different size") return {'CANCELLED'} suvs_fr = [uv for uv in suv] spuvs_fr = [pin_uv for pin_uv in spuv] + ss_fr = [s for s in ss] # flip UVs if self.flip_copied_uv is True: suvs_fr.reverse() spuvs_fr.reverse() + ss_fr.reverse() # rotate UVs for _ in range(self.rotate_copied_uv): uv = suvs_fr.pop() pin_uv = spuvs_fr.pop() + s = ss_fr.pop() suvs_fr.insert(0, uv) spuvs_fr.insert(0, pin_uv) + ss_fr.insert(0, s) # paste UVs - for l, suv, spuv in zip(bm.faces[idx].loops, suvs_fr, spuvs_fr): + for l, suv, spuv, ss in zip(bm.faces[idx].loops, suvs_fr, spuvs_fr, ss_fr): l[uv_layer].uv = suv l[uv_layer].pin_uv = spuv + if self.copy_seams is True: + l.edge.seam = ss self.report({'INFO'}, "%d face(s) are copied" % len(dest_uvs)) bmesh.update_edit_mesh(obj.data) + if self.copy_seams is True: + obj.data.show_edge_seams = True return {'FINISHED'} diff --git a/uv_magic_uv/muv_fliprot_ops.py b/uv_magic_uv/muv_fliprot_ops.py index 2c72d643..7b8b6a7f 100644 --- a/uv_magic_uv/muv_fliprot_ops.py +++ b/uv_magic_uv/muv_fliprot_ops.py @@ -20,8 +20,8 @@ __author__ = "Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" import bpy import bmesh @@ -53,6 +53,11 @@ class MUV_FlipRot(bpy.types.Operator): min=0, max=30 ) + seams = BoolProperty( + name="Seams", + description="Seams", + default=True + ) def execute(self, context): self.report({'INFO'}, "Flip/Rotate UV") @@ -70,40 +75,52 @@ class MUV_FlipRot(bpy.types.Operator): # get selected face dest_uvs = [] dest_pin_uvs = [] + dest_seams = [] dest_face_indices = [] for face in bm.faces: if face.select: dest_face_indices.append(face.index) uvs = [l[uv_layer].uv.copy() for l in face.loops] pin_uvs = [l[uv_layer].pin_uv for l in face.loops] + seams = [l.edge.seam for l in face.loops] dest_uvs.append(uvs) dest_pin_uvs.append(pin_uvs) + dest_seams.append(seams) if len(dest_uvs) == 0 or len(dest_pin_uvs) == 0: self.report({'WARNING'}, "No faces are selected") return {'CANCELLED'} self.report({'INFO'}, "%d face(s) are selected" % len(dest_uvs)) # paste - for idx, duvs, dpuvs in zip(dest_face_indices, dest_uvs, dest_pin_uvs): + for idx, duvs, dpuvs, dss in zip(dest_face_indices, dest_uvs, dest_pin_uvs, dest_seams): duvs_fr = [uv for uv in duvs] dpuvs_fr = [pin_uv for pin_uv in dpuvs] + dss_fr = [s for s in dss] # flip UVs if self.flip is True: duvs_fr.reverse() dpuvs_fr.reverse() + dss_fr.reverse() # rotate UVs for _ in range(self.rotate): uv = duvs_fr.pop() pin_uv = dpuvs_fr.pop() + s = dss_fr.pop() duvs_fr.insert(0, uv) dpuvs_fr.insert(0, pin_uv) + dss_fr.insert(0, s) # paste UVs - for l, duv, dpuv in zip(bm.faces[idx].loops, duvs_fr, dpuvs_fr): + for l, duv, dpuv, ds in zip( + bm.faces[idx].loops, duvs_fr, dpuvs_fr, dss_fr): l[uv_layer].uv = duv l[uv_layer].pin_uv = dpuv + if self.seams is True: + l.edge.seam = ds self.report({'INFO'}, "%d face(s) are flipped/rotated" % len(dest_uvs)) bmesh.update_edit_mesh(obj.data) + if self.seams is True: + obj.data.show_edge_seams = True return {'FINISHED'} diff --git a/uv_magic_uv/muv_menu.py b/uv_magic_uv/muv_menu.py index b177e9c8..f53a8d7f 100644 --- a/uv_magic_uv/muv_menu.py +++ b/uv_magic_uv/muv_menu.py @@ -20,8 +20,8 @@ __author__ = "Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" import bpy from . import muv_cpuv_ops diff --git a/uv_magic_uv/muv_mirroruv_ops.py b/uv_magic_uv/muv_mirroruv_ops.py index 5fc2ac4c..e1955360 100644 --- a/uv_magic_uv/muv_mirroruv_ops.py +++ b/uv_magic_uv/muv_mirroruv_ops.py @@ -20,8 +20,8 @@ __author__ = "Keith (Wahooney) Boshoff, Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" import bpy from bpy.props import ( diff --git a/uv_magic_uv/muv_mvuv_ops.py b/uv_magic_uv/muv_mvuv_ops.py index 192d7f21..847b34fe 100644 --- a/uv_magic_uv/muv_mvuv_ops.py +++ b/uv_magic_uv/muv_mvuv_ops.py @@ -20,8 +20,8 @@ __author__ = "kgeogeo, mem, Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" import bpy import bmesh diff --git a/uv_magic_uv/muv_packuv_ops.py b/uv_magic_uv/muv_packuv_ops.py index 829bf605..66d32766 100644 --- a/uv_magic_uv/muv_packuv_ops.py +++ b/uv_magic_uv/muv_packuv_ops.py @@ -20,8 +20,8 @@ __author__ = "Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" from math import fabs from collections import defaultdict diff --git a/uv_magic_uv/muv_preferences.py b/uv_magic_uv/muv_preferences.py index f80ad28e..fe807d67 100644 --- a/uv_magic_uv/muv_preferences.py +++ b/uv_magic_uv/muv_preferences.py @@ -20,8 +20,8 @@ __author__ = "Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" from bpy.props import ( BoolProperty, diff --git a/uv_magic_uv/muv_preserve_uv_aspect.py b/uv_magic_uv/muv_preserve_uv_aspect.py index bc9ce3eb..93f53307 100644 --- a/uv_magic_uv/muv_preserve_uv_aspect.py +++ b/uv_magic_uv/muv_preserve_uv_aspect.py @@ -20,8 +20,8 @@ __author__ = "Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" import bpy import bmesh diff --git a/uv_magic_uv/muv_props.py b/uv_magic_uv/muv_props.py index 3fdbdf00..f28fcdbc 100644 --- a/uv_magic_uv/muv_props.py +++ b/uv_magic_uv/muv_props.py @@ -20,8 +20,8 @@ __author__ = "Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" import bpy from bpy.props import ( @@ -67,11 +67,13 @@ class MUV_Properties(): class MUV_CPUVProps(): src_uvs = [] src_pin_uvs = [] + src_seams = [] class MUV_CPUVSelSeqProps(): src_uvs = [] src_pin_uvs = [] + src_seams = [] class MUV_TransUVProps(): diff --git a/uv_magic_uv/muv_texlock_ops.py b/uv_magic_uv/muv_texlock_ops.py index f3ff499e..08b42309 100644 --- a/uv_magic_uv/muv_texlock_ops.py +++ b/uv_magic_uv/muv_texlock_ops.py @@ -20,8 +20,8 @@ __author__ = "Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" import math from math import ( diff --git a/uv_magic_uv/muv_texproj_ops.py b/uv_magic_uv/muv_texproj_ops.py index 7b796e81..1cf749ab 100644 --- a/uv_magic_uv/muv_texproj_ops.py +++ b/uv_magic_uv/muv_texproj_ops.py @@ -20,8 +20,8 @@ __author__ = "Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" from collections import namedtuple diff --git a/uv_magic_uv/muv_transuv_ops.py b/uv_magic_uv/muv_transuv_ops.py index 095fa99b..faf1304d 100644 --- a/uv_magic_uv/muv_transuv_ops.py +++ b/uv_magic_uv/muv_transuv_ops.py @@ -20,8 +20,8 @@ __author__ = "Nutti , Mifth, MaxRobinot" __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" from collections import OrderedDict @@ -77,10 +77,12 @@ class MUV_TransUVCopy(bpy.types.Operator): if all_sorted_faces: for face_data in all_sorted_faces.values(): + edges = face_data[1] uv_loops = face_data[2] uvs = [l.uv.copy() for l in uv_loops] pin_uvs = [l.pin_uv for l in uv_loops] - props.topology_copied.append([uvs, pin_uvs]) + seams = [e.seam for e in edges] + props.topology_copied.append([uvs, pin_uvs, seams]) bmesh.update_edit_mesh(active_obj.data) @@ -101,7 +103,13 @@ class MUV_TransUVPaste(bpy.types.Operator): invert_normals = BoolProperty( name="Invert Normals", description="Invert Normals", - default=False) + default=False + ) + copy_seams = BoolProperty( + name="Copy Seams", + description="Copy Seams", + default=True + ) def execute(self, context): props = context.scene.muv_props.transuv @@ -161,11 +169,15 @@ class MUV_TransUVPaste(bpy.types.Operator): ) return {'FINISHED'} - for j, uvloop in enumerate(face_data[2]): + for j, (edge, uvloop) in enumerate(zip(face_data[1], face_data[2])): uvloop.uv = copied_data[0][j] uvloop.pin_uv = copied_data[1][j] + if self.copy_seams: + edge.seam = copied_data[2][j] bmesh.update_edit_mesh(active_obj.data) + if self.copy_seams: + active_obj.data.show_edge_seams = True return {'FINISHED'} diff --git a/uv_magic_uv/muv_unwrapconst_ops.py b/uv_magic_uv/muv_unwrapconst_ops.py index 86686090..28800c42 100644 --- a/uv_magic_uv/muv_unwrapconst_ops.py +++ b/uv_magic_uv/muv_unwrapconst_ops.py @@ -18,8 +18,8 @@ __author__ = "Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" import bpy import bmesh diff --git a/uv_magic_uv/muv_uvbb_ops.py b/uv_magic_uv/muv_uvbb_ops.py index 3e773b7a..c3fedf8e 100644 --- a/uv_magic_uv/muv_uvbb_ops.py +++ b/uv_magic_uv/muv_uvbb_ops.py @@ -20,8 +20,8 @@ __author__ = "Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" from enum import IntEnum import math diff --git a/uv_magic_uv/muv_wsuv_ops.py b/uv_magic_uv/muv_wsuv_ops.py index debc666c..3e47d960 100644 --- a/uv_magic_uv/muv_wsuv_ops.py +++ b/uv_magic_uv/muv_wsuv_ops.py @@ -20,8 +20,9 @@ __author__ = "McBuff, Nutti " __status__ = "production" -__version__ = "4.3.1" -__date__ = "6 June 2017" +__version__ = "4.4" +__date__ = "2 Aug 2017" + import bpy import bmesh @@ -126,6 +127,9 @@ class MUV_WSUVApply(bpy.types.Operator): orig_area = bpy.context.area.type bpy.context.area.type = 'IMAGE_EDITOR' + # select all UV related to the selected faces + bpy.ops.uv.select_all(action='SELECT') + # apply scaled UV bpy.ops.transform.resize( value=(ratio, ratio, ratio), @@ -134,14 +138,7 @@ class MUV_WSUVApply(bpy.types.Operator): mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', - proportional_size=1, - snap=False, - snap_target='CLOSEST', - snap_point=(0, 0, 0), - snap_align=False, - snap_normal=(0, 0, 0), - texture_space=False, - release_confirm=False) + proportional_size=1) bpy.context.area.type = orig_area -- cgit v1.2.3