mark current mode, move remainder of mesh tool icons, cleanup colors
This commit is contained in:
parent
38f556736a
commit
c10af8126b
8 changed files with 95 additions and 160 deletions
|
|
@ -123,7 +123,7 @@ CAM.init = function(kiri, api) {
|
||||||
|
|
||||||
// wire up animate button in ui
|
// wire up animate button in ui
|
||||||
api.event.on("function.animate", (mode) => {
|
api.event.on("function.animate", (mode) => {
|
||||||
if (isAnimate) {
|
if (isAnimate || !isCamMode) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
api.function.prepare(() => {
|
api.function.prepare(() => {
|
||||||
|
|
@ -1809,6 +1809,7 @@ function animate() {
|
||||||
API.hide.slider();
|
API.hide.slider();
|
||||||
STACKS.clear();
|
STACKS.clear();
|
||||||
animFn().animate(API);
|
animFn().animate(API);
|
||||||
|
API.view.set_animate();
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateStock() {
|
function updateStock() {
|
||||||
|
|
|
||||||
|
|
@ -133,7 +133,8 @@ const MODES = {
|
||||||
const VIEWS = {
|
const VIEWS = {
|
||||||
ARRANGE: 1,
|
ARRANGE: 1,
|
||||||
SLICE: 2,
|
SLICE: 2,
|
||||||
PREVIEW: 3
|
PREVIEW: 3,
|
||||||
|
ANIMATE: 4
|
||||||
};
|
};
|
||||||
|
|
||||||
// preview modes
|
// preview modes
|
||||||
|
|
|
||||||
|
|
@ -380,8 +380,7 @@ function prepareAnimation() {
|
||||||
api.alerts.show("window prevents animations");
|
api.alerts.show("window prevents animations");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const settings = api.conf.get();
|
api.event.emit("function.animate", {mode: api.conf.get().mode});
|
||||||
api.event.emit("function.animate", {mode: settings.mode});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function prepareExport() {
|
function prepareExport() {
|
||||||
|
|
|
||||||
|
|
@ -1633,7 +1633,7 @@ gapp.register("kiri.init", [], (root, exports) => {
|
||||||
ltact: $('lt-start'),
|
ltact: $('lt-start'),
|
||||||
edit: $('lt-tools'),
|
edit: $('lt-tools'),
|
||||||
nozzle: $('menu-nozzle'),
|
nozzle: $('menu-nozzle'),
|
||||||
render: $('menu-render'),
|
// render: $('menu-render'),
|
||||||
|
|
||||||
modal: $('modal'),
|
modal: $('modal'),
|
||||||
modalBox: $('modal-box'),
|
modalBox: $('modal-box'),
|
||||||
|
|
@ -1794,7 +1794,7 @@ gapp.register("kiri.init", [], (root, exports) => {
|
||||||
shiny: newBoolean(LANG.op_shny_s, booleanSave, {title:LANG.op_shny_l, modes:FDM}),
|
shiny: newBoolean(LANG.op_shny_s, booleanSave, {title:LANG.op_shny_l, modes:FDM}),
|
||||||
lineType: newSelect(LANG.op_line_s, {title: LANG.op_line_l, action: lineTypeSave, modes:FDM}, "linetype"),
|
lineType: newSelect(LANG.op_line_s, {title: LANG.op_line_l, action: lineTypeSave, modes:FDM}, "linetype"),
|
||||||
animesh: newSelect(LANG.op_anim_s, {title: LANG.op_anim_l, action: aniMeshSave, modes:CAM}, "animesh"),
|
animesh: newSelect(LANG.op_anim_s, {title: LANG.op_anim_l, action: aniMeshSave, modes:CAM}, "animesh"),
|
||||||
units: newSelect(LANG.op_unit_s, {title: LANG.op_unit_l, action: unitsSave, modes:CAM, trace:true}, "units"),
|
units: newSelect(LANG.op_unit_s, {title: LANG.op_unit_l, action: unitsSave, modes:CAM, trace:false}, "units"),
|
||||||
layout: newGroup(LANG.lo_menu, $('prefs-lay'), {inline: true}),
|
layout: newGroup(LANG.lo_menu, $('prefs-lay'), {inline: true}),
|
||||||
autoSave: newBoolean(LANG.op_save_s, booleanSave, {title:LANG.op_save_l}),
|
autoSave: newBoolean(LANG.op_save_s, booleanSave, {title:LANG.op_save_l}),
|
||||||
autoLayout: newBoolean(LANG.op_auto_s, booleanSave, {title:LANG.op_auto_l}),
|
autoLayout: newBoolean(LANG.op_auto_s, booleanSave, {title:LANG.op_auto_l}),
|
||||||
|
|
@ -1819,7 +1819,7 @@ gapp.register("kiri.init", [], (root, exports) => {
|
||||||
|
|
||||||
_____: newGroup(LANG.sl_menu, $('fdm-layers'), { modes:FDM, driven, separator }),
|
_____: newGroup(LANG.sl_menu, $('fdm-layers'), { modes:FDM, driven, separator }),
|
||||||
sliceHeight: newInput(LANG.sl_lahi_s, { title:LANG.sl_lahi_l, convert:toFloat }),
|
sliceHeight: newInput(LANG.sl_lahi_s, { title:LANG.sl_lahi_l, convert:toFloat }),
|
||||||
sliceMinHeight: newInput(LANG.ad_minl_s, { title:LANG.ad_minl_l, convert:toFloat, bound:bound(0,3.0), show:() => ui.sliceAdaptive.checked, trace2:true }),
|
sliceMinHeight: newInput(LANG.ad_minl_s, { title:LANG.ad_minl_l, convert:toFloat, bound:bound(0,3.0), show:() => ui.sliceAdaptive.checked }),
|
||||||
sliceTopLayers: newInput(LANG.sl_ltop_s, { title:LANG.sl_ltop_l, convert:toInt }),
|
sliceTopLayers: newInput(LANG.sl_ltop_s, { title:LANG.sl_ltop_l, convert:toInt }),
|
||||||
sliceBottomLayers: newInput(LANG.sl_lbot_s, { title:LANG.sl_lbot_l, convert:toInt }),
|
sliceBottomLayers: newInput(LANG.sl_lbot_s, { title:LANG.sl_lbot_l, convert:toInt }),
|
||||||
separator: newBlank({ class:"set-sep", driven }),
|
separator: newBlank({ class:"set-sep", driven }),
|
||||||
|
|
@ -1858,7 +1858,7 @@ gapp.register("kiri.init", [], (root, exports) => {
|
||||||
sliceSupportExtra: newInput(LANG.sp_xpnd_s, {title:LANG.sp_xpnd_l, convert:toFloat, bound:bound(0.0,10.0)}),
|
sliceSupportExtra: newInput(LANG.sp_xpnd_s, {title:LANG.sp_xpnd_l, convert:toFloat, bound:bound(0.0,10.0)}),
|
||||||
sliceSupportGrow: newInput(LANG.sp_grow_s, {title:LANG.sp_grow_l, convert:toFloat, bound:bound(0.0,10.0)}),
|
sliceSupportGrow: newInput(LANG.sp_grow_s, {title:LANG.sp_grow_l, convert:toFloat, bound:bound(0.0,10.0)}),
|
||||||
sliceSupportAngle: newInput(LANG.sp_angl_s, {title:LANG.sp_angl_l, convert:toFloat, bound:bound(0.0,90.0)}),
|
sliceSupportAngle: newInput(LANG.sp_angl_s, {title:LANG.sp_angl_l, convert:toFloat, bound:bound(0.0,90.0)}),
|
||||||
sliceSupportSpan: newInput(LANG.sp_span_s, {title:LANG.sp_span_l, convert:toFloat, bound:bound(0.0,200.0), show:() => ui.sliceSupportEnable.checked, trace2:false }),
|
sliceSupportSpan: newInput(LANG.sp_span_s, {title:LANG.sp_span_l, convert:toFloat, bound:bound(0.0,200.0), show:() => ui.sliceSupportEnable.checked }),
|
||||||
separator: newBlank({ class:"set-sep", driven }),
|
separator: newBlank({ class:"set-sep", driven }),
|
||||||
sliceSupportEnable: newBoolean(LANG.sp_auto_s, onBooleanClick, {title:LANG.sp_auto_l, show:isNotBelt}),
|
sliceSupportEnable: newBoolean(LANG.sp_auto_s, onBooleanClick, {title:LANG.sp_auto_l, show:isNotBelt}),
|
||||||
sliceSupportOutline: newBoolean(LANG.sp_outl_s, onBooleanClick, {title:LANG.sp_outl_l}),
|
sliceSupportOutline: newBoolean(LANG.sp_outl_s, onBooleanClick, {title:LANG.sp_outl_l}),
|
||||||
|
|
@ -1955,7 +1955,7 @@ gapp.register("kiri.init", [], (root, exports) => {
|
||||||
camStockIndexed: newBoolean(LANG.cs_indx_s, onBooleanClick, {title:LANG.cs_indx_l}),
|
camStockIndexed: newBoolean(LANG.cs_indx_s, onBooleanClick, {title:LANG.cs_indx_l}),
|
||||||
camStockIndexGrid: newBoolean(LANG.cs_ishg_s, onBooleanClick, {title:LANG.cs_ishg_l, show:() => ui.camStockIndexed.checked}),
|
camStockIndexGrid: newBoolean(LANG.cs_ishg_s, onBooleanClick, {title:LANG.cs_ishg_l, show:() => ui.camStockIndexed.checked}),
|
||||||
camLimits: newGroup(LANG.cc_menu, $('cam-limits'), { modes:CAM, driven, separator }),
|
camLimits: newGroup(LANG.cc_menu, $('cam-limits'), { modes:CAM, driven, separator }),
|
||||||
camZAnchor: newSelect(LANG.ou_zanc_s, {title: LANG.ou_zanc_l, action:zAnchorSave, trace:true, show:() => !ui.camStockIndexed.checked}, "zanchor"),
|
camZAnchor: newSelect(LANG.ou_zanc_s, {title: LANG.ou_zanc_l, action:zAnchorSave, trace:false, show:() => !ui.camStockIndexed.checked}, "zanchor"),
|
||||||
camZOffset: newInput(LANG.ou_ztof_s, {title:LANG.ou_ztof_l, convert:toFloat, units:true}),
|
camZOffset: newInput(LANG.ou_ztof_s, {title:LANG.ou_ztof_l, convert:toFloat, units:true}),
|
||||||
camZBottom: newInput(LANG.ou_zbot_s, {title:LANG.ou_zbot_l, convert:toFloat, units:true, trigger: true}),
|
camZBottom: newInput(LANG.ou_zbot_s, {title:LANG.ou_zbot_l, convert:toFloat, units:true, trigger: true}),
|
||||||
camZThru: newInput(LANG.ou_ztru_s, {title:LANG.ou_ztru_l, convert:toFloat, bound:bound(0.0,100), units:true, show:() => { return ui.camZBottom.value == 0 }}),
|
camZThru: newInput(LANG.ou_ztru_s, {title:LANG.ou_ztru_l, convert:toFloat, bound:bound(0.0,100), units:true, show:() => { return ui.camZBottom.value == 0 }}),
|
||||||
|
|
@ -2769,7 +2769,7 @@ gapp.register("kiri.init", [], (root, exports) => {
|
||||||
$('view-back').onclick = space.view.back;
|
$('view-back').onclick = space.view.back;
|
||||||
$('view-left').onclick = space.view.left;
|
$('view-left').onclick = space.view.left;
|
||||||
$('view-right').onclick = space.view.right;
|
$('view-right').onclick = space.view.right;
|
||||||
$('view-clear').onclick = api.platform.clear;
|
// $('view-clear').onclick = api.platform.clear;
|
||||||
$('unrotate').onclick = () => {
|
$('unrotate').onclick = () => {
|
||||||
api.widgets.for(w => w.unrotate());
|
api.widgets.for(w => w.unrotate());
|
||||||
api.selection.update_info();
|
api.selection.update_info();
|
||||||
|
|
@ -2784,7 +2784,7 @@ gapp.register("kiri.init", [], (root, exports) => {
|
||||||
$('rot_z_lt').onclick = () => { api.selection.rotate(0,0, d) };
|
$('rot_z_lt').onclick = () => { api.selection.rotate(0,0, d) };
|
||||||
$('rot_z_gt').onclick = () => { api.selection.rotate(0,0,-d) };
|
$('rot_z_gt').onclick = () => { api.selection.rotate(0,0,-d) };
|
||||||
// rendering options
|
// rendering options
|
||||||
$('render-hide').onclick = () => { api.view.wireframe(false, 0, 0); };
|
// $('render-hide').onclick = () => { api.view.wireframe(false, 0, 0); };
|
||||||
$('render-ghost').onclick = () => { api.view.wireframe(false, 0, api.view.is_arrange() ? 0.4 : 0.25); };
|
$('render-ghost').onclick = () => { api.view.wireframe(false, 0, api.view.is_arrange() ? 0.4 : 0.25); };
|
||||||
$('render-wire').onclick = () => { api.view.wireframe(true, 0, api.space.is_dark() ? 0.25 : 0.5); };
|
$('render-wire').onclick = () => { api.view.wireframe(true, 0, api.space.is_dark() ? 0.25 : 0.5); };
|
||||||
$('render-solid').onclick = () => { api.view.wireframe(false, 0, 1); };
|
$('render-solid').onclick = () => { api.view.wireframe(false, 0, 1); };
|
||||||
|
|
|
||||||
|
|
@ -186,9 +186,11 @@ gapp.register("kiri.main", [], (root, exports) => {
|
||||||
set_arrange() { api.view.set(VIEWS.ARRANGE) },
|
set_arrange() { api.view.set(VIEWS.ARRANGE) },
|
||||||
set_slice() { api.view.set(VIEWS.SLICE) },
|
set_slice() { api.view.set(VIEWS.SLICE) },
|
||||||
set_preview() { api.view.set(VIEWS.PREVIEW) },
|
set_preview() { api.view.set(VIEWS.PREVIEW) },
|
||||||
|
set_animate() { api.view.set(VIEWS.ANIMATE) },
|
||||||
is_arrange() { return viewMode === VIEWS.ARRANGE },
|
is_arrange() { return viewMode === VIEWS.ARRANGE },
|
||||||
is_slice() { return viewMode === VIEWS.SLICE },
|
is_slice() { return viewMode === VIEWS.SLICE },
|
||||||
is_preview() { return viewMode === VIEWS.PREVIEW },
|
is_preview() { return viewMode === VIEWS.PREVIEW },
|
||||||
|
is_animate() { return viewMode === VIEWS.ANIMATE },
|
||||||
update_stack_labels: updateStackLabelState,
|
update_stack_labels: updateStackLabelState,
|
||||||
update_slider_max: updateSliderMax,
|
update_slider_max: updateSliderMax,
|
||||||
update_slider: updateSlider,
|
update_slider: updateSlider,
|
||||||
|
|
@ -840,12 +842,13 @@ gapp.register("kiri.main", [], (root, exports) => {
|
||||||
platform.deselect();
|
platform.deselect();
|
||||||
selection.update_info();
|
selection.update_info();
|
||||||
// disable clear in non-arrange modes
|
// disable clear in non-arrange modes
|
||||||
$('view-clear').style.display = mode === VIEWS.ARRANGE ? '' : 'none';
|
['view-arrange','act-slice','act-preview','act-animate'].forEach(el => {
|
||||||
|
$(el).classList.remove('selected')
|
||||||
|
});
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case VIEWS.ARRANGE:
|
case VIEWS.ARRANGE:
|
||||||
|
$('view-arrange').classList.add('selected');
|
||||||
api.function.clear_progress();
|
api.function.clear_progress();
|
||||||
// UI.back.style.display = '';
|
|
||||||
UI.render.style.display = '';
|
|
||||||
kiri.client.clear();
|
kiri.client.clear();
|
||||||
STACKS.clear();
|
STACKS.clear();
|
||||||
hideSlider();
|
hideSlider();
|
||||||
|
|
@ -855,17 +858,18 @@ gapp.register("kiri.main", [], (root, exports) => {
|
||||||
api.widgets.opacity(1);
|
api.widgets.opacity(1);
|
||||||
break;
|
break;
|
||||||
case VIEWS.SLICE:
|
case VIEWS.SLICE:
|
||||||
if (isCAM) UI.render.classList.add('hide');
|
$('act-slice').classList.add('selected');
|
||||||
else UI.render.classList.remove('hide');
|
|
||||||
updateSpeeds();
|
updateSpeeds();
|
||||||
updateSliderMax();
|
updateSliderMax();
|
||||||
setWidgetVisibility(true);
|
setWidgetVisibility(true);
|
||||||
break;
|
break;
|
||||||
case VIEWS.PREVIEW:
|
case VIEWS.PREVIEW:
|
||||||
if (isCAM) UI.render.classList.add('hide');
|
$('act-preview').classList.add('selected');
|
||||||
else UI.render.classList.remove('hide');
|
|
||||||
setWidgetVisibility(true);
|
setWidgetVisibility(true);
|
||||||
break;
|
break;
|
||||||
|
case VIEWS.ANIMATE:
|
||||||
|
$('act-animate').classList.add('selected');
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
console.log("invalid view mode: "+mode);
|
console.log("invalid view mode: "+mode);
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ gapp.register("kiri.ui", [], (root, exports) => {
|
||||||
addTo = null,
|
addTo = null,
|
||||||
bindTo = null,
|
bindTo = null,
|
||||||
groups = {},
|
groups = {},
|
||||||
groupShow = {},
|
|
||||||
groupSticky = false,
|
groupSticky = false,
|
||||||
groupName = undefined,
|
groupName = undefined,
|
||||||
hasModes = [],
|
hasModes = [],
|
||||||
|
|
@ -24,10 +23,7 @@ gapp.register("kiri.ui", [], (root, exports) => {
|
||||||
lastMode = null,
|
lastMode = null,
|
||||||
lastExpert = true,
|
lastExpert = true,
|
||||||
letHoverPop = true,
|
letHoverPop = true,
|
||||||
exitimer = undefined,
|
|
||||||
NOMODE = "nomode",
|
|
||||||
prefix = "tab",
|
prefix = "tab",
|
||||||
state = {},
|
|
||||||
units = 1,
|
units = 1,
|
||||||
lastChange = null,
|
lastChange = null,
|
||||||
lastBtn = null,
|
lastBtn = null,
|
||||||
|
|
@ -167,8 +163,8 @@ gapp.register("kiri.ui", [], (root, exports) => {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function refresh(all) {
|
function refresh() {
|
||||||
setMode(lastMode, all ? false : true);
|
setMode(lastMode);
|
||||||
setters.forEach(input => {
|
setters.forEach(input => {
|
||||||
if (input.setv) {
|
if (input.setv) {
|
||||||
input.setv(input.real);
|
input.setv(input.real);
|
||||||
|
|
@ -176,21 +172,9 @@ gapp.register("kiri.ui", [], (root, exports) => {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function setMode(mode, nohide) {
|
function setMode(mode) {
|
||||||
console.log({ gs: groupShow });
|
|
||||||
Object.keys(groupShow).forEach(group => {
|
|
||||||
updateGroupShow(group);
|
|
||||||
});
|
|
||||||
lastMode = mode;
|
lastMode = mode;
|
||||||
if (nohide) {
|
hasModes.forEach(div => div.setMode(mode));
|
||||||
for (let div of hasModes.filter(d => d.isBlank)) {
|
|
||||||
div.setMode(div._group && !groupShow[div._group] ? NOMODE : mode);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
hasModes.forEach(function(div) {
|
|
||||||
div.setMode(div._group && !groupShow[div._group] ? NOMODE : mode);
|
|
||||||
});
|
|
||||||
hidePoppers();
|
hidePoppers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -200,7 +184,7 @@ console.log({ gs: groupShow });
|
||||||
}
|
}
|
||||||
|
|
||||||
function setHoverPop(bool) {
|
function setHoverPop(bool) {
|
||||||
letHoverPop = bool;
|
// letHoverPop = bool;
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkpoint(at) {
|
function checkpoint(at) {
|
||||||
|
|
@ -274,14 +258,6 @@ console.log({ gs: groupShow });
|
||||||
lastGroup = groups[group] = [];
|
lastGroup = groups[group] = [];
|
||||||
lastGroup.key = dbkey;
|
lastGroup.key = dbkey;
|
||||||
groupName = group;
|
groupName = group;
|
||||||
groupShow[group] = state[dbkey] !== 'false';
|
|
||||||
row.onclick = function(ev) {
|
|
||||||
if (ev.target !== link && ev.target !== row) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
console.log({ toggleGroup: group, dbkey });
|
|
||||||
toggleGroup(group, dbkey);
|
|
||||||
};
|
|
||||||
|
|
||||||
return row;
|
return row;
|
||||||
}
|
}
|
||||||
|
|
@ -294,33 +270,7 @@ console.log({ gs: groupShow });
|
||||||
}
|
}
|
||||||
|
|
||||||
function hidePoppers() {
|
function hidePoppers() {
|
||||||
showGroup(undefined);
|
// showGroup(undefined);
|
||||||
}
|
|
||||||
|
|
||||||
function showGroup(groupname) {
|
|
||||||
Object.keys(groups).forEach(name => {
|
|
||||||
let group = groups[name];
|
|
||||||
groupShow[name] = true;//state[group.key] = (groupname === name);
|
|
||||||
updateGroupShow(name);
|
|
||||||
});
|
|
||||||
groupSticky = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleGroup(groupname, dbkey) {
|
|
||||||
let show = state[dbkey] === 'true' || state[dbkey] === true;
|
|
||||||
groupShow[groupname] = state[dbkey] = !show;
|
|
||||||
// console.log({ state, show });
|
|
||||||
updateGroupShow(groupname);
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateGroupShow(groupname) {
|
|
||||||
let show = groupShow[groupname] ?? true;
|
|
||||||
// console.log({ updateGroupShow: groupname, show: groupShow[groupname] });
|
|
||||||
let group = groups[groupname];
|
|
||||||
group.forEach(div => {
|
|
||||||
if (show) div.setMode(lastMode);
|
|
||||||
else div.setMode(NOMODE);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function bound(low,high) {
|
function bound(low,high) {
|
||||||
|
|
@ -344,10 +294,8 @@ console.log({ gs: groupShow });
|
||||||
function toFloat() {
|
function toFloat() {
|
||||||
let nv = this.value !== '' ? parseFloat(this.value) : null;
|
let nv = this.value !== '' ? parseFloat(this.value) : null;
|
||||||
if (nv !== null && this.bound) nv = this.bound(nv);
|
if (nv !== null && this.bound) nv = this.bound(nv);
|
||||||
// this.value = nv;
|
|
||||||
if (this.setv) {
|
if (this.setv) {
|
||||||
return this.setv(nv * units);
|
return this.setv(nv * units);
|
||||||
// return this.real = (nv * units);
|
|
||||||
} else {
|
} else {
|
||||||
this.value = nv;
|
this.value = nv;
|
||||||
}
|
}
|
||||||
|
|
@ -381,6 +329,14 @@ console.log({ gs: groupShow });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function safecall(fn) {
|
||||||
|
try {
|
||||||
|
return fn();
|
||||||
|
} catch (e) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function addModeControls(el, opt = {}) {
|
function addModeControls(el, opt = {}) {
|
||||||
if (opt.trace2) {
|
if (opt.trace2) {
|
||||||
console.log({ AMC: el, opt, groupName });
|
console.log({ AMC: el, opt, groupName });
|
||||||
|
|
@ -399,21 +355,17 @@ console.log({ gs: groupShow });
|
||||||
};
|
};
|
||||||
el.setMode = function(mode) {
|
el.setMode = function(mode) {
|
||||||
let xprt = opt.expert === undefined || (opt.expert === lastExpert);
|
let xprt = opt.expert === undefined || (opt.expert === lastExpert);
|
||||||
let show = opt.show ? opt.show() : true;
|
let show = opt.show ? safecall(opt.show) : true;
|
||||||
let disp = opt.visible ? opt.visible() : true;
|
let disp = opt.visible ? opt.visible() : true;
|
||||||
if (opt.trace2) console.log({ setMode: el, xprt, show, disp, fn: el.__opt.show });
|
if (opt.trace2) console.log({ setMode: el, mode, modes: el.modes, xprt, show, disp, fn: el.__opt.show });
|
||||||
el.setVisible(el.hasMode(mode) && show && xprt && disp);
|
el.setVisible(el.hasMode(mode) && show && xprt && disp);
|
||||||
}
|
}
|
||||||
el.hasMode = function(mode) {
|
el.hasMode = function(mode) {
|
||||||
if (mode === NOMODE) return false;
|
return el.modes.length === 0 || el.modes.contains(mode);
|
||||||
if (!el.modes) return true;
|
|
||||||
return el.modes.contains(mode);
|
|
||||||
}
|
}
|
||||||
if (opt.modes) {
|
el.modes = opt.modes || [];
|
||||||
el.modes = opt.modes;
|
|
||||||
hasModes.push(el);
|
hasModes.push(el);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function newDiv(opt = {}) {
|
function newDiv(opt = {}) {
|
||||||
let div = DOC.createElement('div');
|
let div = DOC.createElement('div');
|
||||||
|
|
@ -449,7 +401,6 @@ console.log({ gs: groupShow });
|
||||||
|
|
||||||
function newGCode(label, options) {
|
function newGCode(label, options) {
|
||||||
let opt = options || {},
|
let opt = options || {},
|
||||||
// row = lastDiv,
|
|
||||||
btn = DOC.createElement("button"),
|
btn = DOC.createElement("button"),
|
||||||
txt = DOC.createElement("textarea"),
|
txt = DOC.createElement("textarea"),
|
||||||
area = opt.area;
|
area = opt.area;
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,12 @@
|
||||||
--menu-border: #555;
|
--menu-border: #555;
|
||||||
--dark-menu-text: #111;
|
--dark-menu-text: #111;
|
||||||
--menu-hover: #ddd;
|
--menu-hover: #ddd;
|
||||||
|
--blue-1: rgb(96,127,164);
|
||||||
|
--blue-2: rgb(126,153,183);
|
||||||
|
--blue-3: rgb(190, 204, 219);
|
||||||
|
--blue-4: rgb(221, 228, 234);
|
||||||
|
--blue-5: rgb(240, 243, 245);
|
||||||
|
--blue-6: rgb(247, 249, 250);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* surface size configuration and font import */
|
/* surface size configuration and font import */
|
||||||
|
|
@ -241,9 +247,12 @@ th, tr, td, label {
|
||||||
color: black;
|
color: black;
|
||||||
}
|
}
|
||||||
.top-menu > span:hover {
|
.top-menu > span:hover {
|
||||||
background-color: var(--row-hover);
|
background-color: var(--blue-4);
|
||||||
border-left: 1px solid var(--menu-border);
|
border-left: 1px solid var(--blue-2);
|
||||||
border-right: 1px solid var(--menu-border);
|
border-right: 1px solid var(--blue-2);
|
||||||
|
}
|
||||||
|
.top-menu > span.selected {
|
||||||
|
background-color: var(--blue-3);
|
||||||
}
|
}
|
||||||
.top-menu > span:hover .top-menu-drop {
|
.top-menu > span:hover .top-menu-drop {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -278,11 +287,11 @@ th, tr, td, label {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
background-color: var(--menu);
|
background-color: #fff;
|
||||||
border-top: 1px dashed var(--menu-border);
|
border-top: 1px dashed var(--blue-2);
|
||||||
border-left: 1px solid var(--menu-border);
|
border-left: 1px solid var(--blue-2);
|
||||||
border-right: 1px solid var(--menu-border);
|
border-right: 1px solid var(--blue-2);
|
||||||
border-bottom: 1px solid var(--menu-border);
|
border-bottom: 1px solid var(--blue-2);
|
||||||
border-bottom-right-radius: 4px;
|
border-bottom-right-radius: 4px;
|
||||||
border-bottom-left-radius: 4px;
|
border-bottom-left-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
@ -315,7 +324,7 @@ th, tr, td, label {
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
}
|
}
|
||||||
#top .content > div:hover {
|
#top .content > div:hover {
|
||||||
background-color: var(--menu-hover);
|
background-color: var(--blue-4);
|
||||||
}
|
}
|
||||||
|
|
||||||
#app-name {
|
#app-name {
|
||||||
|
|
@ -648,8 +657,8 @@ th, tr, td, label {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
background-color: var(--menu);
|
background-color: #fff;
|
||||||
border: 1px solid var(--menu-border);
|
border: 1px solid var(--blue-2);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
@ -657,7 +666,7 @@ th, tr, td, label {
|
||||||
padding: 2px 7px 2px 7px;
|
padding: 2px 7px 2px 7px;
|
||||||
}
|
}
|
||||||
#lang-pop > div:hover {
|
#lang-pop > div:hover {
|
||||||
background-color: var(--menu-hover);
|
background-color: var(--blue-4);
|
||||||
}
|
}
|
||||||
|
|
||||||
#mid {
|
#mid {
|
||||||
|
|
@ -857,25 +866,32 @@ th, tr, td, label {
|
||||||
#ft-mesh {
|
#ft-mesh {
|
||||||
min-width: 200px;
|
min-width: 200px;
|
||||||
}
|
}
|
||||||
#menu-render {
|
.render-tools {
|
||||||
|
display: grid;
|
||||||
margin: 4px 0 0 0;
|
margin: 4px 0 0 0;
|
||||||
gap: 3px;
|
/* gap: 3px; */
|
||||||
flex-direction: row;;
|
grid-template-columns: 1fr 1fr 1fr;
|
||||||
}
|
}
|
||||||
#menu-render > span {
|
.render-tools > span {
|
||||||
width: 20px;
|
justify-self: center;
|
||||||
height: 20px;
|
width: 25px;
|
||||||
|
height: 25px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
#menu-render > span > * {
|
.render-tools > span > * {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
width: 20px;
|
}
|
||||||
height: 20px;
|
.render-tools svg {
|
||||||
align-items: stretch;
|
border: 1px solid transparent;
|
||||||
justify-content: stretch;
|
border-radius: 3px;
|
||||||
|
padding: 3px;
|
||||||
|
}
|
||||||
|
.render-tools svg:hover {
|
||||||
|
border: 1px solid blue;
|
||||||
|
background-color: var(--blue-4);
|
||||||
}
|
}
|
||||||
#render-hide > a {
|
#render-hide > a {
|
||||||
border: 0.5px dashed black;
|
border: 0.5px dashed black;
|
||||||
|
|
@ -1927,10 +1943,8 @@ th, tr, td, label {
|
||||||
border-right: 3px solid transparent;
|
border-right: 3px solid transparent;
|
||||||
}
|
}
|
||||||
.set2-group .var-row:hover {
|
.set2-group .var-row:hover {
|
||||||
/* border-left: 3px solid var(--main-color-hover); */
|
border-right: 3px solid var(--blue-1);
|
||||||
border-right: 3px solid var(--main-color-hover);
|
background-color: var(--blue-4) !important;
|
||||||
/* background-color: #f8f8f8 !important; */
|
|
||||||
background-color: var(--row-hover) !important;
|
|
||||||
}
|
}
|
||||||
.set2-group .var-row label {
|
.set2-group .var-row label {
|
||||||
margin-right: 25px;
|
margin-right: 25px;
|
||||||
|
|
@ -1953,8 +1967,7 @@ th, tr, td, label {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
justify-content: left;
|
justify-content: left;
|
||||||
background-color: var(--header);
|
background-color: var(--blue-3);
|
||||||
/* /* border-top: 0.5px solid #888; */
|
|
||||||
border-left: 3px solid transparent;
|
border-left: 3px solid transparent;
|
||||||
border-right: 3px solid var(--main-color-hover);
|
border-right: 3px solid var(--main-color-hover);
|
||||||
border-bottom: 0.5px solid var(--main-color-hover);
|
border-bottom: 0.5px solid var(--main-color-hover);
|
||||||
|
|
|
||||||
|
|
@ -99,31 +99,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</span>
|
</span>
|
||||||
<span>
|
|
||||||
<i class="fas fa-dice-d20"></i>
|
|
||||||
<label>mesh</label>
|
|
||||||
<div class="top-menu-drop top-menu-right">
|
|
||||||
<div class="content">
|
|
||||||
<div id="tool-rotate">
|
|
||||||
<label lk="rotate">rotate</label>
|
|
||||||
<span><i class="fas fa-sync-alt"></i></span>
|
|
||||||
</div>
|
|
||||||
<div id="tool-scale">
|
|
||||||
<label lk="scale">scale</label>
|
|
||||||
<span><i class="fas fa-expand"></i></span>
|
|
||||||
</div>
|
|
||||||
<div id="tool-mesh">
|
|
||||||
<label lk="mesh">mesh</label>
|
|
||||||
<span><i class="fas fa-dice-d20"></i></span>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div id="view-clear">
|
|
||||||
<label lk="clear">clear</label>
|
|
||||||
<span><i class="far fa-square"></i></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</span>
|
|
||||||
<span>
|
<span>
|
||||||
<i class="fas fa-eye"></i>
|
<i class="fas fa-eye"></i>
|
||||||
<label>view</label>
|
<label>view</label>
|
||||||
|
|
@ -295,36 +270,27 @@
|
||||||
<div class="mid-sep"></div>
|
<div class="mid-sep"></div>
|
||||||
<div id="panel-right" class="f-col j-start settings">
|
<div id="panel-right" class="f-col j-start settings">
|
||||||
<div class="set2-group f-col">
|
<div class="set2-group f-col">
|
||||||
<div class="set-header">
|
<div class="set-header"><a>workspace</a></div>
|
||||||
<a>workspace</a>
|
|
||||||
</div>
|
|
||||||
<div id="ws-widgets" class="f-col"></div>
|
<div id="ws-widgets" class="f-col"></div>
|
||||||
<div id="menu-render" class="j-center">
|
<div class="set-header"><a>mesh tools</a></div>
|
||||||
<span id="render-solid" class="j-center" title="solid">
|
<div class="render-tools">
|
||||||
<i class="fas fa-square"></i>
|
<span id="tool-rotate"><i class="fas fa-sync-alt"></i></span></span>
|
||||||
</span>
|
<span id="tool-scale"><i class="fas fa-expand"></i></span></span>
|
||||||
<span id="render-wire" class="j-center" title="wireframe">
|
<span id="tool-mesh"><i class="fas fa-dice-d20"></i></span></span>
|
||||||
<i class="fas fa-border-all"></i>
|
<span id="render-solid" class="j-center" title="solid"><i class="fas fa-square"></i></span>
|
||||||
</span>
|
<span id="render-wire" class="j-center" title="wireframe"><i class="fas fa-border-all"></i></span>
|
||||||
<span id="render-ghost" class="a-center" title="ghost">
|
<span id="render-ghost" class="a-center" title="ghost"><i class="fas fa-border-none"></i></span>
|
||||||
<i class="fas fa-border-none"></i>
|
|
||||||
</span>
|
|
||||||
<span id="render-hide" class="a-center j-center" title="hide"><a></a></span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="set2-group f-col mode-fdm">
|
<div class="set2-group f-col mode-fdm">
|
||||||
<div class="set-header">
|
<div class="set-header"><a>ranges</a></div>
|
||||||
<a>ranges</a>
|
|
||||||
</div>
|
|
||||||
<div id="fdm-ranges" class="f-col"></div>
|
<div id="fdm-ranges" class="f-col"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="set2-group f-col">
|
<div class="set2-group f-col">
|
||||||
<div id="workspace-tool"></div>
|
<div id="workspace-tool"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="set2-group f-col mode-cam">
|
<div class="set2-group f-col mode-cam">
|
||||||
<div class="set-header mode-cam">
|
<div class="set-header mode-cam"><a>operation list</a></div>
|
||||||
<a>operation list</a>
|
|
||||||
</div>
|
|
||||||
<div id="camops" class="f-col a-stretch grow">
|
<div id="camops" class="f-col a-stretch grow">
|
||||||
<div id="oplist" class="f-col j-center"></div>
|
<div id="oplist" class="f-col j-center"></div>
|
||||||
<div id="op-add" class="opdiv">
|
<div id="op-add" class="opdiv">
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue