add util.defer() and add slight opacity in wireframe
This commit is contained in:
parent
cd5688972a
commit
5541e680ce
3 changed files with 32 additions and 9 deletions
|
|
@ -57,7 +57,7 @@ let selection = {
|
|||
// @param group {MeshObject[]}
|
||||
set(objects) {
|
||||
selected = objects;
|
||||
selection.update();
|
||||
util.defer(selection.update);
|
||||
},
|
||||
|
||||
// @param group {MeshObject}
|
||||
|
|
@ -77,13 +77,13 @@ let selection = {
|
|||
}
|
||||
}
|
||||
selected.addOnce(object);
|
||||
selection.update();
|
||||
util.defer(selection.update);
|
||||
},
|
||||
|
||||
// @param group {MeshObject}
|
||||
remove(object) {
|
||||
selected.remove(object);
|
||||
selection.update();
|
||||
util.defer(selection.update);
|
||||
},
|
||||
|
||||
// @param group {MeshObject}
|
||||
|
|
@ -96,8 +96,9 @@ let selection = {
|
|||
},
|
||||
|
||||
clear() {
|
||||
selected = [];
|
||||
selection.update();
|
||||
for (let s of selected) {
|
||||
selection.remove(s);
|
||||
}
|
||||
},
|
||||
|
||||
update() {
|
||||
|
|
@ -251,6 +252,8 @@ let api = mesh.api = {
|
|||
}
|
||||
};
|
||||
|
||||
let deferFn = [];
|
||||
|
||||
let util = mesh.util = {
|
||||
|
||||
uuid(segs = 1) {
|
||||
|
|
@ -261,6 +264,24 @@ let util = mesh.util = {
|
|||
return uid.join('-');
|
||||
},
|
||||
|
||||
// merge repeated function calls like updates
|
||||
// that importantly take no arguments
|
||||
defer(fn, time = 50) {
|
||||
for (let rec of deferFn) {
|
||||
if (rec.fn === fn) {
|
||||
clearTimeout(rec.timer);
|
||||
deferFn.remove(rec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
let rec = { fn };
|
||||
rec.timer = setTimeout(() => {
|
||||
deferFn.remove(rec);
|
||||
fn();
|
||||
});
|
||||
deferFn.push(rec);
|
||||
},
|
||||
|
||||
// @param object {THREE.Object3D | THREE.Object3D[] | MeshObject | MeshObject[]}
|
||||
// @returns bounds modified for moto.Space
|
||||
bounds(object) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue