fix [#28558] more edge_keys than edges

This commit is contained in:
Campbell Barton
2011-09-07 23:36:32 +00:00
parent 698b8930fa
commit f5f7ed433c
2 changed files with 27 additions and 10 deletions

View File

@@ -356,7 +356,10 @@ class Mesh(bpy_types.ID):
@property
def edge_keys(self):
return [edge_key for face in self.faces for edge_key in face.edge_keys]
return list({edge_key
for face in self.faces
for edge_key in face.edge_keys
})
class MeshEdge(StructRNA):
@@ -376,17 +379,31 @@ class MeshFace(StructRNA):
face_verts = self.vertices[:]
mesh_verts = self.id_data.vertices
if len(face_verts) == 3:
return (mesh_verts[face_verts[0]].co + mesh_verts[face_verts[1]].co + mesh_verts[face_verts[2]].co) / 3.0
return (mesh_verts[face_verts[0]].co +
mesh_verts[face_verts[1]].co +
mesh_verts[face_verts[2]].co
) / 3.0
else:
return (mesh_verts[face_verts[0]].co + mesh_verts[face_verts[1]].co + mesh_verts[face_verts[2]].co + mesh_verts[face_verts[3]].co) / 4.0
return (mesh_verts[face_verts[0]].co +
mesh_verts[face_verts[1]].co +
mesh_verts[face_verts[2]].co +
mesh_verts[face_verts[3]].co
) / 4.0
@property
def edge_keys(self):
verts = self.vertices[:]
if len(verts) == 3:
return ord_ind(verts[0], verts[1]), ord_ind(verts[1], verts[2]), ord_ind(verts[2], verts[0])
return ord_ind(verts[0], verts[1]), ord_ind(verts[1], verts[2]), ord_ind(verts[2], verts[3]), ord_ind(verts[3], verts[0])
return (ord_ind(verts[0], verts[1]),
ord_ind(verts[1], verts[2]),
ord_ind(verts[2], verts[0]),
)
else:
return (ord_ind(verts[0], verts[1]),
ord_ind(verts[1], verts[2]),
ord_ind(verts[2], verts[3]),
ord_ind(verts[3], verts[0]),
)
class Text(bpy_types.ID):

View File

@@ -738,7 +738,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col.prop(md, "narrowness", slider=True)
@staticmethod
def weight_vg_mask(layout, ob, md):
def vertex_weight_mask(layout, ob, md):
layout.label(text="Influence/Mask Options:")
split = layout.split()
col1 = split.column()
@@ -798,7 +798,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
# Common mask options…
layout.separator()
self.weight_vg_mask(layout, ob, md)
self.vertex_weight_mask(layout, ob, md)
def VERTEX_WEIGHT_MIX(self, layout, ob, md):
if ob.type == 'MESH':
@@ -823,7 +823,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
# Common mask options…
layout.separator()
self.weight_vg_mask(layout, ob, md)
self.vertex_weight_mask(layout, ob, md)
def VERTEX_WEIGHT_PROXIMITY(self, layout, ob, md):
if ob.type == 'MESH':
@@ -850,7 +850,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
# Common mask options…
layout.separator()
self.weight_vg_mask(layout, ob, md)
self.vertex_weight_mask(layout, ob, md)
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)