diff --git a/app.js b/app.js index fda033a3..af23300e 100644 --- a/app.js +++ b/app.js @@ -70,7 +70,7 @@ function init(mod) { if (!crec) { cache[path] = rec; for (let d of rec.deps) find_refs(cache, d); - for (let u of rec.deps) find_refs(cache, u); + for (let u of rec.uses) find_refs(cache, u); } return; } @@ -112,6 +112,12 @@ function init(mod) { } } // if (xxxx) console.log({path, ...rec}); + if (false) { + let seek = 'mesh/api'; + if (rec.uses.indexOf(seek) >= 0 || rec.deps.indexOf(seek) >= 0) { + console.log({PULLS:seek, path}); + } + } callstack.pop(); } @@ -170,7 +176,7 @@ function init(mod) { const list = val.map(p => p.charAt(0) === '&' ? p.substring(1) : p); const cache = {}; const roots = []; - // xxxx = key === "kiri_work"; + // xxxx = key === "mesh_work"; // for each path in the list, find deps and add to list for (let path of val) { let fc = path.charAt(0); @@ -385,68 +391,16 @@ const script = { "@inject", "@devices", "@icons", + "kiri/ui", "&main/kiri", "&kiri/lang-en" ], kiri_work : [ - // "main/gapp", - "moto/license", "@inject", - "ext/three", - "ext/pngjs", - "ext/jszip", - "ext/clip2", - "ext/earcut", - "add/array", - "add/three", - "add/class", - "geo/base", - "geo/wasm", - "geo/paths", - "geo/point", - "geo/points", - "geo/slope", - "geo/line", - "geo/bounds", - "geo/polygons", - "geo/polygon", - "geo/gyroid", - "geo/slicer", - "geo/mesh", - // "moto/broker", - "kiri/consts", - "kiri/pack", - "kiri/utils", - "kiri/slice", - "kiri/print", - "kiri/layers", - "kiri-mode/fdm/fill", - "kiri-mode/fdm/driver", - "kiri-mode/fdm/slice", - "kiri-mode/fdm/prepare", - "kiri-mode/fdm/export", - "kiri-mode/sla/driver", - "kiri-mode/sla/slice", - "kiri-mode/sla/export", - "kiri-mode/sla/x_cxdlp", - "kiri-mode/sla/x_photon", - "kiri-mode/cam/slicer", - "kiri-mode/cam/driver", - "kiri-mode/cam/ops", - "kiri-mode/cam/tool", - "kiri-mode/cam/topo", - "kiri-mode/cam/slice", - "kiri-mode/cam/prepare", - "kiri-mode/cam/export", - "kiri-mode/cam/animate", - "kiri-mode/laser/driver", - "kiri/widget", - "kiri/codec", "kiri/worker", - "main/kiri", + "&main/kiri", ], kiri_pool : [ - // "main/gapp", "moto/license", "@inject", "ext/clip2", @@ -476,9 +430,7 @@ const script = { "main/kiri", ], engine : [ - // "main/gapp", "moto/license", - "main/kiri", "@inject", "ext/clip2", "data/local", @@ -504,14 +456,13 @@ const script = { "kiri/layers", "kiri/widget", "kiri/codec", - "kiri-run/engine" + "kiri-run/engine", + "main/kiri", ], frame : [ - // "main/gapp", "kiri-run/frame" ], meta : [ - // "main/gapp", "moto/license", "main/meta", ], diff --git a/src/cli/kiri-source.json b/src/cli/kiri-source.json index 0b359b32..96533af2 100644 --- a/src/cli/kiri-source.json +++ b/src/cli/kiri-source.json @@ -2,7 +2,6 @@ "main/gapp", "moto/license", "moto/broker", - "main/kiri", "ext/three", "ext/pngjs", "ext/jszip", @@ -55,4 +54,5 @@ "kiri/codec", "kiri/worker", "kiri-run/engine", + "main/kiri", ] diff --git a/src/geo/polygon.js b/src/geo/polygon.js index be8cc9ac..11ba8b3c 100644 --- a/src/geo/polygon.js +++ b/src/geo/polygon.js @@ -4,9 +4,10 @@ // dep: geo.base // dep: ext.clip2 +// dep: ext.earcut // dep: geo.point // dep: geo.bounds -// use: geo.polygons +// dep: geo.polygons gapp.register("geo.polygon", [], (root, exports) => { const { base } = root; diff --git a/src/geo/polygons.js b/src/geo/polygons.js index 61a0736a..48d76c80 100644 --- a/src/geo/polygons.js +++ b/src/geo/polygons.js @@ -4,6 +4,8 @@ // dep: geo.base // dep: geo.point +// use: ext.clip2 +// use: geo.slope // use: geo.polygon gapp.register("base.polygons", [], (root, exports) => { diff --git a/src/kiri-mode/cam/animate.js b/src/kiri-mode/cam/animate.js index 438df834..83608374 100644 --- a/src/kiri-mode/cam/animate.js +++ b/src/kiri-mode/cam/animate.js @@ -2,12 +2,11 @@ "use strict"; -// dep: kiri.api // dep: kiri-mode.cam.driver gapp.register("kiri-mode.cam.animate", [], (root, exports) => { const { kiri } = root; -const { api, driver } = kiri; +const { driver } = kiri; const { CAM } = driver; let meshes = {}, @@ -33,14 +32,14 @@ kiri.load(() => { const { moto } = root; const { space } = moto; - const { world } = space; + const { api } = kiri; function animate_clear(api) { kiri.client.animate_cleanup(); $('layer-animate').innerHTML = ''; $('layer-toolpos').innerHTML = ''; Object.keys(meshes).forEach(id => deleteMesh(id)); - } + } function animate(api, delay) { kiri.client.animate_setup(api.conf.get(), data => { @@ -82,13 +81,13 @@ kiri.load(() => { animate(data, ondone) { kiri.client.send("animate", data, ondone); }, - + animate_setup(settings, ondone) { color = settings.controller.dark ? 0x888888 : 0; unitScale = settings.controller.units === 'in' ? 1/25.4 : 1; kiri.client.send("animate_setup", {settings}, ondone); }, - + animate_cleanup(data, ondone) { kiri.client.send("animate_cleanup", data, ondone); } @@ -109,7 +108,7 @@ kiri.load(() => { color }); const mesh = new THREE.LineSegments(geo, mat); - world.add(mesh); + space.world.add(mesh); meshes[id] = mesh; } @@ -129,7 +128,7 @@ kiri.load(() => { } function deleteMesh(id) { - world.remove(meshes[id]); + space.world.remove(meshes[id]); delete meshes[id]; } @@ -244,7 +243,7 @@ kiri.load(() => { kiri.worker.animate_setup = function(data, send) { const { settings } = data; const { process } = settings; - const print = current.print; + const print = worker.print; const density = parseInt(settings.controller.animesh) * 1000; pathIndex = 0; @@ -519,7 +518,7 @@ kiri.load(() => { pos[(dx * pix + dy) * 3 + 2] = -dz; } send.data({ mesh_add: { id:++toolID, pos, ind }}); - } + } // load renderer code in worker context only if (kiri.worker && false) diff --git a/src/kiri-mode/cam/driver.js b/src/kiri-mode/cam/driver.js index 966a4eb1..c164ff4b 100644 --- a/src/kiri-mode/cam/driver.js +++ b/src/kiri-mode/cam/driver.js @@ -3,13 +3,6 @@ "use strict"; // dep: main.kiri -// use: kiri.api -// use: kiri.widgets -// use: kiri-mode.cam.client -// use: kiri-mode.cam.slice -// use: kiri-mode.cam.prepare -// use: kiri-mode.cam.export -// use: kiri-mode.cam.tool gapp.register("kiri-mode.cam.driver", [], (root, exports) => { const { kiri } = root; diff --git a/src/kiri-mode/fdm/driver.js b/src/kiri-mode/fdm/driver.js index 31b4858d..80aa52b7 100644 --- a/src/kiri-mode/fdm/driver.js +++ b/src/kiri-mode/fdm/driver.js @@ -2,11 +2,6 @@ "use strict"; -// use: kiri.api -// use: kiri-mode.fdm.client -// use: kiri-mode.fdm.slice -// use: kiri-mode.fdm.prepare -// use: kiri-mode.fdm.export gapp.register("kiri-mode.fdm.driver", [], (root, exports) => { const { kiri } = root; diff --git a/src/kiri-mode/fdm/export.js b/src/kiri-mode/fdm/export.js index b59b0521..8fc21d5f 100644 --- a/src/kiri-mode/fdm/export.js +++ b/src/kiri-mode/fdm/export.js @@ -3,7 +3,6 @@ "use strict"; // dep: geo.base -// dep: kiri.api // dep: kiri.utils // dep: kiri-mode.fdm.driver gapp.register("kiri-mode.fdm.export", [], (root, exports) => { diff --git a/src/kiri-mode/fdm/fill.js b/src/kiri-mode/fdm/fill.js index b4949232..1eea8641 100644 --- a/src/kiri-mode/fdm/fill.js +++ b/src/kiri-mode/fdm/fill.js @@ -3,7 +3,6 @@ "use strict"; // dep: geo.base -// dep: kiri.api // dep: kiri-mode.fdm.driver gapp.register("kiri-mode.fdm.fill", [], (root, exports) => { diff --git a/src/kiri-mode/fdm/prepare.js b/src/kiri-mode/fdm/prepare.js index dd51421c..25d4604c 100644 --- a/src/kiri-mode/fdm/prepare.js +++ b/src/kiri-mode/fdm/prepare.js @@ -6,12 +6,10 @@ // dep: geo.paths // dep: geo.point // dep: geo.polygons -// dep: kiri.api // dep: kiri.utils // dep: kiri.slice // dep: kiri.consts // dep: kiri-mode.fdm.driver -// use: kiri.client gapp.register("kiri-mode.fdm.prepare", [], (root, exports) => { const { base, kiri, noop } = root; diff --git a/src/kiri-mode/fdm/slice.js b/src/kiri-mode/fdm/slice.js index 5973798b..09d779f5 100644 --- a/src/kiri-mode/fdm/slice.js +++ b/src/kiri-mode/fdm/slice.js @@ -5,7 +5,6 @@ // dep: geo.base // dep: geo.slicer // dep: geo.polygons -// dep: kiri.api // dep: kiri.utils // dep: kiri.consts // dep: kiri-mode.fdm.driver diff --git a/src/kiri-mode/laser/driver.js b/src/kiri-mode/laser/driver.js index 57bf77b7..88bda957 100644 --- a/src/kiri-mode/laser/driver.js +++ b/src/kiri-mode/laser/driver.js @@ -5,6 +5,7 @@ // dep: geo.polygons // dep: geo.point // dep: kiri.slice +// use: kiri.pack gapp.register("kiri-mode.laser.driver", [], (root, exports) => { const { base, kiri } = root; diff --git a/src/kiri-mode/sla/driver.js b/src/kiri-mode/sla/driver.js index a5e66127..3054f9c1 100644 --- a/src/kiri-mode/sla/driver.js +++ b/src/kiri-mode/sla/driver.js @@ -3,10 +3,6 @@ "use strict"; // use: kiri.print -// use: kiri.client -// use: kiri-mode.sla.client -// use: kiri-mode.sla.slice -// use: kiri-mode.sla.export gapp.register("kiri-mode.sla.driver", [], (root, exports) => { const { kiri } = root diff --git a/src/kiri-mode/sla/slice.js b/src/kiri-mode/sla/slice.js index dd8bca39..c55e0aea 100644 --- a/src/kiri-mode/sla/slice.js +++ b/src/kiri-mode/sla/slice.js @@ -8,6 +8,7 @@ // dep: geo.polygons // dep: kiri.slice // dep: kiri-mode.sla.driver +// use: ext.pngjs gapp.register("kiri-mode.sla.slice", [], (root, exports) => { const { base, kiri } = root; diff --git a/src/kiri-run/engine.js b/src/kiri-run/engine.js index 255aa7cd..2de427bd 100644 --- a/src/kiri-run/engine.js +++ b/src/kiri-run/engine.js @@ -2,29 +2,20 @@ "use strict"; -(function() { +gapp.register("kiri-run.engine", [], (root, exports) => { -let KIRI = self.kiri = self.kiri || {}; -KIRI.newEngine = ()=> { return new Engine ()}; - -if (!KIRI.api) { - KIRI.api = { - event: { - emit: () => {} - } - }; -} +const { kiri } = root; class Engine { constructor() { - this.widget = KIRI.newWidget(); + this.widget = kiri.newWidget(); this.settings = { mode: "FDM", controller: {}, render: false, filter: { FDM: "internal" }, - device: KIRI.conf.defaults.fdm.d, // device profile - process: KIRI.conf.defaults.fdm.p, // slicing settings + device: kiri.conf.defaults.fdm.d, // device profile + process: kiri.conf.defaults.fdm.p, // slicing settings widget: { [ this.widget.id ]: {} } }; this.listener = () => {}; @@ -45,7 +36,7 @@ class Engine { } clear() { - KIRI.api.platform.clear(); + kiri.api.platform.clear(); } parse(data) { @@ -123,10 +114,10 @@ class Engine { slice() { return new Promise((accept, reject) => { - KIRI.client.clear(); - KIRI.client.sync([ this.widget ]); - KIRI.client.rotate(this.settings); - KIRI.client.slice(this.settings, this.widget, msg => { + kiri.client.clear(); + kiri.client.sync([ this.widget ]); + kiri.client.rotate(this.settings); + kiri.client.slice(this.settings, this.widget, msg => { this.listener({slice:msg}); if (msg.error) { reject(msg.error); @@ -135,13 +126,13 @@ class Engine { accept(this); } }); - KIRI.client.unrotate(this.settings); + kiri.client.unrotate(this.settings); }); } prepare() { return new Promise((accept, reject) => { - KIRI.client.prepare(this.settings, update => { + kiri.client.prepare(this.settings, update => { this.listener({prepare:{update}}); }, done => { this.listener({prepare:{done:true}}); @@ -153,7 +144,7 @@ class Engine { export() { return new Promise((accept, reject) => { let output = []; - KIRI.client.export(this.settings, segment => { + kiri.client.export(this.settings, segment => { this.listener({export:{segment}}); output.push(segment); }, done => { @@ -164,4 +155,12 @@ class Engine { } } -})(); +function newEngine() { + return new Engine(); +} + +gapp.overlay(kiri, { + newEngine +}); + +}); diff --git a/src/kiri/function.js b/src/kiri/function.js index cf02376c..faaecd40 100644 --- a/src/kiri/function.js +++ b/src/kiri/function.js @@ -6,8 +6,11 @@ // dep: kiri.export // dep: moto.space // dep: kiri-mode.cam.driver +// use: kiri-mode.cam.client // dep: kiri-mode.fdm.driver +// dep: kiri-mode.fdm.client // dep: kiri-mode.sla.driver +// dep: kiri-mode.sla.client // dep: kiri-mode.laser.driver gapp.register("kiri.function", [], (root, exports) => { diff --git a/src/kiri/main.js b/src/kiri/main.js index 8800aa5c..55a1d765 100644 --- a/src/kiri/main.js +++ b/src/kiri/main.js @@ -22,6 +22,7 @@ // use: kiri.alerts // use: kiri.files // use: kiri.frame +// use: moto.ajax gapp.register("kiri.main", [], (root, exports) => { const { base, data, kiri, moto, noop } = root; diff --git a/src/kiri/settings.js b/src/kiri/settings.js index 93f317e5..5c144ef4 100644 --- a/src/kiri/settings.js +++ b/src/kiri/settings.js @@ -7,6 +7,7 @@ // dep: kiri.utils // dep: moto.space // dep: data.local +// use: kiri.widgets gapp.register("kiri.settings", [], (root, exports) => { const { data, kiri, moto, noop } = self; diff --git a/src/kiri/ui.js b/src/kiri/ui.js index 26ada2d2..ab2d0df4 100644 --- a/src/kiri/ui.js +++ b/src/kiri/ui.js @@ -2,6 +2,8 @@ "use strict"; +// use: kiri.init +// use: kiri.main gapp.register("kiri.ui", [], (root, exports) => { const { kiri } = root; diff --git a/src/kiri/utils.js b/src/kiri/utils.js index 0c87dcea..8a586cb2 100644 --- a/src/kiri/utils.js +++ b/src/kiri/utils.js @@ -2,8 +2,6 @@ "use strict"; -// dep: data.local -// use: moto.ajax gapp.register("kiri.utils", [], (root, exports) => { const { kiri, data } = root; diff --git a/src/kiri/widgets.js b/src/kiri/widgets.js index 4e1ff46f..61c37c7f 100644 --- a/src/kiri/widgets.js +++ b/src/kiri/widgets.js @@ -6,7 +6,6 @@ gapp.register("kiri.widgets", [], (root, exports) => { const { data, kiri, moto, noop } = root; const { api, consts, utils, newWidget, Widget } = kiri; -const { space } = moto; let WIDGETS = []; @@ -89,7 +88,7 @@ function meshes() { function opacity(value) { api.widgets.each(w => w.setOpacity(value)); - space.update(); + moto.space.update(); } const widgets = api.widgets = { diff --git a/src/kiri/worker.js b/src/kiri/worker.js index 55977f41..6022536a 100644 --- a/src/kiri/worker.js +++ b/src/kiri/worker.js @@ -2,6 +2,27 @@ "use strict"; +// dep: geo.base +// dep: geo.polygons +// dep: geo.wasm +// dep: kiri.codec +// use: kiri-mode.cam.driver +// use: kiri-mode.cam.animate +// use: kiri-mode.cam.slice +// use: kiri-mode.cam.prepare +// use: kiri-mode.cam.export +// use: kiri-mode.cam.tool +// use: kiri-mode.fdm.driver +// use: kiri-mode.fdm.slice +// use: kiri-mode.fdm.prepare +// use: kiri-mode.fdm.export +// use: kiri-mode.sla.driver +// use: kiri-mode.sla.slice +// use: kiri-mode.sla.export +// use: kiri-mode.fdm.slice +// use: kiri-mode.fdm.prepare +// use: kiri-mode.fdm.export +// use: kiri-mode.laser.driver gapp.register("kiri.worker", [], (root, exports) => { const { base, kiri } = root; diff --git a/src/main/kiri.js b/src/main/kiri.js index c51ec6bc..4a5529f1 100644 --- a/src/main/kiri.js +++ b/src/main/kiri.js @@ -2,8 +2,6 @@ "use strict"; -// use: kiri.init -// use: kiri.main gapp.main("main.kiri", [], (root) => { const { kiri } = root; diff --git a/src/mesh/util.js b/src/mesh/util.js index 7c354a67..8a118f7c 100644 --- a/src/mesh/util.js +++ b/src/mesh/util.js @@ -6,7 +6,6 @@ // dep: add.array // dep: ext.three // dep: ext.three-bgu -// use: mesh.api gapp.register("mesh.util", [], (root, exports) => { const { Matrix4, Matrix3, Vector3, Box3 } = THREE; diff --git a/src/moto/ajax.js b/src/moto/ajax.js index a0e042ee..cdbe5a4a 100644 --- a/src/moto/ajax.js +++ b/src/moto/ajax.js @@ -2,6 +2,7 @@ "use strict"; +// dep: data.local gapp.register("moto.ajax", [], (root, exports) => { function rnd() {