Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugenio Pignataro <info@oscurart.com.ar>2018-05-31 22:35:29 +0300
committerEugenio Pignataro <info@oscurart.com.ar>2018-05-31 22:35:29 +0300
commitb9934d8a6b515361c921fc958dfe4e0c97a03c50 (patch)
tree84ea47c7e4d5b77750ca4c34a155d15b9db8b272 /oscurart_tools
parentff32abad7ca19de3e182e82e4e4ac340e0f5f1ba (diff)
Add offset and rotate Loops to UV Overlap
Diffstat (limited to 'oscurart_tools')
-rw-r--r--oscurart_tools/oscurart_meshes.py42
1 files changed, 32 insertions, 10 deletions
diff --git a/oscurart_tools/oscurart_meshes.py b/oscurart_tools/oscurart_meshes.py
index 855a1b77..802c7f75 100644
--- a/oscurart_tools/oscurart_meshes.py
+++ b/oscurart_tools/oscurart_meshes.py
@@ -348,27 +348,40 @@ class OscObjectToMesh(Operator):
# ----------------------------- OVERLAP UV -------------------------------
-def DefOscOverlapUv():
- bm = bmesh.from_edit_mesh(bpy.context.object.data)
+def DefOscOverlapUv(self,offset,rotate):
+ me = bpy.context.object.data
+ bm = bmesh.from_edit_mesh(me)
+ bm.faces.ensure_lookup_table()
faces = [face for face in bm.faces if face.select]
-
+ uv_layer = bm.loops.layers.uv[bpy.context.object.data.uv_layers.active.name]
+
faceDict = {}
faceReverse = []
bm.select_mode = {'FACE'}
for face in faces:
- bpy.ops.mesh.select_all(action= "DESELECT")
+ bpy.ops.mesh.select_all(action="DESELECT")
face.select = True
bpy.ops.mesh.select_mirror()
faceDict[face.index] = [mirrorface for mirrorface in bm.faces if mirrorface.select][0].index
faceReverse.append([mirrorface for mirrorface in bm.faces if mirrorface.select][0])
+
+
- for selFace,mirrorFace in faceDict.items():
- for loop,mirrorLoop in zip(bm.faces[selFace].loops,bm.faces[mirrorFace].loops):
- mirrorLoop.copy_from(loop)
-
+ for selFace,mirrorFace in faceDict.items():
+ for loop,mirrorLoop in zip(bm.faces[selFace].loops,bm.faces[mirrorFace].loops):
+ mirrorLoop.copy_from(loop)
+ if offset:
+ for loop,mirrorLoop in zip(bm.faces[selFace].loops,bm.faces[mirrorFace].loops):
+ mirrorLoop[uv_layer].uv += Vector((1,0))
+
+
#invierto direcciones
bmesh.ops.reverse_uvs(bm, faces=[f for f in faceReverse])
- bmesh.ops.rotate_uvs(bm, faces=[f for f in faceReverse])
+ bmesh.ops.rotate_uvs(bm, faces=[f for f in faceReverse])
+ if rotate:
+ bmesh.ops.rotate_uvs(bm, faces=[f for f in faceReverse])
+
+ bmesh.update_edit_mesh(me)
class OscOverlapUv(Operator):
@@ -384,8 +397,17 @@ class OscOverlapUv(Operator):
context.active_object.type == 'MESH')
+ offset = BoolProperty(
+ default=True,
+ name="Offset"
+ )
+ rotate = BoolProperty(
+ default=True,
+ name="Rotate"
+ )
+
def execute(self, context):
- DefOscOverlapUv()
+ DefOscOverlapUv(self,self.offset,self.rotate)
return {'FINISHED'}