From 7bb4b817fa6435ea9466d8f47c3e8721bb8ea0c6 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Wed, 2 Nov 2022 23:30:40 -0400 Subject: [PATCH] return early when no changes --- src/kiri-mode/cam/client.js | 5 ++++- src/kiri/widget.js | 8 +++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/kiri-mode/cam/client.js b/src/kiri-mode/cam/client.js index bd5082ea..5f06e67a 100644 --- a/src/kiri-mode/cam/client.js +++ b/src/kiri-mode/cam/client.js @@ -66,13 +66,14 @@ CAM.init = function(kiri, api) { } function setAnimationStyle(settings) { + let changed = isIndexed !== settings.process.camStockIndexed; isIndexed = settings.process.camStockIndexed; if (!isIndexed || !isCamMode) { for (let widget of API.widgets.all()) { widget.setAxisIndex(0); } } - if (!isCamMode) { + if (!(isCamMode && changed)) { return; } if (isIndexed) { @@ -130,6 +131,7 @@ CAM.init = function(kiri, api) { }); api.event.on("mode.set", (mode) => { + isIndexed = undefined; isCamMode = mode === 'CAM'; $('set-tools').style.display = isCamMode ? '' : 'none'; SPACE.platform.setColor(isCamMode ? 0xeeeeee : 0xcccccc); @@ -587,6 +589,7 @@ CAM.init = function(kiri, api) { } } // update widget rotations from timeline marker + if (isIndexed) for (let widget of API.widgets.all()) { widget.setAxisIndex(-index); } diff --git a/src/kiri/widget.js b/src/kiri/widget.js index 16bcdae0..38d83a80 100644 --- a/src/kiri/widget.js +++ b/src/kiri/widget.js @@ -56,7 +56,7 @@ class Widget { // wireframe this.wire = null; this.slices = null; - this.settings = null; + this.settings = null; // used?? this.modified = true; this.track = { // box size for packer @@ -83,6 +83,7 @@ class Widget { top: 0, // z top mirror: false }, + // used to cache shadow geo this.cache = {}; this.stats = { slice_time: 0, @@ -536,6 +537,7 @@ class Widget { top = track.top, tz = tzoff !== top ? -tzoff : 0, { x, y, z } = track.pos; + console.trace('ump', {top, tz, tzoff}); if (track.indexed) { let rad = track.indexRad; let ln = track.box.d / 2; @@ -699,8 +701,8 @@ class Widget { getBoundingBox(refresh) { if (!this.bounds || refresh || this.modified) { - this.bounds = new THREE.Box3(); - this.bounds.setFromPoints(this.getPoints()); + // console.trace('gbb', refresh); + this.bounds = new THREE.Box3().setFromPoints(this.getPoints()); this.modified = false; } return this.bounds;