allow proper scaling from a selected model, not group
This commit is contained in:
parent
a7062bd33a
commit
e8c7e2b014
1 changed files with 9 additions and 8 deletions
|
|
@ -353,6 +353,7 @@ function ui_build() {
|
||||||
// builds a modal dialog that updates the object and field
|
// builds a modal dialog that updates the object and field
|
||||||
function field_edit(title, set) {
|
function field_edit(title, set) {
|
||||||
return function(ev) {
|
return function(ev) {
|
||||||
|
let value = ev.target.innerText;
|
||||||
let onclick = (ev) => {
|
let onclick = (ev) => {
|
||||||
let tempval = parseFloat($('tempval').value);
|
let tempval = parseFloat($('tempval').value);
|
||||||
api.modal.hide(modal.info.cancelled);
|
api.modal.hide(modal.info.cancelled);
|
||||||
|
|
@ -360,7 +361,7 @@ function ui_build() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (let g of api.selection.groups()) {
|
for (let g of api.selection.groups()) {
|
||||||
set(g, tempval);
|
set(g, tempval, value);
|
||||||
g.floor(mesh.group);
|
g.floor(mesh.group);
|
||||||
defer_selection(); // update ui
|
defer_selection(); // update ui
|
||||||
}
|
}
|
||||||
|
|
@ -372,7 +373,7 @@ function ui_build() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let { tempval } = api.modal.show(title, h.div({ class: "tempedit" }, [
|
let { tempval } = api.modal.show(title, h.div({ class: "tempedit" }, [
|
||||||
h.input({ id: 'tempval', value: ev.target.innerText, size: 10, onkeydown }),
|
h.input({ id: 'tempval', value, size: 10, onkeydown }),
|
||||||
h.button({ _: 'set', onclick })
|
h.button({ _: 'set', onclick })
|
||||||
]));
|
]));
|
||||||
tempval.setSelectionRange(0, tempval.value.length);
|
tempval.setSelectionRange(0, tempval.value.length);
|
||||||
|
|
@ -497,27 +498,27 @@ function ui_build() {
|
||||||
defer_selection(); // update ui
|
defer_selection(); // update ui
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
span_val_X_size.onclick = field_edit('x size', (group, val) => {
|
span_val_X_size.onclick = field_edit('x size', (group, val, oval) => {
|
||||||
let dim = group.bounds.dim;
|
let dim = group.bounds.dim;
|
||||||
let rel = val / dim.x;
|
let rel = val / parseFloat(oval);
|
||||||
if (axgrp.X) {
|
if (axgrp.X) {
|
||||||
group.scale(rel, axgrp.Y ? rel : 1, axgrp.Z ? rel : 1);
|
group.scale(rel, axgrp.Y ? rel : 1, axgrp.Z ? rel : 1);
|
||||||
} else {
|
} else {
|
||||||
group.scale(rel, 1, 1);
|
group.scale(rel, 1, 1);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
span_val_Y_size.onclick = field_edit('y size', (group, val) => {
|
span_val_Y_size.onclick = field_edit('y size', (group, val, oval) => {
|
||||||
let dim = group.bounds.dim;
|
let dim = group.bounds.dim;
|
||||||
let rel = val / dim.y;
|
let rel = val / parseFloat(oval);
|
||||||
if (axgrp.Y) {
|
if (axgrp.Y) {
|
||||||
group.scale(axgrp.X ? rel : 1, rel, axgrp.Z ? rel : 1);
|
group.scale(axgrp.X ? rel : 1, rel, axgrp.Z ? rel : 1);
|
||||||
} else {
|
} else {
|
||||||
group.scale(1, rel, 1);
|
group.scale(1, rel, 1);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
span_val_Z_size.onclick = field_edit('z size', (group, val) => {
|
span_val_Z_size.onclick = field_edit('z size', (group, val, oval) => {
|
||||||
let dim = group.bounds.dim;
|
let dim = group.bounds.dim;
|
||||||
let rel = val / dim.z;
|
let rel = val / parseFloat(oval);
|
||||||
if (axgrp.Z) {
|
if (axgrp.Z) {
|
||||||
group.scale(axgrp.X ? rel : 1, axgrp.Y ? rel : 1, rel);
|
group.scale(axgrp.X ? rel : 1, axgrp.Y ? rel : 1, rel);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue