From 4d811972f6715615b7458971b21dda245242d922 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Thu, 13 Jun 2024 22:13:03 -0400 Subject: [PATCH] compensate WireEDM previews when origin bounds checked --- src/kiri-mode/wedm/driver.js | 14 +++++++++++--- src/kiri/function.js | 2 ++ src/kiri/init.js | 4 ++-- src/kiri/main.js | 2 ++ 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/kiri-mode/wedm/driver.js b/src/kiri-mode/wedm/driver.js index b1c25811..f94c7808 100644 --- a/src/kiri-mode/wedm/driver.js +++ b/src/kiri-mode/wedm/driver.js @@ -83,10 +83,18 @@ function init(kiri, api, driver) { } }); - api.event.on("mode.set", (mode) => { - }); + // api.event.on("mode.set", (mode) => { }); - api.event.on("view.set", (mode) => { + // api.event.on("view.set", (mode) => { }); + + api.event.on("preview.view", view => { + const process = api.conf.get().process; + if (!process.ctOriginBounds) return; + const bounds = new THREE.Box3().expandByObject(view); + api.platform.set_bounds(new THREE.Box3( + new THREE.Vector3(bounds.min.x, bounds.min.z, bounds.min.y), + new THREE.Vector3(bounds.max.x, bounds.max.z, bounds.max.y), + )); }); // Surface Selection Buttons diff --git a/src/kiri/function.js b/src/kiri/function.js index 636feedb..c80e1679 100644 --- a/src/kiri/function.js +++ b/src/kiri/function.js @@ -332,9 +332,11 @@ function preparePreview(callback, scale = 1, offset = 0) { startTime = Date.now(); stacks.clear(); const stack = stacks.create('print', space.world) + const view = stack.obj.view; output.forEach(layer => { stack.add(layer); }); + event.emit('preview.view', view); // rotate stack for belt beds if (isBelt && widgets[0].belt) { let ri = widgets[0].belt; diff --git a/src/kiri/init.js b/src/kiri/init.js index 697701f0..d2d8470b 100644 --- a/src/kiri/init.js +++ b/src/kiri/init.js @@ -1968,8 +1968,8 @@ gapp.register("kiri.init", [], (root, exports) => { ctOutSpeed: newInput(LANG.ou_sped_s, {title:LANG.ou_sped_l, convert:toInt}), ctAdaptive: newBoolean('adaptive speed', onBooleanClick, {modes:WEDM, title:'controller determines best cutting speed based on material feedback at runtime'}), separator: newBlank({ class:"set-sep", driven }), - ctOriginBounds: newBoolean(LANG.or_bnds_s, onBooleanClick, {title:LANG.or_bnds_l}), - ctOriginCenter: newBoolean(LANG.or_cntr_s, onBooleanClick, {title:LANG.or_cntr_l}), + ctOriginBounds: newBoolean(LANG.or_bnds_s, onBooleanClick, {title:LANG.or_bnds_l, show:() => !ui.ctOriginCenter.checked}), + ctOriginCenter: newBoolean(LANG.or_cntr_s, onBooleanClick, {title:LANG.or_cntr_l, show:() => !ui.ctOriginBounds.checked}), separator: newBlank({ class:"set-sep", driven, modes:WEDM }), ctOriginOffX: newInput(LANG.or_offx_s, {title:LANG.or_offx_l, convert:toFloat, modes:WEDM}), ctOriginOffY: newInput(LANG.or_offy_s, {title:LANG.or_offy_l, convert:toFloat, modes:WEDM}), diff --git a/src/kiri/main.js b/src/kiri/main.js index 9723d60d..9a84ddbf 100644 --- a/src/kiri/main.js +++ b/src/kiri/main.js @@ -842,6 +842,8 @@ gapp.register("kiri.main", [], (root, exports) => { viewMode = mode; platform.deselect(); selection.update_info(); + // clear any bounds forced by, for example, WireEDM previews + api.platform.set_bounds(); // disable clear in non-arrange modes ['view-arrange','act-slice','act-preview','act-animate'].forEach(el => { $(el).classList.remove('selected')