From 9d991b0a97fcd6b81901e68c5d8b707f10ddb6e5 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Thu, 25 Jul 2024 00:30:54 -0400 Subject: [PATCH] allow sketch items to be up-click targeted --- src/main/mesh.js | 12 +++++++++++- src/mesh/sketch.js | 1 + src/moto/space.js | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/mesh.js b/src/main/mesh.js index b47f3e56..ddd9998b 100644 --- a/src/main/mesh.js +++ b/src/main/mesh.js @@ -336,7 +336,12 @@ function space_init(data) { return event && event.shiftKey ? api.objects() : undefined; }); - space.mouse.upSelect((int, event) => { + space.mouse.upSelect((int, event, ints) => { + if (ints?.length > 1) { + // ensure sketch items are returned before sketch plane / handles + let polys = ints.filter(i => i.object.poly); + int = polys.length ? polys[0] : int; + } if (event && event.target.nodeName === "CANVAS") { const model = int?.object?.model; const sketch = int?.object?.sketch; @@ -397,6 +402,11 @@ function space_init(data) { } } } else { + let sketches = api.selection.sketches(true); + if (sketches.length) { + // when sketch selected, return sketch items, too + return sketches[0].object.children; + }; return api.objects().filter(o => o.visible); } }); diff --git a/src/mesh/sketch.js b/src/mesh/sketch.js index 0f0becfd..5a59e682 100644 --- a/src/mesh/sketch.js +++ b/src/mesh/sketch.js @@ -235,6 +235,7 @@ mesh.sketch = class MeshSketch extends mesh.object { let geo = new BufferGeometry(); geo.setAttribute('position', new BufferAttribute(vrt, 3)); let meh = new Mesh(geo, mesh.material.normal); + meh.renderOrder = -1; meh.poly = poly; group.add(meh); }); diff --git a/src/moto/space.js b/src/moto/space.js index 2a81ad34..0c9a48d4 100644 --- a/src/moto/space.js +++ b/src/moto/space.js @@ -949,7 +949,7 @@ gapp.register("moto.space", [], (root, exports) => { } } if (int.length > 0) { - mouseUpSelect(int[0], event); + mouseUpSelect(int[0], event, int); refresh = true; } else { mouseUpSelect(null, event);