X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=blender%2Fio_mspgl%2Fmesh.py;h=bf5d108ba5e27caa68c9767638702aca3b9ea7d6;hp=7a33778dd68572e4b3c8cf60530693dde733b3c7;hb=f2d504006ec97c7d84e8059c48f5a37e005ece5f;hpb=52dd0394da580cc18ad1463e1646d06ac12dac8a diff --git a/blender/io_mspgl/mesh.py b/blender/io_mspgl/mesh.py index 7a33778d..bf5d108b 100644 --- a/blender/io_mspgl/mesh.py +++ b/blender/io_mspgl/mesh.py @@ -1,4 +1,3 @@ -import bpy import math import mathutils import itertools @@ -155,7 +154,6 @@ class Mesh: def __init__(self, mesh): self.name = mesh.name - self.winding_test = mesh.winding_test self.smoothing = mesh.smoothing self.use_uv = mesh.use_uv self.tangent_uvtex = mesh.tangent_uvtex @@ -259,12 +257,12 @@ class Mesh: # Merge materials and form a lookup from source material indices to the # merged material list - material_atlas = [] + material_lookup = [] for m in other.materials: if m in self.materials: - material_atlas.append(self.materials.index(m)) + material_lookup.append(self.materials.index(m)) else: - material_atlas.append(len(self.materials)) + material_lookup.append(len(self.materials)) self.materials.append(m) # Append data and adjust indices where necessary. Since the data is @@ -295,7 +293,7 @@ class Mesh: f.index += offset f.loop_indices = range(f.loop_indices.start+offset, f.loop_indices.stop+offset) if other.materials: - f.material_index = material_atlas[f.material_index] + f.material_index = material_lookup[f.material_index] offset = len(self.edges) self.edges += other.edges @@ -413,30 +411,6 @@ class Mesh: for g in v.groups: g.group = group_index_map[g.group] - def apply_material_atlas(self, material_atlas): - for m in self.materials: - if m.name not in material_atlas.material_names: - raise Exception("Material atlas {} is not compatible with Mesh {}".format(material_atlas.name, self.name)) - - if self.use_uv=='NONE': - return - - layer = UvLayer("material_atlas") - if self.use_uv=='UNIT0': - self.uv_layers = [layer] - layer.unit = 0 - else: - self.uv_layers.append(layer) - used_units = [u.unit for u in self.uv_layers] - layer.unit = next(i for i in itertools.count() if i not in used_units) - self.uv_layers.sort(key=lambda u: u.unit) - - layer.uvs = [(0.0, 0.0)]*len(self.loops) - for f in self.faces: - uv = material_atlas.get_material_uv(self.materials[f.material_index]) - for i in f.loop_indices: - layer.uvs[i] = uv - def prepare_uv(self, task): # Form a list of UV layers referenced by materials with the array atlas # property set @@ -795,7 +769,7 @@ class Mesh: e.key = make_edge_key(e.vertices[0].index, e.vertices[1].index) -def create_mesh_from_object(ctx, obj, material_atlas): +def create_mesh_from_object(ctx, obj): if obj.type!="MESH": raise Exception("Object {} is not a mesh".format(obj.name)) @@ -818,7 +792,6 @@ def create_mesh_from_object(ctx, obj, material_atlas): bmesh = eval_obj.to_mesh() # Object.to_mesh does not copy custom properties - bmesh.winding_test = o.data.winding_test bmesh.smoothing = o.data.smoothing bmesh.use_lines = o.data.use_lines bmesh.vertex_groups = o.data.vertex_groups @@ -841,9 +814,6 @@ def create_mesh_from_object(ctx, obj, material_atlas): mesh.name = obj.data.name - if material_atlas: - mesh.apply_material_atlas(material_atlas) - task = ctx.task("Triangulating", 0.3) mesh.prepare_triangles(task) task = ctx.task("Smoothing", 0.5)