[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14844] trunk/blender/release/scripts/ flt_export.py: -> FLT Export bugfix

Geoffrey Bantle hairbat at yahoo.com
Wed May 14 21:29:33 CEST 2008


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")





More information about the Bf-blender-cvs mailing list