-from .outfile import OutFile
-
class ArmatureExporter:
- def export(self, context, fn):
+ def export_to_file(self, context, out_fn):
obj = context.active_object
+
+ statements = self.export_armature(context, obj)
+
+ with open(out_fn, "w") as out_file:
+ for s in statements:
+ s.write_to_file(out_file)
+
+ def export_armature(self, obj):
if obj.type!="ARMATURE":
- raise Exception("Can only export Armature data")
+ raise Exception("Object is not an armature")
from .armature import Armature
-
armature = Armature(obj.data)
armature.sort_links()
- out_file = OutFile(fn)
+ from .datafile import Statement
+ statements = []
+
for l in armature.links:
- out_file.begin("link", '"{}"'.format(l.name))
- out_file.write("index", l.index)
+ st = Statement("link", l.name)
+ st.sub.append(Statement("index", l.index))
if l.parent:
- out_file.write("parent", '"{}"'.format(l.parent.name))
- out_file.write("base", *tuple(l.base))
- out_file.end()
+ st.sub.append(Statement("parent", l.parent.name))
+ st.sub.append(Statement("base", *tuple(l.base)))
+ statements.append(st)
+
+ return statements