From 6b85e44b67b10794fe6c536935bac8116d2ba1ab Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Wed, 28 Dec 2022 11:00:20 -0500 Subject: [PATCH] improve trace/line selection precision on zoom --- src/kiri-mode/cam/client.js | 8 ++++---- src/moto/space.js | 5 +++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/kiri-mode/cam/client.js b/src/kiri-mode/cam/client.js index 26c1a529..a8326a49 100644 --- a/src/kiri-mode/cam/client.js +++ b/src/kiri-mode/cam/client.js @@ -986,7 +986,7 @@ CAM.init = function(kiri, api) { color.r = colorSave.r; color.g = colorSave.g; color.b = colorSave.b; - lastTrace.position.z -= 0.05; + lastTrace.position.z -= 0.01; } if (data.type === 'platform') { lastTrace = null; @@ -996,7 +996,7 @@ CAM.init = function(kiri, api) { return; } lastTrace = data.int.object; - lastTrace.position.z += 0.05; + lastTrace.position.z += 0.01; if (lastTrace.selected) { let event = data.event; let target = event.target; @@ -1043,13 +1043,13 @@ CAM.init = function(kiri, api) { }; } if (obj.selected) { - obj.position.z += 0.05; + obj.position.z += 0.01; color.r = colorSave.r = 0.9; color.g = colorSave.g = 0; color.b = colorSave.b = 0.1; if (!skip) wlist.push(poly._trace); } else { - obj.position.z -= 0.05; + obj.position.z -= 0.01; color.r = colorSave.r = 0xaa/255; color.g = colorSave.g = 0xaa/255; color.b = colorSave.b = 0x55/255; diff --git a/src/moto/space.js b/src/moto/space.js index d370bd17..dafc3679 100644 --- a/src/moto/space.js +++ b/src/moto/space.js @@ -1368,6 +1368,11 @@ gapp.register("moto.space", [], (root, exports) => { updateLastAction(); updateFocus(); }, (val) => { + if (camera && viewControl) { + // increase intersect line precision on zoom + const dist = camera.position.distanceTo(viewControl.target); + raycaster.params.Line.threshold = Math.min(1, dist / 100); + } updateLastAction(); if (slider) slider(val); });