properly enable/disable hover intersects on feature update

This commit is contained in:
Stewart Allen 2022-02-24 23:29:53 -05:00
commit cc5aeba5fb
4 changed files with 26 additions and 6 deletions

1
app.js
View file

@ -690,6 +690,7 @@ function getCachedFile(file, fn) {
function minify(path) { function minify(path) {
let code = fs.readFileSync(path); let code = fs.readFileSync(path);
if (path.indexOf("ext/three.js") > 0) { if (path.indexOf("ext/three.js") > 0) {
// console.log({skip_min: path});
return code; return code;
} }
let mini = uglify.minify(code.toString(), { let mini = uglify.minify(code.toString(), {

View file

@ -2,6 +2,7 @@
"use strict"; "use strict";
// dep: moto.broker
// dep: data.local // dep: data.local
// dep: kiri.utils // dep: kiri.utils
// dep: kiri.consts // dep: kiri.consts
@ -12,6 +13,8 @@ const { consts, utils } = kiri;
const { areEqual, parseOpt, encodeOpt, ajax, o2js, js2o } = utils; const { areEqual, parseOpt, encodeOpt, ajax, o2js, js2o } = utils;
const { LISTS } = consts; const { LISTS } = consts;
let isHover = false;
const feature = { const feature = {
seed: true, // seed profiles on first use seed: true, // seed profiles on first use
meta: true, // show selected widget metadata meta: true, // show selected widget metadata
@ -21,14 +24,21 @@ const feature = {
device_filter: undefined, // function to limit devices shown device_filter: undefined, // function to limit devices shown
drop_group: undefined, // optional array to group multi drop drop_group: undefined, // optional array to group multi drop
drop_layout: true, // layout on new drop drop_layout: true, // layout on new drop
hover: false, // when true fires mouse hover events
hoverAdds: false, // when true only searches widget additions hoverAdds: false, // when true only searches widget additions
on_key: undefined, // function override default key handlers on_key: undefined, // function override default key handlers
on_load: undefined, // function override file drop loads on_load: undefined, // function override file drop loads
on_add_stl: undefined, // legacy override stl drop loads on_add_stl: undefined, // legacy override stl drop loads
work_alerts: true, // allow disabling work progress alerts work_alerts: true, // allow disabling work progress alerts
modes: [ "fdm", "sla", "cam", "laser" ], // enable device modes modes: [ "fdm", "sla", "cam", "laser" ], // enable device modes
pmode: consts.PMODES.SPEED // preview modes pmode: consts.PMODES.SPEED, // preview modes
// hover: false, // when true fires mouse hover events
get hover() {
return isHover;
},
set hover(b) {
isHover = b;
moto.broker.publish("feature.hover", b);
}
}; };
const devel = { const devel = {

View file

@ -10,6 +10,7 @@
// dep: kiri.consts // dep: kiri.consts
// dep: kiri.platform // dep: kiri.platform
// dep: kiri.selection // dep: kiri.selection
// use: kiri.tools
// use: kiri.pack // use: kiri.pack
gapp.register("kiri.init", [], (root, exports) => { gapp.register("kiri.init", [], (root, exports) => {
@ -2359,15 +2360,20 @@ gapp.register("kiri.init", [], (root, exports) => {
api.platform.update_size(); api.platform.update_size();
space.mouse.onHover((int, event, ints) => { function mouseOnHover(int, event, ints) {
if (!api.feature.hover) return; if (!api.feature.hover) return;
if (!int) return api.feature.hovers || api.widgets.meshes(); if (!int) return api.feature.hovers || api.widgets.meshes();
api.event.emit('mouse.hover', {int, ints, event, point: int.point, type: 'widget'}); api.event.emit('mouse.hover', {int, ints, event, point: int.point, type: 'widget'});
}); }
space.platform.onHover((int, event) => { function platformOnHover(int, event) {
if (!api.feature.hover) return; if (!api.feature.hover) return;
if (int) api.event.emit('mouse.hover', {point: int, event, type: 'platform'}); if (int) api.event.emit('mouse.hover', {point: int, event, type: 'platform'});
}
api.event.on("feature.hover", enable => {
space.mouse.onHover(enable ? mouseOnHover : undefined);
space.platform.onHover(enable ? platformOnHover : undefined);
}); });
// block standard browser context menu // block standard browser context menu

View file

@ -785,7 +785,10 @@ gapp.register("moto.space", [], (root, exports) => {
} }
function intersect(objects, recurse) { function intersect(objects, recurse) {
return raycaster.intersectObjects(objects, recurse); // console.log(({int: objects}));
let ints = raycaster.intersectObjects(objects, recurse);
// console.trace({ints});
return ints;
} }
/** ****************************************************************** /** ******************************************************************