improve trace/line selection precision on zoom
This commit is contained in:
parent
52b74f3daf
commit
6b85e44b67
2 changed files with 9 additions and 4 deletions
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue