const GLTFExporter = require('./three/GLTFExporter').GLTFExporter; /** * Provides an object which uses for exporting the scene * * @class * @author Alan Wu * @return {SceneExporter} */ const SceneExporter = function (sceneIn) { const scene = sceneIn; this.exportGLTF = (binary) => { const rootRegion = scene.getRootRegion(); const zincObjects = rootRegion.getAllObjects(true); const animations = []; zincObjects.forEach(zincObject => { if (zincObject.animationClip) { animations.push({clip: zincObject.animationClip[0], mesh: zincObject.getMorph()}); } }); const exporter = new GLTFExporter(); const options = { binary, animations }; return new Promise((resolve, reject) => { exporter.parse( scene.getThreeJSScene(), function ( gltf ) { resolve(gltf); }, options ); }); } } exports.SceneExporter = SceneExporter;