From 77eae604c7e15b27f556338a7e11dc89d530241e Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Wed, 29 Dec 2021 16:49:15 -0500 Subject: [PATCH] add mesh.object -- add dependencies to loaders --- src/add/three.js | 2 ++ src/load/3mf.js | 1 + src/load/file.js | 8 +++++++- src/load/svg.js | 4 +++- src/main/mesh.js | 6 +++++- src/mesh/object.js | 29 +++++++++++++++++++++++++++++ src/mesh/pool.js | 8 ++++---- src/mesh/work.js | 16 ++++++++-------- src/moto/orbit.js | 4 +++- src/moto/space.js | 4 +--- 10 files changed, 63 insertions(+), 19 deletions(-) create mode 100644 src/mesh/object.js diff --git a/src/add/three.js b/src/add/three.js index 26c51f4e..e9c99413 100644 --- a/src/add/three.js +++ b/src/add/three.js @@ -5,6 +5,8 @@ (function() { // dep: ext.three + // dep: ext.three-bgu + // dep: ext.three-svg gapp.register('add.three'); var MP = THREE.Mesh.prototype, diff --git a/src/load/3mf.js b/src/load/3mf.js index 2a194dba..8f75e63b 100644 --- a/src/load/3mf.js +++ b/src/load/3mf.js @@ -7,6 +7,7 @@ let load = self.load = self.load || {}; if (load.TMF) return; +// dep: ext.jszip gapp.register('load.3mf'); load.TMF = { diff --git a/src/load/file.js b/src/load/file.js index 3ab84e20..8fd51993 100644 --- a/src/load/file.js +++ b/src/load/file.js @@ -7,7 +7,13 @@ let load = self.load = self.load || {}; if (load.File) return; -gapp.register('load.file'); +gapp.register('load.file', [ + 'load.3mf', // dep: load.3mf + 'load.obj', // dep: load.obj + 'load.stl', // dep: load.stl + 'load.svg', // dep: load.svg + 'load.url', // dep: load.url +]); load.File = { load_data, load_data, diff --git a/src/load/svg.js b/src/load/svg.js index ef32894c..a79ecaf2 100644 --- a/src/load/svg.js +++ b/src/load/svg.js @@ -7,7 +7,9 @@ let load = self.load = self.load || {}; if (load.SVG) return; -gapp.register('load.svg'); +gapp.register('load.svg', [ + 'add.three', // dep: add.three +]); load.SVG = { parse, diff --git a/src/main/mesh.js b/src/main/mesh.js index e3fde86c..27c88261 100644 --- a/src/main/mesh.js +++ b/src/main/mesh.js @@ -84,7 +84,9 @@ broker.subscribe('space_init', data => { // add object loader broker.subscribe('space_load', data => { - console.log({space_load: data}); + for (let od of data) { + new mesh.object(od); + } }); // remove version cache bust from url @@ -104,6 +106,8 @@ gapp.finalize("main.mesh", [ "moto.client", // dep: moto.client "moto.broker", // dep: moto.broker "moto.space", // dep: moto.space + "mesh.object", // dep: mesh.object + "load.file", // dep: load.file ]); })(); diff --git a/src/mesh/object.js b/src/mesh/object.js new file mode 100644 index 00000000..3d44c470 --- /dev/null +++ b/src/mesh/object.js @@ -0,0 +1,29 @@ +/** Copyright Stewart Allen -- All Rights Reserved */ + +"use strict"; + +(function() { + +gapp.register("mesh.object", [ + "add.three", // dep: add.three + "moto.license", // dep: moto.license + "moto.worker", // dep: moto.worker +]); + +let mesh = self.mesh = self.mesh || {}; +if (mesh.object) return; + +mesh.object = class MeshObject { + constructor(data) { + let { file, mesh } = data; + + if (!mesh) { + dbug.error(`'${file}' missing mesh data`); + return; + } + + console.log({new_mesh_object: data}); + } +}; + +})(); diff --git a/src/mesh/pool.js b/src/mesh/pool.js index ff0328cb..27935635 100644 --- a/src/mesh/pool.js +++ b/src/mesh/pool.js @@ -4,9 +4,9 @@ (function() { - gapp.finalize("mesh.pool", [ - "moto.license", // dep: moto.license - "moto.worker" // dep: moto.worker - ]); +gapp.finalize("mesh.pool", [ + "moto.license", // dep: moto.license + "moto.worker" // dep: moto.worker +]); })(); diff --git a/src/mesh/work.js b/src/mesh/work.js index 47c8acd4..9d04b946 100644 --- a/src/mesh/work.js +++ b/src/mesh/work.js @@ -4,14 +4,14 @@ (function() { - // start worker pool (disabled for now with *0) - moto.client.start(`/code/mesh_pool?${gapp.version}`, moto.client.max() * 0); +// start worker pool (disabled for now with *0) +moto.client.start(`/code/mesh_pool?${gapp.version}`, moto.client.max() * 0); - // dep: ext.three - // dep: ext.three-bgu - gapp.finalize("mesh.work", [ - "moto.license", // dep: moto.license - "moto.client" // dep: moto.client - ]); +// dep: ext.three +// dep: ext.three-bgu +gapp.finalize("mesh.work", [ + "moto.license", // dep: moto.license + "moto.client" // dep: moto.client +]); })(); diff --git a/src/moto/orbit.js b/src/moto/orbit.js index cafa097d..49109076 100644 --- a/src/moto/orbit.js +++ b/src/moto/orbit.js @@ -6,7 +6,9 @@ let MOTO = self.moto = self.moto || {}; -gapp.register('moto.orbit'); +gapp.register('moto.orbit', [ + 'add.three', // dep: add.three +]); /** * Adapted from THREE.OrbitControls diff --git a/src/moto/space.js b/src/moto/space.js index cf221c18..83059137 100644 --- a/src/moto/space.js +++ b/src/moto/space.js @@ -4,10 +4,8 @@ (function() { // dep: ext.tween - // dep: ext.three - // dep: ext.three-bgu - // dep: ext.three-svg gapp.register('moto.space', [ + 'add.three', // dep: add.three 'add.array', // dep: add.array 'moto.orbit' // dep: moto.orbit ]);