From c7fed8da3bfcd300bab5c799f846247d095f036a Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Fri, 26 Jul 2024 00:35:36 -0400 Subject: [PATCH] add sketch and sketch item centering --- src/main/mesh.js | 2 +- src/mesh/api.js | 2 +- src/mesh/sketch.js | 26 ++++++++++++++++++++++++-- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/main/mesh.js b/src/main/mesh.js index 8854f952..a88f96e8 100644 --- a/src/main/mesh.js +++ b/src/main/mesh.js @@ -223,7 +223,7 @@ function space_init(data) { case 'KeyC': return selection.centerXY().focus(); case 'KeyF': - return selection.floor().focus(); + return shiftKey ? selection.focus() : selection.floor().focus(); case 'KeyM': return shiftKey ? api.tool.merge() : api.tool.mirror(); case 'KeyU': diff --git a/src/mesh/api.js b/src/mesh/api.js index c6340149..0117e6fe 100644 --- a/src/mesh/api.js +++ b/src/mesh/api.js @@ -256,7 +256,7 @@ const selection = { }, centerXY() { - for (let s of selection.groups()) { + for (let s of [...selection.groups(), ...selection.sketches()]) { s.centerXY(...arguments); } return selection; diff --git a/src/mesh/sketch.js b/src/mesh/sketch.js index 3f07f4d6..01fb654b 100644 --- a/src/mesh/sketch.js +++ b/src/mesh/sketch.js @@ -168,6 +168,15 @@ mesh.sketch = class MeshSketch extends mesh.object { broker.publish('sketch_selections'); } return sel.length; + }, + + centerXY() { + let sel = sketch.items.filter(i => i.selected); + for (let s of sel) { + s.center.x = 0; + s.center.y = 0; + } + return sel.length; } } } @@ -311,7 +320,15 @@ mesh.sketch = class MeshSketch extends mesh.object { this.center = {x, y, z}; this.update(); } -} + } + + centerXY() { + if (!this.selection.centerXY()) { + this.center.x = 0; + this.center.y = 0; + } + this.render(); + } drag(opt = {}) { let { items } = this; @@ -369,7 +386,6 @@ mesh.sketch = class MeshSketch extends mesh.object { } extrude(opt = {}) { - console.log({ opt }); let { selection, height, chamfer, chamfer_top, chamfer_bottom } = opt; let models = []; let items = this.group.children @@ -421,6 +437,12 @@ class SketchItem { return this.poly.extrude(z, opt); } + centerXY() { + let { center } = this.item; + center.x = 0; + center.y = 0; + } + update() { let bump = 0.0025; let { item, sketch, order } = this;