[Bf-extensions-cvs] [0b05eba] master: Fix a previous commit.
Eugenio Pignataro
noreply at git.blender.org
Tue Mar 18 15:40:08 CET 2014
Commit: 0b05eba872fc6b9fc58ffc00cf336f230bbbf657
Author: Eugenio Pignataro
Date: Tue Mar 18 11:39:47 2014 -0300
https://developer.blender.org/rBAC0b05eba872fc6b9fc58ffc00cf336f230bbbf657
Fix a previous commit.
===================================================================
M oscurart_tools/oscurart_meshes.py
===================================================================
diff --git a/oscurart_tools/oscurart_meshes.py b/oscurart_tools/oscurart_meshes.py
index 31ff4d2..7c7da7f 100644
--- a/oscurart_tools/oscurart_meshes.py
+++ b/oscurart_tools/oscurart_meshes.py
@@ -114,17 +114,15 @@ class resymVertexGroups (bpy.types.Operator):
bpy.ops.mesh.select_all(action='DESELECT')
for VERT in INL:
BM.verts[VERT].select = True
- bpy.ops.object.vertex_group_assign(new=False)
+ bpy.ops.object.vertex_group_assign()
bpy.ops.object.mode_set(mode='WEIGHT_PAINT')
for VERT in INL:
for i, GRA in enumerate(OBACTIVO.data.vertices[SYMAP[VERT]].groups[:]):
if GRA.group == VGACTIVO:
- print (i)
EM = i
for a, GRA in enumerate(OBACTIVO.data.vertices[VERT].groups[:]):
if GRA.group == VGACTIVO:
- print (a)
REC = a
@@ -182,88 +180,77 @@ class OscImportVG (bpy.types.Operator):
## ------------------------------------ RESYM MESH--------------------------------------
-def reSymSave (self):
+def reSymSave (self,quality):
- bpy.ops.object.mode_set(mode='EDIT')
-
- BM = bmesh.from_edit_mesh(bpy.context.object.data)
-
- L = {VERT.index : [VERT.co[0],VERT.co[1],VERT.co[2]] for VERT in BM.verts[:] if VERT.co[0] < 0.0001}
- R = {VERT.index : [-VERT.co[0],VERT.co[1],VERT.co[2]] for VERT in BM.verts[:] if VERT.co[0] > -0.0001}
+ bpy.ops.object.mode_set(mode='OBJECT')
- SYMAP = {VERTL : VERTR for VERTR in R for VERTL in L if R[VERTR] == L[VERTL] }
+ object = bpy.context.object
+
+ rdqual = quality
+ rd = lambda x : round(x,rdqual)
+ absol = lambda x : (abs(x[0]),x[1],x[2])
+
+ inddict = { tuple(map(rd, vert.co[:])) : vert.index for vert in object.data.vertices[:]}
+ reldict = { inddict[vert] : inddict[absol(vert)] for vert in inddict if vert[0] <= 0 if inddict.get(absol(vert))}
- FILEPATH=bpy.data.filepath
- ACTIVEFOLDER = os.path.split(FILEPATH)[0]
- ENTFILEPATH= "%s_%s_SYM_TEMPLATE.xml" % (os.path.join(ACTIVEFOLDER, bpy.context.scene.name), bpy.context.object.name)
+ ENTFILEPATH= "%s_%s_SYM_TEMPLATE.xml" % (os.path.join(os.path.dirname(bpy.data.filepath), bpy.context.scene.name), bpy.context.object.name)
with open(ENTFILEPATH ,mode="w") as file:
- file.writelines(str(SYMAP))
- SYMAP.clear()
+ file.writelines(str(reldict))
+ reldict.clear()
def reSymMesh (self, SELECTED, SIDE):
- bpy.ops.object.mode_set(mode='EDIT')
- BM = bmesh.from_edit_mesh(bpy.context.object.data)
- FILEPATH=bpy.data.filepath
- ACTIVEFOLDER = os.path.split(FILEPATH)[0]
- ENTFILEPATH= "%s_%s_SYM_TEMPLATE.xml" % (os.path.join(ACTIVEFOLDER,bpy.context.scene.name), bpy.context.object.name)
+ bpy.ops.object.mode_set(mode='EDIT')
+ ENTFILEPATH= "%s_%s_SYM_TEMPLATE.xml" % (os.path.join(os.path.dirname(bpy.data.filepath),bpy.context.scene.name), bpy.context.object.name)
with open(ENTFILEPATH ,mode="r") as file:
SYMAP = eval(file.readlines()[0])
- if SIDE == "+-":
+ bm = bmesh.from_edit_mesh(bpy.context.object.data)
+ object = bpy.context.object
+
+ def MAME (SYMAP):
if SELECTED:
- for VERT in SYMAP:
- if BM.verts[SYMAP[VERT]].select:
- if VERT == SYMAP[VERT]:
- BM.verts[VERT].co[0] = 0
- BM.verts[VERT].co[1] = BM.verts[SYMAP[VERT]].co[1]
- BM.verts[VERT].co[2] = BM.verts[SYMAP[VERT]].co[2]
- else:
- BM.verts[VERT].co[0] = -BM.verts[SYMAP[VERT]].co[0]
- BM.verts[VERT].co[1] = BM.verts[SYMAP[VERT]].co[1]
- BM.verts[VERT].co[2] = BM.verts[SYMAP[VERT]].co[2]
- else:
- for VERT in SYMAP:
- if VERT == SYMAP[VERT]:
- BM.verts[VERT].co[0] = 0
- BM.verts[VERT].co[1] = BM.verts[SYMAP[VERT]].co[1]
- BM.verts[VERT].co[2] = BM.verts[SYMAP[VERT]].co[2]
- else:
- BM.verts[VERT].co[0] = -BM.verts[SYMAP[VERT]].co[0]
- BM.verts[VERT].co[1] = BM.verts[SYMAP[VERT]].co[1]
- BM.verts[VERT].co[2] = BM.verts[SYMAP[VERT]].co[2]
- else:
+ for vert in SYMAP:
+ if bm.verts[SYMAP[vert]].select:
+ bm.verts[vert].co = (-1*bm.verts[SYMAP[vert]].co[0],
+ bm.verts[SYMAP[vert]].co[1],
+ bm.verts[SYMAP[vert]].co[2])
+ else:
+ for vert in SYMAP:
+ bm.verts[vert].co = (-1*bm.verts[SYMAP[vert]].co[0],
+ bm.verts[SYMAP[vert]].co[1],
+ bm.verts[SYMAP[vert]].co[2])
+ bmesh.update_edit_mesh(object.data)
+
+
+ def MEMA (SYMAP):
if SELECTED:
- for VERT in SYMAP:
- if BM.verts[VERT].select:
- if VERT == SYMAP[VERT]:
- BM.verts[SYMAP[VERT]].co[0] = 0
- BM.verts[SYMAP[VERT]].co[1] = BM.verts[VERT].co[1]
- BM.verts[SYMAP[VERT]].co[2] = BM.verts[VERT].co[2]
- else:
- BM.verts[SYMAP[VERT]].co[0] = -BM.verts[VERT].co[0]
- BM.verts[SYMAP[VERT]].co[1] = BM.verts[VERT].co[1]
- BM.verts[SYMAP[VERT]].co[2] = BM.verts[VERT].co[2]
- else:
- for VERT in SYMAP:
- if VERT == SYMAP[VERT]:
- BM.verts[SYMAP[VERT]].co[0] = 0
- BM.verts[SYMAP[VERT]].co[1] = BM.verts[VERT].co[1]
- BM.verts[SYMAP[VERT]].co[2] = BM.verts[VERT].co[2]
- else:
- BM.verts[SYMAP[VERT]].co[0] = -BM.verts[VERT].co[0]
- BM.verts[SYMAP[VERT]].co[1] = BM.verts[VERT].co[1]
- BM.verts[SYMAP[VERT]].co[2] = BM.verts[VERT].co[2]
-
- bpy.ops.object.mode_set(mode='OBJECT')
- bpy.ops.object.mode_set(mode='EDIT')
- SYMAP.clear()
-
+ for vert in SYMAP:
+ if bm.verts[vert].select:
+ bm.verts[SYMAP[vert]].co = (-1*bm.verts[vert].co[0],
+ bm.verts[vert].co[1],
+ bm.verts[vert].co[2])
+ else:
+ for vert in SYMAP:
+ bm.verts[SYMAP[vert]].co = (-1*bm.verts[vert].co[0],
+ bm.verts[vert].co[1],
+ bm.verts[vert].co[2])
+ bmesh.update_edit_mesh(object.data)
+
+
+ if SIDE == "+-":
+ MAME(SYMAP)
+ else:
+ MEMA(SYMAP)
+
+
class OscResymSave (bpy.types.Operator):
bl_idname = "mesh.resym_save_map"
bl_label = "Resym save XML Map"
bl_options = {"REGISTER", "UNDO"}
+ quality = bpy.props.IntProperty(default=4, name="Quality")
+
def execute (self, context):
- reSymSave(self)
+ reSymSave(self,self.quality)
return {'FINISHED'}
class OscResymMesh (bpy.types.Operator):
@@ -339,13 +326,13 @@ class OscOverlapUv(bpy.types.Operator):
## ------------------------------- IO VERTEX COLORS --------------------
def DefOscExportVC():
- with open("%s/%s.vc" % (os.path.dirname(bpy.data.filepath),bpy.context.object.name), mode="w") as file:
+ with open(os.path.join(os.path.dirname(bpy.data.filepath),bpy.context.object.name) + ".vc", mode="w") as file:
ob = bpy.context.object
di = { loopind : ob.data.vertex_colors.active.data[loopind].color[:] for face in ob.data.polygons for loopind in face.loop_indices[:] }
file.write(str(di))
def DefOscImportVC():
- with open("%s/%s.vc" % (os.path.dirname(bpy.data.filepath),bpy.context.object.name), mode="r") as file:
+ with open(os.path.join(os.path.dirname(bpy.data.filepath),bpy.context.object.name) + ".vc", mode="r") as file:
di = eval(file.read())
for loopind in di:
bpy.context.object.data.vertex_colors.active.data[loopind].color = di[loopind]
More information about the Bf-extensions-cvs
mailing list