Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoffrey Bantle <hairbat@yahoo.com>2008-05-14 23:29:33 +0400
committerGeoffrey Bantle <hairbat@yahoo.com>2008-05-14 23:29:33 +0400
commit9f7bc14c572bec936ba5f87c3d7ecc09a852e923 (patch)
tree8398f0e8cab01a113b0671f9d61442e40c151eba /release
parentd1b04a3a9d67f054d978c407461c3f92161a4cc8 (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.py39
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")