diff options
author | Eugenio Pignataro <info@oscurart.com.ar> | 2018-03-07 19:12:49 +0300 |
---|---|---|
committer | Eugenio Pignataro <info@oscurart.com.ar> | 2018-03-07 19:12:49 +0300 |
commit | 45f47e15d4d9c0629a9a277f8d665f806f7834a7 (patch) | |
tree | 767c7c18f97f20eb4e26209b63de124b52a5d75b /oscurart_tools | |
parent | 827c5e62e8f121f8f946f1f5f514f7751b1d684a (diff) |
New feature: rotate uv corner for Uv Copy/Paste
Diffstat (limited to 'oscurart_tools')
-rw-r--r-- | oscurart_tools/oscurart_meshes.py | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/oscurart_tools/oscurart_meshes.py b/oscurart_tools/oscurart_meshes.py index 6754ac78..162a1163 100644 --- a/oscurart_tools/oscurart_meshes.py +++ b/oscurart_tools/oscurart_meshes.py @@ -581,12 +581,12 @@ def defCopyUvsIsland(self, context): bpy.ops.object.mode_set(mode="EDIT") -def defPasteUvsIsland(self, uvOffset, context): +def defPasteUvsIsland(self, uvOffset, rotateUv,context): bpy.ops.object.mode_set(mode="OBJECT") selPolys = [poly.index for poly in bpy.context.object.data.polygons if poly.select] - + for island in selPolys: - bpy.ops.object.mode_set(mode="EDIT") + bpy.ops.object.mode_set(mode="EDIT") bpy.ops.mesh.select_all(action="DESELECT") bpy.ops.object.mode_set(mode="OBJECT") bpy.context.object.data.polygons[island].select = True @@ -606,6 +606,16 @@ def defPasteUvsIsland(self, uvOffset, context): bpy.ops.object.mode_set(mode="EDIT") + if rotateUv: + bpy.ops.object.mode_set(mode="OBJECT") + for poly in selPolys: + bpy.context.object.data.polygons[poly].select = True + bpy.ops.object.mode_set(mode="EDIT") + bm = bmesh.from_edit_mesh(bpy.context.object.data) + bmesh.ops.reverse_uvs(bm, faces=[f for f in bm.faces if f.select]) + bmesh.ops.rotate_uvs(bm, faces=[f for f in bm.faces if f.select]) + #bmesh.update_edit_mesh(bpy.context.object.data, tessface=False, destructive=False) + class CopyUvIsland(Operator): @@ -635,6 +645,10 @@ class PasteUvIsland(Operator): default=False ) + rotateUv = BoolProperty( + name="Rotate Uv Corner", + default=False + ) @classmethod def poll(cls, context): return (context.active_object is not None and @@ -642,7 +656,7 @@ class PasteUvIsland(Operator): context.active_object.mode == "EDIT") def execute(self, context): - defPasteUvsIsland(self, self.uvOffset, context) + defPasteUvsIsland(self, self.uvOffset, self.rotateUv, context) return {'FINISHED'} |