multiple api migration fixes. separate print moves into their own selectable layer
This commit is contained in:
parent
b147427f07
commit
b2c59cd739
3 changed files with 72 additions and 55 deletions
|
|
@ -61,10 +61,10 @@ var gs_kiri_init = exports;
|
||||||
SPACE.showSkyGrid(false);
|
SPACE.showSkyGrid(false);
|
||||||
SPACE.setSkyColor(0xffffff);
|
SPACE.setSkyColor(0xffffff);
|
||||||
SPACE.init(container, function (delta) {
|
SPACE.init(container, function (delta) {
|
||||||
if (showLayerMax === 0) return;
|
if (API.var.layer_max === 0) return;
|
||||||
if (settings().controller.reverseZoom) delta = -delta;
|
if (settings().controller.reverseZoom) delta = -delta;
|
||||||
if (delta > 0) showLayerValue--;
|
if (delta > 0) API.var.layer_at--;
|
||||||
else if (delta < 0) showLayerValue++;
|
else if (delta < 0) API.var.layer_at++;
|
||||||
API.show.slices();
|
API.show.slices();
|
||||||
});
|
});
|
||||||
SPACE.platform.onMove(API.conf.save);
|
SPACE.platform.onMove(API.conf.save);
|
||||||
|
|
@ -267,6 +267,7 @@ var gs_kiri_init = exports;
|
||||||
layerSparse: UC.newBoolean("sparse fill", onLayerToggle, {modes:FDM}),
|
layerSparse: UC.newBoolean("sparse fill", onLayerToggle, {modes:FDM}),
|
||||||
layerSupport: UC.newBoolean("support", onLayerToggle, {modes:FDM}),
|
layerSupport: UC.newBoolean("support", onLayerToggle, {modes:FDM}),
|
||||||
layerPrint: UC.newBoolean("print", onLayerToggle),
|
layerPrint: UC.newBoolean("print", onLayerToggle),
|
||||||
|
layerMoves: UC.newBoolean("moves", onLayerToggle),
|
||||||
|
|
||||||
settingsGroup: UC.newGroup("settings", control),
|
settingsGroup: UC.newGroup("settings", control),
|
||||||
settingsTable: UC.newTableRow([
|
settingsTable: UC.newTableRow([
|
||||||
|
|
@ -447,12 +448,12 @@ var gs_kiri_init = exports;
|
||||||
}
|
}
|
||||||
|
|
||||||
function onLayerToggle() {
|
function onLayerToggle() {
|
||||||
updateSettings();
|
API.conf.update();
|
||||||
API.show.slices();
|
API.show.slices();
|
||||||
}
|
}
|
||||||
|
|
||||||
function onBooleanClick() {
|
function onBooleanClick() {
|
||||||
updateSettings();
|
API.conf.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
function inputHasFocus() {
|
function inputHasFocus() {
|
||||||
|
|
@ -523,14 +524,14 @@ var gs_kiri_init = exports;
|
||||||
break;
|
break;
|
||||||
case 38: // up arrow
|
case 38: // up arrow
|
||||||
if (inputHasFocus()) return false;
|
if (inputHasFocus()) return false;
|
||||||
if (evt.metaKey) return setVisibleLayer(showLayerValue+1);
|
if (evt.metaKey) return API.show.layer(API.var.layer_at+1);
|
||||||
if (deg) API.selection.rotate(deg, 0, 0);
|
if (deg) API.selection.rotate(deg, 0, 0);
|
||||||
if (move > 0) moveSelection(0, move, 0);
|
if (move > 0) moveSelection(0, move, 0);
|
||||||
evt.preventDefault();
|
evt.preventDefault();
|
||||||
break;
|
break;
|
||||||
case 40: // down arrow
|
case 40: // down arrow
|
||||||
if (inputHasFocus()) return false;
|
if (inputHasFocus()) return false;
|
||||||
if (evt.metaKey) return setVisibleLayer(showLayerValue-1);
|
if (evt.metaKey) return API.show.layer(API.var.layer_at-1);
|
||||||
if (deg) API.selection.rotate(-deg, 0, 0);
|
if (deg) API.selection.rotate(-deg, 0, 0);
|
||||||
if (move > 0) moveSelection(0, -move, 0);
|
if (move > 0) moveSelection(0, -move, 0);
|
||||||
evt.preventDefault();
|
evt.preventDefault();
|
||||||
|
|
@ -573,13 +574,13 @@ var gs_kiri_init = exports;
|
||||||
}
|
}
|
||||||
switch (evt.charCode) {
|
switch (evt.charCode) {
|
||||||
case cca('`'): API.show.slices(0); break;
|
case cca('`'): API.show.slices(0); break;
|
||||||
case cca('0'): API.show.slices(showLayerMax); break;
|
case cca('0'): API.show.slices(API.var.layer_max); break;
|
||||||
case cca('1'): // toggle control left
|
case cca('1'): // toggle control left
|
||||||
if (evt.ctrlKey) {
|
if (evt.ctrlKey) {
|
||||||
style = UI.ctrlLeft.style;
|
style = UI.ctrlLeft.style;
|
||||||
style.display = style.display === 'none' ? 'block' : 'none';
|
style.display = style.display === 'none' ? 'block' : 'none';
|
||||||
} else {
|
} else {
|
||||||
API.show.slices(showLayerMax/10);
|
API.show.slices(API.var.layer_max/10);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case cca('2'): // toggle control right
|
case cca('2'): // toggle control right
|
||||||
|
|
@ -587,7 +588,7 @@ var gs_kiri_init = exports;
|
||||||
style = UI.ctrlRight.style;
|
style = UI.ctrlRight.style;
|
||||||
style.display = style.display === 'none' ? 'block' : 'none';
|
style.display = style.display === 'none' ? 'block' : 'none';
|
||||||
} else {
|
} else {
|
||||||
API.show.slices(showLayerMax*2/10);
|
API.show.slices(API.var.layer_max*2/10);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case cca('3'):
|
case cca('3'):
|
||||||
|
|
@ -597,15 +598,15 @@ var gs_kiri_init = exports;
|
||||||
SPACE.platform.showGrid(!style);
|
SPACE.platform.showGrid(!style);
|
||||||
SPACE.update();
|
SPACE.update();
|
||||||
} else {
|
} else {
|
||||||
API.show.slices(showLayerMax*3/10);
|
API.show.slices(API.var.layer_max*3/10);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case cca('4'): API.show.slices(showLayerMax*4/10); break;
|
case cca('4'): API.show.slices(API.var.layer_max*4/10); break;
|
||||||
case cca('5'): API.show.slices(showLayerMax*5/10); break;
|
case cca('5'): API.show.slices(API.var.layer_max*5/10); break;
|
||||||
case cca('6'): API.show.slices(showLayerMax*6/10); break;
|
case cca('6'): API.show.slices(API.var.layer_max*6/10); break;
|
||||||
case cca('7'): API.show.slices(showLayerMax*7/10); break;
|
case cca('7'): API.show.slices(API.var.layer_max*7/10); break;
|
||||||
case cca('8'): API.show.slices(showLayerMax*8/10); break;
|
case cca('8'): API.show.slices(API.var.layer_max*8/10); break;
|
||||||
case cca('9'): API.show.slices(showLayerMax*9/10); break;
|
case cca('9'): API.show.slices(API.var.layer_max*9/10); break;
|
||||||
case cca('?'):
|
case cca('?'):
|
||||||
API.help.show();
|
API.help.show();
|
||||||
break;
|
break;
|
||||||
|
|
@ -1326,7 +1327,7 @@ var gs_kiri_init = exports;
|
||||||
|
|
||||||
SPACE.onEnterKey([
|
SPACE.onEnterKey([
|
||||||
UI.layerSpan, function() { API.show.slices() },
|
UI.layerSpan, function() { API.show.slices() },
|
||||||
UI.layerID, function() { setVisibleLayer(UI.layerID.value) },
|
UI.layerID, function() { API.show.layer(UI.layerID.value) },
|
||||||
|
|
||||||
UI.scaleX, selection.scale,
|
UI.scaleX, selection.scale,
|
||||||
UI.scaleY, selection.scale,
|
UI.scaleY, selection.scale,
|
||||||
|
|
@ -1372,7 +1373,7 @@ var gs_kiri_init = exports;
|
||||||
$('z+').onclick = function(ev) { API.selection.rotate(0,0,ev.shiftKey ? -ROT5 : -ROT) };
|
$('z+').onclick = function(ev) { API.selection.rotate(0,0,ev.shiftKey ? -ROT5 : -ROT) };
|
||||||
|
|
||||||
UI.modelOpacity.onchange = UI.modelOpacity.onclick = function(ev) {
|
UI.modelOpacity.onchange = UI.modelOpacity.onclick = function(ev) {
|
||||||
setOpacity(parseInt(UI.modelOpacity.value)/100);
|
API.widgets.opacity(parseInt(UI.modelOpacity.value)/100);
|
||||||
};
|
};
|
||||||
|
|
||||||
UI.layerSlider.ondblclick = function() {
|
UI.layerSlider.ondblclick = function() {
|
||||||
|
|
@ -1385,11 +1386,11 @@ var gs_kiri_init = exports;
|
||||||
};
|
};
|
||||||
|
|
||||||
UI.layerSlider.onclick = function() {
|
UI.layerSlider.onclick = function() {
|
||||||
setVisibleLayer(UI.layerSlider.value);
|
API.show.layer(UI.layerSlider.value);
|
||||||
};
|
};
|
||||||
|
|
||||||
UI.layerSlider.onmousemove = UI.layerSlider.onchange = function() {
|
UI.layerSlider.onmousemove = UI.layerSlider.onchange = function() {
|
||||||
setVisibleLayer(UI.layerSlider.value);
|
API.show.layer(UI.layerSlider.value);
|
||||||
};
|
};
|
||||||
|
|
||||||
UI.layerSlider.onmouseup = function() { API.focus() };
|
UI.layerSlider.onmouseup = function() { API.focus() };
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,8 @@ var gs_kiri_print = exports;
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
this.widgets = widgets;
|
this.widgets = widgets;
|
||||||
this.group = new THREE.Group();
|
this.group = new THREE.Group();
|
||||||
this.layerView = [];
|
this.printView = [];
|
||||||
|
this.movesView = [];
|
||||||
|
|
||||||
this.time = 0;
|
this.time = 0;
|
||||||
this.lines = 0;
|
this.lines = 0;
|
||||||
|
|
@ -350,7 +351,7 @@ var gs_kiri_print = exports;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRO.renderMoves = function(showMoves, moveColor) {
|
PRO.renderMoves = function(showMoves, moveColor) {
|
||||||
var scope = this, last, view;
|
var scope = this, last, emits, moves;
|
||||||
// render layered output
|
// render layered output
|
||||||
scope.lines = 0;
|
scope.lines = 0;
|
||||||
scope.output.forEach(function(layerout) {
|
scope.output.forEach(function(layerout) {
|
||||||
|
|
@ -376,21 +377,24 @@ var gs_kiri_print = exports;
|
||||||
}
|
}
|
||||||
last = out.point;
|
last = out.point;
|
||||||
});
|
});
|
||||||
view = KIRI.newLayer(scope.group);
|
emits = KIRI.newLayer(scope.group);
|
||||||
scope.layerView.push(view);
|
scope.printView.push(emits);
|
||||||
if (showMoves) {
|
if (showMoves) {
|
||||||
view.lines(move, moveColor);
|
moves = KIRI.newLayer(scope.group);
|
||||||
|
moves.lines(move, moveColor);
|
||||||
|
scope.movesView.push(moves);
|
||||||
|
moves.render();
|
||||||
}
|
}
|
||||||
for (var speed in print) {
|
for (var speed in print) {
|
||||||
var sint = Math.min(6000, parseInt(speed));
|
var sint = Math.min(6000, parseInt(speed));
|
||||||
var rgb = hsv2rgb({h:sint/6000, s:1, v:0.6});
|
var rgb = hsv2rgb({h:sint/6000, s:1, v:0.6});
|
||||||
view.lines(print[speed],
|
emits.lines(print[speed],
|
||||||
((rgb.r * 0xff) << 16) |
|
((rgb.r * 0xff) << 16) |
|
||||||
((rgb.g * 0xff) << 8) |
|
((rgb.g * 0xff) << 8) |
|
||||||
((rgb.b * 0xff) << 0)
|
((rgb.b * 0xff) << 0)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
view.render();
|
emits.render();
|
||||||
scope.lines += print.length;
|
scope.lines += print.length;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -400,13 +404,17 @@ var gs_kiri_print = exports;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRO.hide = function() {
|
PRO.hide = function() {
|
||||||
this.layerView.forEach(function(layer) {
|
this.printView.forEach(function(layer) {
|
||||||
|
layer.setVisible(false);
|
||||||
|
})
|
||||||
|
this.movesView.forEach(function(layer) {
|
||||||
layer.setVisible(false);
|
layer.setVisible(false);
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
PRO.showLayer = function(index, show) {
|
PRO.showLayer = function(index, show, moves) {
|
||||||
if (this.layerView[index]) this.layerView[index].setVisible(show);
|
if (this.printView[index]) this.printView[index].setVisible(show);
|
||||||
|
if (this.movesView[index]) this.movesView[index].setVisible(show && moves);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
56
js/kiri.js
56
js/kiri.js
|
|
@ -66,9 +66,6 @@ self.kiri.license = exports.LICENSE;
|
||||||
sliced_opacity_cam = 0.25,
|
sliced_opacity_cam = 0.25,
|
||||||
// ---------------
|
// ---------------
|
||||||
printSeq = parseInt(SDB['kiri-print-seq'] || SDB['print-seq'] || "0") + 1,
|
printSeq = parseInt(SDB['kiri-print-seq'] || SDB['print-seq'] || "0") + 1,
|
||||||
showLayerRange = 0,
|
|
||||||
showLayerValue = 0,
|
|
||||||
showLayerMax = 0,
|
|
||||||
renderMode = 4,
|
renderMode = 4,
|
||||||
viewMode = VIEWS.ARRANGE,
|
viewMode = VIEWS.ARRANGE,
|
||||||
layoutOnAdd = true,
|
layoutOnAdd = true,
|
||||||
|
|
@ -153,6 +150,11 @@ self.kiri.license = exports.LICENSE;
|
||||||
VIEWS,
|
VIEWS,
|
||||||
SETUP
|
SETUP
|
||||||
},
|
},
|
||||||
|
var: {
|
||||||
|
layer_at: 0,
|
||||||
|
layer_max: 0,
|
||||||
|
layer_range: 0
|
||||||
|
},
|
||||||
device: {
|
device: {
|
||||||
get: currentDeviceName
|
get: currentDeviceName
|
||||||
},
|
},
|
||||||
|
|
@ -209,6 +211,7 @@ self.kiri.license = exports.LICENSE;
|
||||||
controls: setControlsVisible,
|
controls: setControlsVisible,
|
||||||
favorites: getShowFavorites,
|
favorites: getShowFavorites,
|
||||||
slices: showSlices,
|
slices: showSlices,
|
||||||
|
layer: setVisibleLayer,
|
||||||
local: showLocal,
|
local: showLocal,
|
||||||
import: function() { UI.import.style.display = '' }
|
import: function() { UI.import.style.display = '' }
|
||||||
},
|
},
|
||||||
|
|
@ -227,7 +230,8 @@ self.kiri.license = exports.LICENSE;
|
||||||
all: function() { return WIDGETS.slice() },
|
all: function() { return WIDGETS.slice() },
|
||||||
for: forAllWidgets,
|
for: forAllWidgets,
|
||||||
load: Widget.loadFromCatalog,
|
load: Widget.loadFromCatalog,
|
||||||
meshes: meshArray
|
meshes: meshArray,
|
||||||
|
opacity: setOpacity
|
||||||
},
|
},
|
||||||
work: KIRI.work
|
work: KIRI.work
|
||||||
};
|
};
|
||||||
|
|
@ -416,7 +420,7 @@ self.kiri.license = exports.LICENSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setVisibleLayer(v) {
|
function setVisibleLayer(v) {
|
||||||
showSlices(showLayerValue = bound(v, 0, showLayerMax));
|
showSlices(API.var.layer_at = bound(v, 0, API.var.layer_max));
|
||||||
}
|
}
|
||||||
|
|
||||||
function meshArray() {
|
function meshArray() {
|
||||||
|
|
@ -459,16 +463,16 @@ self.kiri.license = exports.LICENSE;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
max = Math.max(0, max - 1);
|
max = Math.max(0, max - 1);
|
||||||
showLayerMax = max;
|
API.var.layer_max = max;
|
||||||
if (UI.layerID.convert() > max || showLayerValue > max) {
|
if (UI.layerID.convert() > max || API.var.layer_at > max) {
|
||||||
showLayerValue = max;
|
API.var.layer_at = max;
|
||||||
UI.layerID.value = max;
|
UI.layerID.value = max;
|
||||||
UI.layerSlider.value = showLayerMax;
|
UI.layerSlider.value = API.var.layer_max;
|
||||||
}
|
}
|
||||||
UI.layerSlider.max = max;
|
UI.layerSlider.max = max;
|
||||||
if (set) {
|
if (set) {
|
||||||
showLayerValue = showLayerMax;
|
API.var.layer_at = API.var.layer_max;
|
||||||
UI.layerSlider.value = showLayerMax;
|
UI.layerSlider.value = API.var.layer_max;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -500,10 +504,10 @@ self.kiri.license = exports.LICENSE;
|
||||||
if (typeof(layer) === 'string' || typeof(layer) === 'number') {
|
if (typeof(layer) === 'string' || typeof(layer) === 'number') {
|
||||||
layer = parseInt(layer);
|
layer = parseInt(layer);
|
||||||
} else {
|
} else {
|
||||||
layer = showLayerValue;
|
layer = API.var.layer_at;
|
||||||
}
|
}
|
||||||
|
|
||||||
layer = bound(layer, 0, showLayerMax);
|
layer = bound(layer, 0, API.var.layer_max);
|
||||||
|
|
||||||
UI.layerID.value = layer;
|
UI.layerID.value = layer;
|
||||||
UI.layerSlider.value = layer;
|
UI.layerSlider.value = layer;
|
||||||
|
|
@ -513,14 +517,15 @@ self.kiri.license = exports.LICENSE;
|
||||||
slices,
|
slices,
|
||||||
layers,
|
layers,
|
||||||
range = UI.layerRange.checked ? UI.layerSpan.convert() || 1 : 0,
|
range = UI.layerRange.checked ? UI.layerSpan.convert() || 1 : 0,
|
||||||
print = UI.layerPrint.checked;
|
print = UI.layerPrint.checked,
|
||||||
|
moves = UI.layerMoves.checked;
|
||||||
|
|
||||||
if (MODE === MODES.CAM && showLayerRange !== range && range && layer === showLayerMax) {
|
if (MODE === MODES.CAM && API.var.layer_range !== range && range && layer === API.var.layer_max) {
|
||||||
layer = 0;
|
layer = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
showLayerRange = range;
|
API.var.layer_range = range;
|
||||||
showLayerValue = layer;
|
API.var.layer_at = layer;
|
||||||
|
|
||||||
forAllWidgets(function(widget) {
|
forAllWidgets(function(widget) {
|
||||||
if (print) return widget.hideSlices();
|
if (print) return widget.hideSlices();
|
||||||
|
|
@ -568,10 +573,13 @@ self.kiri.license = exports.LICENSE;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (currentPrint) {
|
if (currentPrint) {
|
||||||
for (j = 0; j < currentPrint.layerView.length; j++) {
|
let len = currentPrint.getLayerCount();
|
||||||
currentPrint.showLayer(j, print && showSlice(j, range, layer));
|
for (j = 0; j < len; j++) {
|
||||||
|
currentPrint.showLayer(j, print && showSlice(j, range, layer), moves);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
UI.layerPrint.parentNode.style.display = currentPrint ? '' : 'none';
|
||||||
|
UI.layerMoves.parentNode.style.display = currentPrint ? '' : 'none';
|
||||||
|
|
||||||
SPACE.update();
|
SPACE.update();
|
||||||
}
|
}
|
||||||
|
|
@ -1089,8 +1097,8 @@ self.kiri.license = exports.LICENSE;
|
||||||
|
|
||||||
var firstMesh = true,
|
var firstMesh = true,
|
||||||
countdown = WIDGETS.length,
|
countdown = WIDGETS.length,
|
||||||
preserveMax = showLayerMax,
|
preserveMax = API.var.layer_max,
|
||||||
preserveLayer = showLayerValue,
|
preserveLayer = API.var.layer_at,
|
||||||
totalProgress,
|
totalProgress,
|
||||||
track = {};
|
track = {};
|
||||||
|
|
||||||
|
|
@ -1127,8 +1135,8 @@ self.kiri.license = exports.LICENSE;
|
||||||
DBUG.log(segtimes);
|
DBUG.log(segtimes);
|
||||||
STATS.add(`ua_${getModeLower()}_slice`);
|
STATS.add(`ua_${getModeLower()}_slice`);
|
||||||
updateSliderMax(true);
|
updateSliderMax(true);
|
||||||
if (preserveMax != showLayerMax) {
|
if (preserveMax != API.var.layer_max) {
|
||||||
preserveLayer = showLayerMax;
|
preserveLayer = API.var.layer_max;
|
||||||
}
|
}
|
||||||
firstMesh = false;
|
firstMesh = false;
|
||||||
}
|
}
|
||||||
|
|
@ -1345,7 +1353,7 @@ self.kiri.license = exports.LICENSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
function platformDeselect(widget) {
|
function platformDeselect(widget) {
|
||||||
if (viewMode !== VIEWS.ARRANGE) return;
|
// if (viewMode !== VIEWS.ARRANGE) return;
|
||||||
if (!widget) {
|
if (!widget) {
|
||||||
forAllWidgets(function(widget) {
|
forAllWidgets(function(widget) {
|
||||||
platform.deselect(widget);
|
platform.deselect(widget);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue