[Bf-extensions-cvs] [67e1ac2] master: Uv Overlap rewritten

Eugenio Pignataro noreply at git.blender.org
Sun May 25 04:13:20 CEST 2014


Commit: 67e1ac21f4537496e8fa4c7f0c7c82582cc33fa5
Author: Eugenio Pignataro
Date:   Sat May 24 23:13:09 2014 -0300
https://developer.blender.org/rBAC67e1ac21f4537496e8fa4c7f0c7c82582cc33fa5

Uv Overlap rewritten

===================================================================

M	oscurart_tools/oscurart_meshes.py

===================================================================

diff --git a/oscurart_tools/oscurart_meshes.py b/oscurart_tools/oscurart_meshes.py
index b9ab76f..bdeb16f 100644
--- a/oscurart_tools/oscurart_meshes.py
+++ b/oscurart_tools/oscurart_meshes.py
@@ -276,6 +276,37 @@ class OscObjectToMesh(bpy.types.Operator):
 
 
 def DefOscOverlapUv(valprecision):
+    inicio= time.time()
+    mode = bpy.context.object.mode
+    bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
+    ob = bpy.context.object
+    uvm = ob.data.uv_layers.active
+    redondeo = lambda x : (round(x[0],valprecision),round(x[1],valprecision),round(x[2],valprecision))
+    absol = lambda x : (abs(x[0]),x[1],x[2])
+
+    polydict = {redondeo(poly.center[:]) : poly  for poly in ob.data.polygons }
+    vertdict = {redondeo(vert.co[:]) : vert for vert in ob.data.vertices }
+
+    polyeq = { indice.index : polydict[absol(center)].index for center,indice in polydict.items() if center[0] <= 0
+        if polydict.get(absol(center))}
+    verteq = { indice.index : vertdict[absol(co)].index for co,indice in vertdict.items() if co[0] <= 0
+        if vertdict.get(absol(co))}
+
+    dict = { poly.index : {ob.data.loops[vertex].vertex_index :vertex  for vertex in poly.loop_indices} for poly in ob.data.polygons}
+
+    for poly,data in dict.items():
+        if ob.data.polygons[poly].center.x <= 0:
+            poly, data
+            polyeq[poly], dict[polyeq[poly]]
+            for ind in data:
+                ind, verteq[ind]
+                data[ind], dict[polyeq[poly]][verteq[ind]]
+                uvm.data[data[ind]].uv = uvm.data[dict[polyeq[poly]][verteq[ind]]].uv 
+
+    bpy.ops.object.mode_set(mode=mode, toggle=False)      
+    print("Time elapsed: %4s seconds" % (time.time()-inicio))          
+    
+    """
     rd = 4
     ACTOBJ = bpy.context.object
     inicio= time.time()
@@ -292,6 +323,7 @@ def DefOscOverlapUv(valprecision):
 
     
     print("Time elapsed: %4s seconds" % (time.time()-inicio))
+    """
 
 class OscOverlapUv(bpy.types.Operator):
     bl_idname = "mesh.overlap_uv_faces"
@@ -388,4 +420,4 @@ class ModalIndexOperator(bpy.types.Operator):
         else:
             self.report({"WARNING"}, "Is not a 3D Space")
             return {'CANCELLED'}
-                
\ No newline at end of file
+



More information about the Bf-extensions-cvs mailing list