[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