]> git.tdb.fi Git - libs/math.git/blobdiff - blender/io_mspmath/outfile.py
Add a Blender operator to export shapes
[libs/math.git] / blender / io_mspmath / outfile.py
diff --git a/blender/io_mspmath/outfile.py b/blender/io_mspmath/outfile.py
new file mode 100644 (file)
index 0000000..2c747a8
--- /dev/null
@@ -0,0 +1,37 @@
+import sys
+
+class OutFile:
+       def __init__(self, fn):
+               self.filename = fn
+               if fn==None:
+                       self.file = sys.stdout
+               else:
+                       self.file = open(fn, "w")
+               self.indent = 0
+
+       def make(self, kwd, *params):
+               pstr = ""
+               for p in params:
+                       if type(p)==float:
+                               pstr += " %#.6g"%p
+                       else:
+                               pstr += " %s"%p
+               return "%s%s"%(kwd, pstr)
+
+       def write(self, kwd, *params):
+               self.file.write("%s%s;\n"%('\t'*self.indent, self.make(kwd, *params)))
+
+       def begin(self, kwd, *params):
+               i = '\t'*self.indent
+               self.file.write("%s%s\n%s{\n"%(i, self.make(kwd, *params), i))
+               self.indent += 1
+
+       def end(self):
+               self.indent -= 1
+               self.file.write("%s};\n"%('\t'*self.indent))
+
+
+def open_output(f):
+       if isinstance(f, OutFile):
+               return f
+       return OutFile(f)