X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=blender%2Fio_mspgl%2Fmesh.py;h=3b1c74dfbec9675403226a3435fed354ffed7ef8;hb=74a5bc6159d2c753786a5ef6bf785263cd0538f1;hp=fb568ec416fb04739ef7b49c8b2bbd0a1f9f972e;hpb=308dc6b8f5ee1aa3bb8f205e2ed6464749eebbe5;p=libs%2Fgl.git diff --git a/blender/io_mspgl/mesh.py b/blender/io_mspgl/mesh.py index fb568ec4..3b1c74df 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 @@ -181,7 +179,7 @@ class Mesh: if mesh.use_uv=='NONE' or not mesh.uv_layers: self.uv_layers = [] else: - self.uv_layers = [UvLayer(u) for u in mesh.uv_layers] + self.uv_layers = [UvLayer(u) for u in mesh.uv_layers if u.data] # Assign texture unit numbers to UV layers that lack one missing_unit = [u for u in self.uv_layers if u.unit is None] @@ -193,7 +191,7 @@ class Mesh: self.uv_layers = sorted(self.uv_layers, key=(lambda u: u.unit)) - if mesh.use_uv=='UNIT0': + if mesh.use_uv=='UNIT0' and self.uv_layers: self.uv_layers = [self.uv_layers[0]] if self.uv_layers[0].unit!=0: self.uv_layers = [] @@ -708,7 +706,8 @@ class Mesh: # Keep track of the score and number of unused faces for each vertex vertex_info = [[0, len(v.faces)] for v in self.vertices] for vi in vertex_info: - vi[0] = valence_boost_scale*(vi[1]**valence_boost_power) + if vi[1]: + vi[0] = valence_boost_scale*(vi[1]**valence_boost_power) face = None reordered_faces = [] @@ -783,6 +782,11 @@ class Mesh: v.index = len(reordered_vertices) reordered_vertices.append(v) + for v in self.vertices: + if v.index<0: + v.index = len(reordered_vertices) + reordered_vertices.append(v) + self.vertices = reordered_vertices for e in self.edges: @@ -812,7 +816,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