cache = VertexCache(self.cache_size)
island = []
+ face_neighbors = []
island_strips = []
while 1:
if not island:
face = queue.pop(0)
island.append(face)
- for n in f.get_neighbors():
+ for n in face.get_neighbors():
if not n.flag:
n.flag = True
queue.append(n)
+ face_neighbors = [f.get_neighbors() for f in island]
+
# Unflag the island for the next phase
for f in island:
f.flag = False
# or along borders of a non-closed island.
best = 5
face = None
- for f in island:
+ for i, f in enumerate(island):
if f.flag:
continue
- score = sum(not n.flag for n in f.get_neighbors())
+ score = sum(not n.flag for n in face_neighbors[i])
if score>0 and score<best:
face = f
best = score
def export(self, context, out_file, objs=None, progress=None):
if objs:
- objs = [(o, mathutils.Matrix()) for i in objs]
+ objs = [(o, mathutils.Matrix()) for o in objs]
if self.compound:
if objs is None:
fmt = ["NORMAL3"]
if texunits:
for i, u in texunits:
+ size = str(len(mesh.vertices[0].uvs[i]))
if u.unit==0 or force_unit0:
- fmt.append("TEXCOORD2")
+ fmt.append("TEXCOORD"+size)
else:
- fmt.append("TEXCOORD2_%d"%u.unit)
+ fmt.append("TEXCOORD%s_%d"%(size, u.unit))
if self.tbn_vecs:
fmt += ["TANGENT3", "BINORMAL3"]
if self.export_groups:
normal = v.normal
for i, u in texunits:
if v.uvs[i]!=uvs.get(i):
+ size = str(len(v.uvs[i]))
if u.unit==0 or force_unit0:
- out_file.write("texcoord2", *v.uvs[i])
+ out_file.write("texcoord"+size, *v.uvs[i])
else:
- out_file.write("multitexcoord2", u.unit, *v.uvs[i])
+ out_file.write("multitexcoord"+size, u.unit, *v.uvs[i])
uvs[i] = v.uvs[i]
if self.tbn_vecs:
if v.tan!=tan: