From 5ef26bef03a0039142e0f41821484f219162aeca Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Mon, 5 Jan 2026 11:21:21 -0500 Subject: [PATCH] rename sliceAll to slicePost for driver contract --- src/kiri/app/function.js | 4 ++-- src/kiri/app/workers.js | 4 ++-- src/kiri/mode/cam/driver-be.js | 1 + src/kiri/mode/cam/slice.js | 7 +++++++ src/kiri/mode/fdm/driver-be.js | 5 +++-- src/kiri/mode/fdm/slice.js | 11 ++++++++--- src/kiri/run/worker.js | 24 ++++++++++++------------ 7 files changed, 35 insertions(+), 21 deletions(-) diff --git a/src/kiri/app/function.js b/src/kiri/app/function.js index 0b3cb9e8..a2f69cc6 100644 --- a/src/kiri/app/function.js +++ b/src/kiri/app/function.js @@ -146,8 +146,8 @@ function prepareSlices(callback, scale = 1, offset = 0) { // while more widgets to slice sliceWidget(toSlice.shift()) } else { - // once all slicing done, run sliceAll() once for all widgets - client.sliceAll(settings, sliceDone); + // once all slicing done, run slicePost() once for all widgets + client.slicePost(settings, sliceDone); } } diff --git a/src/kiri/app/workers.js b/src/kiri/app/workers.js index 06503bdb..d8b2049a 100644 --- a/src/kiri/app/workers.js +++ b/src/kiri/app/workers.js @@ -237,8 +237,8 @@ export const client = { // called once after each widget is sliced // performs merged actions that consider all widget slice data - sliceAll(settings, callback) { - send("sliceAll", { settings }, callback); + slicePost(settings, callback) { + send("slicePost", { settings }, callback); }, // turn widget slices into unified path output diff --git a/src/kiri/mode/cam/driver-be.js b/src/kiri/mode/cam/driver-be.js index 35a2a9e4..7f850aef 100644 --- a/src/kiri/mode/cam/driver-be.js +++ b/src/kiri/mode/cam/driver-be.js @@ -116,6 +116,7 @@ export const CAM = { surface_find, slicePre: cam_slice_pre, slice: cam_slice, + slicePost: undefined, prepare: cam_prepare, export: cam_export }; diff --git a/src/kiri/mode/cam/slice.js b/src/kiri/mode/cam/slice.js index d06d2e10..5cd48143 100644 --- a/src/kiri/mode/cam/slice.js +++ b/src/kiri/mode/cam/slice.js @@ -14,6 +14,11 @@ import { util } from '../../../geo/base.js'; // state shared across all widget slicing let shared; +/** + * DRIVER SLICE CONTRACT + * + * global slice operation run before individual widget slice() operations + */ export function cam_slice_pre(settings) { shared = { ops: { } }; } @@ -21,6 +26,8 @@ export function cam_slice_pre(settings) { /** * DRIVER SLICE CONTRACT * + * slice operations run per-widget between slicePre and sliceAll + * * @param {Object} settings * @param {Widget} widget * @param {Function} output diff --git a/src/kiri/mode/fdm/driver-be.js b/src/kiri/mode/fdm/driver-be.js index 7a14bb39..3abdb04f 100644 --- a/src/kiri/mode/fdm/driver-be.js +++ b/src/kiri/mode/fdm/driver-be.js @@ -1,7 +1,7 @@ /** Copyright Stewart Allen -- All Rights Reserved */ import { util } from '../../../geo/base.js'; -import { fdm_slice, sliceAll, supports } from './slice.js'; +import { fdm_slice, slicePost, supports } from './slice.js'; import { fdm_prepare } from './prepare.js'; import { fdm_export } from './export.js'; import { codec } from '../../core/codec.js'; @@ -40,8 +40,9 @@ export const FDM = { init, extrudePerMM, extrudeMM, + slicePre: undefined, slice: fdm_slice, - sliceAll: sliceAll, + slicePost: slicePost, prepare: fdm_prepare, export: fdm_export }; diff --git a/src/kiri/mode/fdm/slice.js b/src/kiri/mode/fdm/slice.js index efe91db0..e549834d 100644 --- a/src/kiri/mode/fdm/slice.js +++ b/src/kiri/mode/fdm/slice.js @@ -19,7 +19,7 @@ let tracker = util.pwait, fat = 1.5, COLOR = { anchor: { check: 0x999933, face: 0x999933, line: 0x999933, opacity, lopacity, fat }, - fill: { check: 0x00bb77, face: 0x00bb77, line: 0x00bb77, opacity, lopacity, fat }, + fill: { check: 0x005588, face: 0x005588, line: 0x005588, opacity, lopacity, fat }, gaps: { check: 0xaa3366, face: 0xaa3366, line: 0xaa3366, opacity, lopacity, fat }, infill: { check: 0x3322bb, face: 0x3322bb, line: 0x3322bb, opacity, lopacity, fat }, inset: { line: 0xaaaaaa, check: 0xaaaaaa, face: 0 }, @@ -29,7 +29,7 @@ let tracker = util.pwait, thin: { check: 0xbb8800, face: 0xbb8800, line: 0xbb8800, opacity, lopacity, fat }, }, COLOR_DARK = Object.assign({}, COLOR, { - fill: { check: 0x008855, face: 0x008855, line: 0x008855, opacity, lopacity, fat }, + fill: { check: 0x005588, face: 0x005588, line: 0x005588, opacity, lopacity, fat }, infill: { check: 0x3322bb, face: 0x3322bb, line: 0x3322bb, opacity, lopacity, fat }, inset: { line: 0x555555, check: 0x555555 }, part: { line: 0x777777, check: 0x777777, face: 0 }, @@ -58,7 +58,12 @@ function vopt(opt) { return opt; } -export function sliceAll(settings, onupdate) { +/** + * DRIVER SLICE CONTRACT + * + * global slice operation run after all individual widget slice() complete + */ +export function slicePost(settings, onupdate) { // future home of brim and anchor generation let widgets = Object.values(self.kiri_worker.cache) .filter(w => !w.meta.disabled) diff --git a/src/kiri/run/worker.js b/src/kiri/run/worker.js index e5a5f974..9f394ddb 100644 --- a/src/kiri/run/worker.js +++ b/src/kiri/run/worker.js @@ -7,17 +7,17 @@ import '../../add/three.js'; import { base } from '../../geo/base.js'; import { codec } from '../core/codec.js'; import { consts } from '../core/consts.js'; -import { util } from '../../geo/base.js'; -import { newPoint } from '../../geo/point.js'; -import { polygons as POLY } from '../../geo/polygons.js'; -import { newPrint } from '../core/print.js'; -import { render } from '../core/render.js'; -import { wasm_ctrl } from '../../geo/wasm.js'; -import { version } from '../../moto/license.js'; -import { Widget, newWidget } from '../core/widget.js'; -import { load } from "../../load/png.js"; import { JSZip } from '../../ext/jszip-esm.js'; +import { load } from "../../load/png.js"; +import { newPoint } from '../../geo/point.js'; +import { newPrint } from '../core/print.js'; +import { polygons as POLY } from '../../geo/polygons.js'; import { RasterPath } from '../../gpu/raster.js'; +import { render } from '../core/render.js'; +import { util } from '../../geo/base.js'; +import { version } from '../../moto/license.js'; +import { wasm_ctrl } from '../../geo/wasm.js'; +import { Widget, newWidget } from '../core/widget.js'; import { CAM } from '../mode/cam/driver-be.js'; import { DRAG } from '../mode/drag/driver.js'; @@ -482,13 +482,13 @@ const dispatch = { }); }, - sliceAll(data, send) { + slicePost(data, send) { const { settings } = data; const { mode } = settings; const driver = drivers[mode]; - if (driver.sliceAll) { - driver.sliceAll(settings, send.data); + if (driver.slicePost) { + driver.slicePost(settings, send.data); } send.done({done: true});