From b6e0c1783b00fb661bc549c81746e8db854511bb Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Sat, 26 Feb 2022 00:06:24 -0500 Subject: [PATCH] wire up default png loading into load.file for mesh:tool --- src/load/file.js | 10 +++++++++- src/load/png.js | 4 +++- src/load/svg.js | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/load/file.js b/src/load/file.js index d0bff3c9..1c6572bf 100644 --- a/src/load/file.js +++ b/src/load/file.js @@ -12,6 +12,7 @@ if (load.File) return; // dep: load.stl // dep: load.svg // dep: load.url +// dep: load.png gapp.register('load.file', []); load.File = { @@ -52,6 +53,13 @@ function load_data(data, file, ext) { case "svg": resolve(load.SVG.parse(data).map(m => { return {mesh: m.toFloat32(), file} })); break; + case "png": + load.PNG.parse(data, { + done(data) { + resolve({ mesh: data, file }); + } + }); + break; default: reject(`unknown file type: "${ext}" from ${file}`); break; @@ -76,7 +84,7 @@ function load_file(file) { .then(data => resolve(data)) .catch(e => reject(e)); }; - if (ext === 'stl') { + if (["stl","png","3mf"].indexOf(ext) >= 0) { reader.readAsArrayBuffer(reader.file); } else { reader.readAsBinaryString(reader.file); diff --git a/src/load/png.js b/src/load/png.js index caa1e706..c01b63cf 100644 --- a/src/load/png.js +++ b/src/load/png.js @@ -34,7 +34,9 @@ function parse(bin, opt = {}) { let ondone = opt.done || noop; img.parse(bin, (err, output) => { let { width, height, data } = output; - let { outHeight, outWidth } = opt; + // let { outHeight, outWidth } = opt; + let outHeight = opt.outHeight || height; + let outWidth = opt.outWidth || width; let imageAspect = height / width; let deviceAspect = outHeight / outWidth; let div = 1; diff --git a/src/load/svg.js b/src/load/svg.js index 2e8f1c69..03742797 100644 --- a/src/load/svg.js +++ b/src/load/svg.js @@ -34,7 +34,7 @@ function parse(text, opt = {}) { bevelEnabled: false }); let array = geom.attributes.position.array; - // invert y + // invert y (todo: invert vertex order otherwise normals inverted) for (let i=0; i