From: daid303 Date: Fri, 26 Apr 2013 11:49:30 +0000 (+0200) Subject: Support basic saving of AMF. X-Git-Tag: 13.05~44 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=ce625a5c367a80b44846fcec6aa07b12af726a21;p=cura.git Support basic saving of AMF. --- diff --git a/Cura/util/meshLoaders/amf.py b/Cura/util/meshLoaders/amf.py index ad007705..8b68cbb4 100644 --- a/Cura/util/meshLoaders/amf.py +++ b/Cura/util/meshLoaders/amf.py @@ -1,5 +1,6 @@ from __future__ import absolute_import +import cStringIO as StringIO import zipfile try: from xml.etree import cElementTree as ElementTree @@ -74,3 +75,44 @@ def loadScene(filename): ret.append(obj) return ret + +def saveScene(filename, objects): + xml = StringIO.StringIO() + xml.write('\n') + xml.write('\n') + n = 0 + for obj in objects: + n += 1 + xml.write(' \n' % (n)) + xml.write(' \n') + xml.write(' \n') + for m in obj._meshList: + for v in m.vertexes: + xml.write(' \n') + xml.write(' \n') + xml.write(' %f\n' % (v[0])) + xml.write(' %f\n' % (v[1])) + xml.write(' %f\n' % (v[2])) + xml.write(' \n') + xml.write(' \n') + xml.write(' \n') + + idxOffset = 0 + for m in obj._meshList: + xml.write(' \n') + for idx in xrange(0, len(m.vertexes), 3): + xml.write(' \n') + xml.write(' %i\n' % (idx + idxOffset)) + xml.write(' %i\n' % (idx + idxOffset + 1)) + xml.write(' %i\n' % (idx + idxOffset + 2)) + xml.write(' \n') + xml.write(' \n') + xml.write(' \n') + idxOffset += len(m.vertexes) + xml.write(' \n') + xml.write('\n') + + zfile = zipfile.ZipFile(filename, "w", zipfile.ZIP_DEFLATED) + zfile.writestr(filename, xml.getvalue()) + zfile.close() + xml.close()