[Bf-extensions-cvs] [bbe7d593] master: New Tool Copy Paste Uv Island
Eugenio Pignataro
noreply at git.blender.org
Mon Oct 2 21:32:53 CEST 2017
Commit: bbe7d59307469ec2c52273136d4dfab336485ad4
Author: Eugenio Pignataro
Date: Mon Oct 2 16:32:41 2017 -0300
Branches: master
https://developer.blender.org/rBAbbe7d59307469ec2c52273136d4dfab336485ad4
New Tool Copy Paste Uv Island
===================================================================
M oscurart_tools/__init__.py
M oscurart_tools/oscurart_meshes.py
===================================================================
diff --git a/oscurart_tools/__init__.py b/oscurart_tools/__init__.py
index 72a40a3d..367e7475 100644
--- a/oscurart_tools/__init__.py
+++ b/oscurart_tools/__init__.py
@@ -197,6 +197,9 @@ class OscPanelMesh(Panel):
colrow = col.row(align=1)
colrow.operator("mesh.overlap_uv_faces", icon="UV_FACESEL")
colrow = col.row(align=1)
+ colrow.operator("mesh.uv_island_copy", icon="COPYDOWN")
+ colrow.operator("mesh.uv_island_paste", icon="PASTEDOWN")
+ colrow = col.row(align=1)
colrow.operator("view3d.modal_operator", icon="STICKY_UVS_DISABLE")
colrow = col.row(align=1)
colrow.operator("lattice.mirror_selected", icon="LATTICE_DATA")
diff --git a/oscurart_tools/oscurart_meshes.py b/oscurart_tools/oscurart_meshes.py
index f6ba46ff..9b1314b3 100644
--- a/oscurart_tools/oscurart_meshes.py
+++ b/oscurart_tools/oscurart_meshes.py
@@ -562,3 +562,69 @@ class LatticeMirror(Operator):
def execute(self, context):
defLatticeMirror(self, context)
return {'FINISHED'}
+
+
+# -------------------------- OVERLAP UV ISLANDS
+
+def defCopyUvsIsland(self, context):
+ bpy.ops.object.mode_set(mode="OBJECT")
+ global obLoop
+ global islandFaces
+ obLoop = []
+ islandFaces = []
+ for poly in bpy.context.object.data.polygons:
+ if poly.select:
+ islandFaces.append(poly.index)
+ for li in poly.loop_indices:
+ obLoop.append(li)
+
+ bpy.ops.object.mode_set(mode="EDIT")
+
+def defPasteUvsIsland(self, context):
+ bpy.ops.object.mode_set(mode="OBJECT")
+ TobLoop = []
+ TislandFaces = []
+ for poly in bpy.context.object.data.polygons:
+ if poly.select:
+ TislandFaces.append(poly.index)
+ for li in poly.loop_indices:
+ TobLoop.append(li)
+
+ for source,target in zip(range(min(obLoop),max(obLoop)+1),range(min(TobLoop),max(TobLoop)+1)):
+ bpy.context.object.data.uv_layers.active.data[target].uv = bpy.context.object.data.uv_layers.active.data[source].uv
+
+ bpy.ops.object.mode_set(mode="EDIT")
+
+
+
+class CopyUvIsland(Operator):
+ """Copy Uv Island"""
+ bl_idname = "mesh.uv_island_copy"
+ bl_label = "Copy Uv Island"
+ bl_options = {"REGISTER", "UNDO"}
+
+ @classmethod
+ def poll(cls, context):
+ return (context.active_object is not None and
+ context.active_object.type == 'MESH' and
+ context.active_object.mode == "EDIT")
+
+ def execute(self, context):
+ defCopyUvsIsland(self, context)
+ return {'FINISHED'}
+
+class PasteUvIsland(Operator):
+ """Paste Uv Island"""
+ bl_idname = "mesh.uv_island_paste"
+ bl_label = "Paste Uv Island"
+ bl_options = {"REGISTER", "UNDO"}
+
+ @classmethod
+ def poll(cls, context):
+ return (context.active_object is not None and
+ context.active_object.type == 'MESH' and
+ context.active_object.mode == "EDIT")
+
+ def execute(self, context):
+ defPasteUvsIsland(self, context)
+ return {'FINISHED'}
\ No newline at end of file
More information about the Bf-extensions-cvs
mailing list