From abcb2a9facf73b39c08c0717a07618b6685835e1 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Sat, 28 Aug 2021 20:52:21 -0400 Subject: [PATCH] extract name from 3mf object when available --- src/kiri/main.js | 4 ++++ src/moto/load-3mf.js | 22 +++++++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/kiri/main.js b/src/kiri/main.js index 79cd1b9c..4800510e 100644 --- a/src/kiri/main.js +++ b/src/kiri/main.js @@ -2486,6 +2486,10 @@ console.log/** Copyright Stewart Allen -- All Rights Reserved */ MOTO.TMF.parse(e.target.result).then(models => { console.log({models}); for (let model of models) { + let name = e.target.file.name; + if (model.name) { + name = model.name + ' - ' + name; + } platform.add( newWidget(undefined,group) .loadVertices(model.faces.toFloat32()) diff --git a/src/moto/load-3mf.js b/src/moto/load-3mf.js index 9ddda4ae..b7c6025b 100644 --- a/src/moto/load-3mf.js +++ b/src/moto/load-3mf.js @@ -32,22 +32,25 @@ let models = []; function emitModel(model, faces) { - models.push({model, faces}); + if (faces && faces.length) { + models.push({name: model, faces}); + } } return new Promise((resolve, reject) => { let model; let faces; + let units; - query(doc, ["+model","resources","object","+mesh"], (type, node) => { - console.log({type, node}); + query(doc, ["+model","resources","+object","+mesh"], (type, node) => { switch (type) { case "model": - if (model) { - emitModel(mode, faces); - } - model = node; + units = node.getAttribute("unit"); + break; + case "object": + emitModel(model, faces); faces = []; + model = node.getAttribute("name") || undefined; break; case "mesh": let vertices = []; @@ -70,10 +73,7 @@ } }); - if (model) { - emitModel(model, faces); - } - + emitModel(model, faces); resolve(models); }); }