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