# Merge materials and form a lookup from source material indices to the
# merged material list
- material_map = []
+ material_atlas = []
for m in other.materials:
if m in self.materials:
- material_map.append(self.materials.index(m))
+ material_atlas.append(self.materials.index(m))
else:
- material_map.append(len(self.materials))
+ material_atlas.append(len(self.materials))
self.materials.append(m)
# Append data and adjust indices where necessary. Since the data is
f.index += offset
f.loop_indices = range(f.loop_indices.start+offset, f.loop_indices.stop+offset)
if other.materials:
- f.material_index = material_map[f.material_index]
+ f.material_index = material_atlas[f.material_index]
offset = len(self.edges)
self.edges += other.edges
for g in v.groups:
g.group = group_index_map[g.group]
- def apply_material_map(self, material_map):
+ def apply_material_atlas(self, material_atlas):
for m in self.materials:
- if m.name not in material_map.material_names:
- raise Exception("Material map is not compatible with Mesh")
+ if m.name not in material_atlas.material_names:
+ raise Exception("Material atlas is not compatible with Mesh")
if self.use_uv=='NONE':
return
- layer = UvLayer("material_map")
+ layer = UvLayer("material_atlas")
if self.use_uv=='UNIT0':
self.uv_layers = [layer]
layer.unit = 0
layer.uvs = [(0.0, 0.0)]*len(self.loops)
for f in self.faces:
- uv = material_map.get_material_uv(self.materials[f.material_index])
+ uv = material_atlas.get_material_uv(self.materials[f.material_index])
for i in f.loop_indices:
layer.uvs[i] = uv
e.key = make_edge_key(e.vertices[0].index, e.vertices[1].index)
-def create_mesh_from_object(context, obj, progress, *, material_map=None):
+def create_mesh_from_object(context, obj, progress, *, material_atlas=None):
if obj.type!="MESH":
raise Exception("Object is not a mesh")
mesh.name = obj.data.name
- if material_map:
- mesh.apply_material_map(material_map)
+ if material_atlas:
+ mesh.apply_material_atlas(material_atlas)
progress.set_task("Triangulating", 0.2, 0.3)
mesh.prepare_triangles(progress)