Revision: 14844
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14844
Author:   briggs
Date:     2008-05-14 21:29:33 +0200 (Wed, 14 May 2008)

Log Message:
-----------
-> 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.

Modified Paths:
--------------
    trunk/blender/release/scripts/flt_export.py

Modified: trunk/blender/release/scripts/flt_export.py
===================================================================
--- trunk/blender/release/scripts/flt_export.py 2008-05-14 18:25:23 UTC (rev 
14843)
+++ trunk/blender/release/scripts/flt_export.py 2008-05-14 19:29:33 UTC (rev 
14844)
@@ -639,20 +639,37 @@
                #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 @@
                                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")


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to