show poly size for future scaling
This commit is contained in:
parent
568b048b67
commit
0592adf248
2 changed files with 62 additions and 59 deletions
|
|
@ -793,12 +793,19 @@ function ui_build() {
|
||||||
[ "center", "scale" ], und, 'sketch'
|
[ "center", "scale" ], und, 'sketch'
|
||||||
));
|
));
|
||||||
let sel_item;
|
let sel_item;
|
||||||
let si_vars = sel.slice(0,1).map(item => item.sketch_item.item).map(item => {
|
let sel_size;
|
||||||
|
let sel_sobj;
|
||||||
|
let si_vars = sel.length > 1 ? [] : sel.slice(0,1).map(sel => {
|
||||||
|
let { sketch_item } = sel;
|
||||||
|
let { item } = sketch_item;
|
||||||
sel_item = item;
|
sel_item = item;
|
||||||
if (item.type === 'rectangle') {
|
sel_sobj = sketch_item;
|
||||||
return sblock('rectangle', '', grid2(
|
if (item.type === 'polygon') {
|
||||||
|
let { bounds } = sketch_item.poly;
|
||||||
|
sel_size = { x: bounds.width(), y: bounds.height() };
|
||||||
|
return sblock('polygon', '', grid2(
|
||||||
util.extract(item.center, map),
|
util.extract(item.center, map),
|
||||||
[ item.width.toFixed(2), item.height.toFixed(2) ],
|
[ sel_size.x.toFixed(2), sel_size.y.toFixed(2) ],
|
||||||
[ "center", "size" ], und, 'item'
|
[ "center", "size" ], und, 'item'
|
||||||
));
|
));
|
||||||
} else if (item.type === 'circle') {
|
} else if (item.type === 'circle') {
|
||||||
|
|
@ -813,11 +820,6 @@ function ui_build() {
|
||||||
[ "center", "size" ], und, 'item'
|
[ "center", "size" ], und, 'item'
|
||||||
)),
|
)),
|
||||||
];
|
];
|
||||||
} else if (item.type === 'polygon') {
|
|
||||||
return sblock('poly', '', grid1(
|
|
||||||
util.extract(item.center, map),
|
|
||||||
und, und, 'item', 'center'
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
let bound = h.bind(selectlist, [
|
let bound = h.bind(selectlist, [
|
||||||
|
|
@ -841,25 +843,26 @@ function ui_build() {
|
||||||
if (sel_item)
|
if (sel_item)
|
||||||
for (let axis of [ 'x', 'y' ]) {
|
for (let axis of [ 'x', 'y' ]) {
|
||||||
let el = bound[`item_val_${axis.toUpperCase()}_center`];
|
let el = bound[`item_val_${axis.toUpperCase()}_center`];
|
||||||
|
// all items have centers
|
||||||
if (!el) continue;
|
if (!el) continue;
|
||||||
el.classList.add('editable');
|
el.classList.add('editable');
|
||||||
el.onclick = field_edit(`${axis} center`, (nval, oval) => {
|
el.onclick = field_edit(`${axis} center`, (nval, oval) => {
|
||||||
sel_item.center[axis] = nval;
|
sel_item.center[axis] = nval;
|
||||||
sketch.render();
|
sketch.render();
|
||||||
}, { sketch: true });
|
}, { sketch: true });
|
||||||
|
// polygon scaling, circle radius
|
||||||
let el2 = bound[`item_val_${axis.toUpperCase()}_size`];
|
let el2 = bound[`item_val_${axis.toUpperCase()}_size`];
|
||||||
if (!el2) continue;
|
if (!el2) continue;
|
||||||
el2.classList.add('editable');
|
sel_item.type !== 'polygon' && el2.classList.add('editable');
|
||||||
el2.onclick = field_edit(`${axis} size`, (nval, oval) => {
|
el2.onclick = field_edit(`${axis} size`, (nval, oval) => {
|
||||||
if (sel_item.type === 'rectangle') {
|
if (sel_item.type === 'polygon') {
|
||||||
sel_item[{ x:'width', y:'height' }[axis]] = nval;
|
// todo
|
||||||
} else if (sel_item.type === 'circle') {
|
} else if (sel_item.type === 'circle') {
|
||||||
sel_item.radius = nval / 2;
|
sel_item.radius = nval / 2;
|
||||||
}
|
}
|
||||||
sketch.render();
|
sketch.render();
|
||||||
}, { sketch: true });
|
}, { sketch: true });
|
||||||
|
// circle points / rotation
|
||||||
let lab = { x: 'points', y: 'rotation' }[axis];
|
let lab = { x: 'points', y: 'rotation' }[axis];
|
||||||
let el3 = bound[`circle_val_${lab}_other`];
|
let el3 = bound[`circle_val_${lab}_other`];
|
||||||
if (!el3) continue;
|
if (!el3) continue;
|
||||||
|
|
|
||||||
|
|
@ -196,6 +196,51 @@ mesh.sketch = class MeshSketch extends mesh.object {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get add() {
|
||||||
|
let sketch = this;
|
||||||
|
return {
|
||||||
|
circle(opt = {}) {
|
||||||
|
return sketch.add.item({
|
||||||
|
type: "circle",
|
||||||
|
selected: true,
|
||||||
|
...Object.assign({}, { center: {x:0, y:0, z:0}, radius:5 }, opt)
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
rectangle(opt = {}) {
|
||||||
|
return sketch.add.polygon({
|
||||||
|
...opt,
|
||||||
|
poly: newPolygon().centerRectangle(
|
||||||
|
opt.center || {x:0, y:0, z:0},
|
||||||
|
opt.height || 15,
|
||||||
|
opt.width || 10
|
||||||
|
)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
polygon(opt = {}) {
|
||||||
|
let poly = opt.poly;
|
||||||
|
delete opt.poly;
|
||||||
|
let { width, miter } = poly._svg || {};
|
||||||
|
return sketch.add.item({
|
||||||
|
type: "polygon",
|
||||||
|
width,
|
||||||
|
miter,
|
||||||
|
selected: true,
|
||||||
|
...Object.assign({}, { center: { x:0, y:0, z:0 } }, opt),
|
||||||
|
...poly.toObject()
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
item(item, opt = {}) {
|
||||||
|
item.group = item.group || mesh.util.uuid();
|
||||||
|
sketch.items.push(item);
|
||||||
|
sketch.render_defer();
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
get boolean() {
|
get boolean() {
|
||||||
let sketch = this;
|
let sketch = this;
|
||||||
return {
|
return {
|
||||||
|
|
@ -456,51 +501,6 @@ mesh.sketch = class MeshSketch extends mesh.object {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
get add() {
|
|
||||||
let sketch = this;
|
|
||||||
return {
|
|
||||||
circle(opt = {}) {
|
|
||||||
return sketch.add.item({
|
|
||||||
type: "circle",
|
|
||||||
selected: true,
|
|
||||||
...Object.assign({}, { center: {x:0, y:0, z:0}, radius:5 }, opt)
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
rectangle(opt = {}) {
|
|
||||||
return sketch.add.polygon({
|
|
||||||
...opt,
|
|
||||||
poly: newPolygon().centerRectangle(
|
|
||||||
opt.center || {x:0, y:0, z:0},
|
|
||||||
opt.height || 15,
|
|
||||||
opt.width || 10
|
|
||||||
)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
polygon(opt = {}) {
|
|
||||||
let poly = opt.poly;
|
|
||||||
delete opt.poly;
|
|
||||||
let { width, miter } = poly._svg || {};
|
|
||||||
return sketch.add.item({
|
|
||||||
type: "polygon",
|
|
||||||
width,
|
|
||||||
miter,
|
|
||||||
selected: true,
|
|
||||||
...Object.assign({}, { center: {x:0, y:0, z:0} }, opt),
|
|
||||||
...poly.toObject()
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
item(item, opt = {}) {
|
|
||||||
item.group = item.group || mesh.util.uuid();
|
|
||||||
sketch.items.push(item);
|
|
||||||
sketch.render_defer();
|
|
||||||
return item;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// render items unto the group object
|
// render items unto the group object
|
||||||
render() {
|
render() {
|
||||||
let { group } = this;
|
let { group } = this;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue