diff options
author | Geoffrey Bantle <hairbat@yahoo.com> | 2008-05-14 23:29:33 +0400 |
---|---|---|
committer | Geoffrey Bantle <hairbat@yahoo.com> | 2008-05-14 23:29:33 +0400 |
commit | 9f7bc14c572bec936ba5f87c3d7ecc09a852e923 (patch) | |
tree | 8398f0e8cab01a113b0671f9d61442e40c151eba /release | |
parent | d1b04a3a9d67f054d978c407461c3f92161a4cc8 (diff) |
-> FLT Export bugfix
Export of open faces on export was dropping
the last vertex. Also removed recursion from
function in order to make it safe for large polygons.
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/flt_export.py | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/release/scripts/flt_export.py b/release/scripts/flt_export.py index 35022a69bbb..5a89c58a375 100644 --- a/release/scripts/flt_export.py +++ b/release/scripts/flt_export.py @@ -639,20 +639,37 @@ class FLTNode(Node): #first pass: do open faces for vert in wireverts: if not visited[vert] and vertuse[vert.index][1] == 1: - visited[vert] = True - loop = [vert] - othervert = edge_get_othervert(vert, disk[vert][0]) - self.vertwalk(othervert, loop, disk, visited) + loop = list() + done = 0 + startvert = vert + while not done: + done = 1 + visited[startvert] = True + loop.append(startvert) + for edge in disk[startvert]: + othervert = edge_get_othervert(startvert, edge) + if not visited[othervert]: + done = 0 + startvert = othervert + break if len(loop) > 2: loops.append( ('Open', loop) ) - for vert in wireverts: if not visited[vert]: - visited[vert] = True - loop = [vert] - othervert = edge_get_othervert(vert,disk[vert][0]) - self.vertwalk(othervert, loop, disk, visited) + loop = list() + done = 0 + startvert = vert + while not done: + done = 1 + visited[startvert] = True + loop.append(startvert) + for edge in disk[startvert]: + othervert = edge_get_othervert(startvert,edge) + if not visited[othervert]: + done = 0 + startvert = othervert + break if len(loop) > 2: loops.append( ('closed', loop) ) - + #now go through the loops and append. for l in loops: (ftype, loop) = l @@ -666,6 +683,8 @@ class FLTNode(Node): face_desc.color_index = 227 self.face_lst.append(face_desc) + + def sortFLTFaces(self,a,b): aindex = a.getProperty("FLT_ORIGINDEX") bindex = b.getProperty("FLT_ORIGINDEX") |