[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15004] branches/harmonic-skeleton/release /scripts/reeb.py: Reeb Graph importer (for debuging purpose only)

Martin Poirier theeth at yahoo.com
Tue May 27 15:24:38 CEST 2008


Revision: 15004
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15004
Author:   theeth
Date:     2008-05-27 15:24:38 +0200 (Tue, 27 May 2008)

Log Message:
-----------
Reeb Graph importer (for debuging purpose only)

Added Paths:
-----------
    branches/harmonic-skeleton/release/scripts/reeb.py

Added: branches/harmonic-skeleton/release/scripts/reeb.py
===================================================================
--- branches/harmonic-skeleton/release/scripts/reeb.py	                        (rev 0)
+++ branches/harmonic-skeleton/release/scripts/reeb.py	2008-05-27 13:24:38 UTC (rev 15004)
@@ -0,0 +1,96 @@
+#!BPY
+ 
+"""
+Name: 'Reeb graph import'
+Blender: 245
+Group: 'Import'
+Tooltip: 'Imports a reeb graph saved after skeleton generation'
+"""
+import Blender
+
+def name(count):
+	if count == -1:
+		return ""
+	else:
+		return "%05" % count
+
+def importGraph(count):
+	me = Blender.Mesh.New("graph%s" % name(count))
+	scn = Blender.Scene.GetCurrent()
+	
+	f = open("test%s.txt" % name(count), "r")
+	
+	verts = []
+	edges = []
+	faces = []
+	
+	i = 0
+	first = False
+	
+	SIZE = 0.3
+	WITH_NODE = True
+	
+	def addNode(v, s, verts, faces):
+		if WITH_NODE:
+			v1 = [v[0], v[1], v[2] + s]
+			i1 = len(verts)
+			verts.append(v1)
+			v2 = [v[0], v[1] + 0.959 * s, v[2] - 0.283 * s]
+			i2 = len(verts)
+			verts.append(v2)
+			v3 = [v[0] - 0.830 * s, v[1] - 0.479 * s, v[2] - 0.283 * s]
+			i3 = len(verts)
+			verts.append(v3)
+			v4 = [v[0] + 0.830 * s, v[1] - 0.479 * s, v[2] - 0.283 * s]
+			i4 = len(verts)
+			verts.append(v4)
+			
+			faces.append([i1,i2,i3])
+			faces.append([i1,i3,i4])
+			faces.append([i2,i3,i4])
+			faces.append([i1,i2,i4])
+			
+			return 4
+		else:
+			return 0
+		
+	for line in f:
+		data = line.strip().split(" ")
+		if data[0] == "v1":
+			v = [float(x) for x in data[-3:]]
+			i += addNode(v, SIZE, verts, faces)
+			verts.append(v)
+			i += 1
+		elif data[0] == "v2":
+			pass
+			v = [float(x) for x in data[-3:]]
+			verts.append(v)
+			edges.append((i-1, i))
+			i += 1
+			i += addNode(v, SIZE, verts, faces)
+		elif data[0] == "b":
+			verts.append([float(x) for x in data[-3:]])
+			edges.append((i-1, i))
+			i += 1
+#		elif data[0] == "angle":
+#			obj = scn.objects.new('Empty')
+#			obj.loc = (float(data[1]), float(data[2]), float(data[3]))
+#			obj.properties["angle"] = data[4]
+#			del obj
+                        
+                        
+	me.verts.extend(verts)
+	me.edges.extend(edges)
+	me.faces.extend(faces)
+	
+	
+	ob = scn.objects.new(me, "graph%s" % name(count))
+	del ob
+	del scn
+	
+
+#for i in range(16):
+#	importGraph(i)
+
+if __name__=='__main__':
+	importGraph(-1)





More information about the Bf-blender-cvs mailing list