add new slicePre()/slicePost() requirement to engine and enforce new threading/worker requirement

This commit is contained in:
Stewart Allen 2026-01-21 18:00:05 -05:00
commit 4a683bd389
2 changed files with 8 additions and 7 deletions

View file

@ -585,7 +585,7 @@ export function sliceOne(settings, widget, onupdate, ondone) {
} }
// perform accumulation top down // perform accumulation top down
for (let slice of stack.reverse()) { for (let slice of stack.slice().reverse()) {
let shadow = slice.shadow ?? []; let shadow = slice.shadow ?? [];
if (devel) slice.output().setLayer("shadow", 0xff0000).addPolys(shadow); if (devel) slice.output().setLayer("shadow", 0xff0000).addPolys(shadow);
if (process.sliceSupportExtra) { if (process.sliceSupportExtra) {
@ -628,7 +628,7 @@ export function sliceOne(settings, widget, onupdate, ondone) {
// trim using support part offset value // trim using support part offset value
let gaps = process.sliceSupportGap; let gaps = process.sliceSupportGap;
for (let slice of stack.reverse()) { for (let slice of stack) {
let clips = [ let clips = [
slice.clips, slice.clips,
gaps ? slice.up?.clips : undefined, gaps ? slice.up?.clips : undefined,
@ -1162,6 +1162,7 @@ export function slicePost(settings, onupdate) {
// assign grid_id which can be embedded in gcode and // assign grid_id which can be embedded in gcode and
// used by the controller to cancel objects during print // used by the controller to cancel objects during print
let { bounds } = settings; let { bounds } = settings;
if (!bounds) return;
for (let widget of widgets) { for (let widget of widgets) {
let { pos, box } = widget.track; let { pos, box } = widget.track;
// calculate top/left coordinate for widget // calculate top/left coordinate for widget

View file

@ -26,6 +26,7 @@ class Engine {
client.setWorkPath(workURL); client.setWorkPath(workURL);
client.setPoolPath(poolURL); client.setPoolPath(poolURL);
client.restart(); client.restart();
client.pool.start();
} catch (error) { } catch (error) {
console.log({ error }); console.log({ error });
} }
@ -63,11 +64,8 @@ class Engine {
} }
setThreading(bool) { setThreading(bool) {
if (bool) { console.log('setThreading() deprecated');
client.pool.start(); return this;
} else {
client.pool.stop();
}
} }
setListener(listener) { setListener(listener) {
@ -163,6 +161,7 @@ class Engine {
client.clear(); client.clear();
client.sync([this.widget]); client.sync([this.widget]);
client.rotate(this.settings); client.rotate(this.settings);
client.slicePre(this.settings, () => {});
client.slice(this.settings, this.widget, msg => { client.slice(this.settings, this.widget, msg => {
this.listener({ slice: msg }); this.listener({ slice: msg });
if (msg.error) { if (msg.error) {
@ -170,6 +169,7 @@ class Engine {
} }
if (msg.done) { if (msg.done) {
accept(this); accept(this);
client.slicePost(this.settings, () => {});
} }
}); });
}); });