|
@@ -202,12 +202,12 @@ def extra_vertex_groups(mesh, patterns_string):
|
|
|
# Skip bone weights:
|
|
|
vgroup_name = vgroup.name
|
|
|
if armature:
|
|
|
- is_bone_weight=False
|
|
|
+ is_bone_weight = False
|
|
|
for bone in armature.pose.bones:
|
|
|
if bone.name == vgroup_name:
|
|
|
- is_bone_weight=True
|
|
|
+ is_bone_weight = True
|
|
|
break
|
|
|
- if (is_bone_weight):
|
|
|
+ if is_bone_weight:
|
|
|
continue
|
|
|
|
|
|
if pattern_re is None:
|
|
@@ -218,12 +218,12 @@ def extra_vertex_groups(mesh, patterns_string):
|
|
|
pattern_re = '^(?:' + '|'.join(
|
|
|
map(lambda entry:
|
|
|
'.*?'.join(map(re.escape, entry.strip().split('*'))),
|
|
|
- patterns_string.split(',')) ) + ')$'
|
|
|
+ patterns_string.split(','))) + ')$'
|
|
|
|
|
|
if not re.match(pattern_re, vgroup_name):
|
|
|
continue
|
|
|
|
|
|
- extra_vgroups.append( (vgroup_name, vgroup_index) )
|
|
|
+ extra_vgroups.append((vgroup_name, vgroup_index))
|
|
|
return extra_vgroups
|
|
|
|
|
|
|
|
@@ -237,14 +237,14 @@ def vertex_group_data(mesh, index):
|
|
|
:param index:
|
|
|
|
|
|
"""
|
|
|
- data = []
|
|
|
+ group_data = []
|
|
|
for vertex in mesh.vertices:
|
|
|
weight = None
|
|
|
for group in vertex.groups:
|
|
|
if group.group == index:
|
|
|
weight = group.weight
|
|
|
- data.append(weight or 0.0)
|
|
|
- return data
|
|
|
+ group_data.append(weight or 0.0)
|
|
|
+ return group_data
|
|
|
|
|
|
|
|
|
@_mesh
|
|
@@ -257,7 +257,7 @@ def buffer_vertex_group_data(mesh, index):
|
|
|
:param index:
|
|
|
|
|
|
"""
|
|
|
- data = []
|
|
|
+ group_data = []
|
|
|
for face in mesh.tessfaces:
|
|
|
for vertex_index in face.vertices:
|
|
|
vertex = mesh.vertices[vertex_index]
|
|
@@ -265,23 +265,23 @@ def buffer_vertex_group_data(mesh, index):
|
|
|
for group in vertex.groups:
|
|
|
if group.group == index:
|
|
|
weight = group.weight
|
|
|
- data.append(weight or 0.0)
|
|
|
- return data
|
|
|
+ group_data.append(weight or 0.0)
|
|
|
+ return group_data
|
|
|
|
|
|
|
|
|
@_mesh
|
|
|
-def faces(mesh, options, materials=None):
|
|
|
+def faces(mesh, options, material_list=None):
|
|
|
"""
|
|
|
|
|
|
:param mesh:
|
|
|
:param options:
|
|
|
- :param materials: (Default value = None)
|
|
|
+ :param material_list: (Default value = None)
|
|
|
|
|
|
"""
|
|
|
logger.debug("mesh.faces(%s, %s, materials=%s)",
|
|
|
mesh, options, materials)
|
|
|
|
|
|
- materials = materials or []
|
|
|
+ material_list = material_list or []
|
|
|
vertex_uv = len(mesh.uv_textures) > 0
|
|
|
has_colors = len(mesh.vertex_colors) > 0
|
|
|
logger.info("Has UVs = %s", vertex_uv)
|
|
@@ -296,7 +296,7 @@ def faces(mesh, options, materials=None):
|
|
|
logger.debug("Materials enabled = %s", opt_materials)
|
|
|
logger.debug("Normals enabled = %s", opt_normals)
|
|
|
|
|
|
- uv_layers, uv_indices = _uvs(mesh) if opt_uvs else None
|
|
|
+ uv_indices = _uvs(mesh)[1] if opt_uvs else None
|
|
|
vertex_normals = _normals(mesh) if opt_normals else None
|
|
|
vertex_colours = vertex_colors(mesh) if opt_colours else None
|
|
|
|
|
@@ -338,7 +338,7 @@ def faces(mesh, options, materials=None):
|
|
|
face_data.extend([v for v in face.vertices])
|
|
|
|
|
|
if mask[constants.MATERIALS]:
|
|
|
- for mat_index, mat in enumerate(materials):
|
|
|
+ for mat_index, mat in enumerate(material_list):
|
|
|
if mat[constants.DBG_INDEX] == face.material_index:
|
|
|
face_data.append(mat_index)
|
|
|
break
|
|
@@ -347,13 +347,13 @@ def faces(mesh, options, materials=None):
|
|
|
"for face %d" % face.index)
|
|
|
raise exceptions.MaterialError(error)
|
|
|
|
|
|
- if uv_layers and uv_indices:
|
|
|
- for index, uv_layer in enumerate(uv_layers):
|
|
|
+ if uv_indices:
|
|
|
+ for index, uv_layer in enumerate(uv_indices):
|
|
|
layer = mesh.tessface_uv_textures[index]
|
|
|
|
|
|
for uv_data in layer.data[face.index].uv:
|
|
|
uv_tuple = (uv_data[0], uv_data[1])
|
|
|
- uv_index = uv_indices[index][str(uv_tuple)]
|
|
|
+ uv_index = uv_layer[str(uv_tuple)]
|
|
|
face_data.append(uv_index)
|
|
|
mask[constants.UVS] = True
|
|
|
|
|
@@ -638,7 +638,12 @@ def uvs(mesh):
|
|
|
"""
|
|
|
logger.debug("mesh.uvs(%s)", mesh)
|
|
|
uvs_ = []
|
|
|
- return _uvs(mesh)[0]
|
|
|
+ for layer in _uvs(mesh)[0]:
|
|
|
+ uvs_.append([])
|
|
|
+ logger.info("Parsing UV layer %d", len(uvs_))
|
|
|
+ for pair in layer:
|
|
|
+ uvs_[-1].extend(pair)
|
|
|
+ return uvs_
|
|
|
|
|
|
|
|
|
@_mesh
|