improve trace/line selection precision on zoom

This commit is contained in:
Stewart Allen 2022-12-28 11:00:20 -05:00
commit 6b85e44b67
2 changed files with 9 additions and 4 deletions

View file

@ -986,7 +986,7 @@ CAM.init = function(kiri, api) {
color.r = colorSave.r; color.r = colorSave.r;
color.g = colorSave.g; color.g = colorSave.g;
color.b = colorSave.b; color.b = colorSave.b;
lastTrace.position.z -= 0.05; lastTrace.position.z -= 0.01;
} }
if (data.type === 'platform') { if (data.type === 'platform') {
lastTrace = null; lastTrace = null;
@ -996,7 +996,7 @@ CAM.init = function(kiri, api) {
return; return;
} }
lastTrace = data.int.object; lastTrace = data.int.object;
lastTrace.position.z += 0.05; lastTrace.position.z += 0.01;
if (lastTrace.selected) { if (lastTrace.selected) {
let event = data.event; let event = data.event;
let target = event.target; let target = event.target;
@ -1043,13 +1043,13 @@ CAM.init = function(kiri, api) {
}; };
} }
if (obj.selected) { if (obj.selected) {
obj.position.z += 0.05; obj.position.z += 0.01;
color.r = colorSave.r = 0.9; color.r = colorSave.r = 0.9;
color.g = colorSave.g = 0; color.g = colorSave.g = 0;
color.b = colorSave.b = 0.1; color.b = colorSave.b = 0.1;
if (!skip) wlist.push(poly._trace); if (!skip) wlist.push(poly._trace);
} else { } else {
obj.position.z -= 0.05; obj.position.z -= 0.01;
color.r = colorSave.r = 0xaa/255; color.r = colorSave.r = 0xaa/255;
color.g = colorSave.g = 0xaa/255; color.g = colorSave.g = 0xaa/255;
color.b = colorSave.b = 0x55/255; color.b = colorSave.b = 0x55/255;

View file

@ -1368,6 +1368,11 @@ gapp.register("moto.space", [], (root, exports) => {
updateLastAction(); updateLastAction();
updateFocus(); updateFocus();
}, (val) => { }, (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(); updateLastAction();
if (slider) slider(val); if (slider) slider(val);
}); });