add delete/backspace to remove model. front view. no auto-select on add
This commit is contained in:
parent
d73cf48d90
commit
b4e9a8a87a
3 changed files with 24 additions and 7 deletions
|
|
@ -24,7 +24,7 @@ function init() {
|
|||
});
|
||||
space.init($('container'), delta => { }, ortho);
|
||||
platform.onClick(click => {
|
||||
api.selection.clear();
|
||||
// api.selection.clear();
|
||||
});
|
||||
platform.onMove(delta => { });
|
||||
platform.set({
|
||||
|
|
@ -102,6 +102,9 @@ broker.subscribe('space_init', data => {
|
|||
case 'KeyH':
|
||||
space.view.home();
|
||||
break;
|
||||
case 'KeyF':
|
||||
space.view.front();
|
||||
break;
|
||||
case 'KeyT':
|
||||
space.view.top();
|
||||
break;
|
||||
|
|
@ -113,6 +116,13 @@ broker.subscribe('space_init', data => {
|
|||
'keydown', evt => {
|
||||
let rv = Math.PI / 16;
|
||||
switch (evt.code) {
|
||||
case 'Backspace':
|
||||
case 'Delete':
|
||||
for (let s of api.selection.list()) {
|
||||
s.showBounds(false);
|
||||
s.remove();
|
||||
}
|
||||
break;
|
||||
case 'ArrowUp':
|
||||
api.selection.rotate(-rv,0,0).floor();
|
||||
break;
|
||||
|
|
@ -144,11 +154,11 @@ broker.subscribe('space_init', data => {
|
|||
let q = new THREE.Quaternion();
|
||||
// find intersecting point, look "up" on Z and rotate to face that
|
||||
q.setFromUnitVectors(int.face.normal, new THREE.Vector3(0,0,-1));
|
||||
// group.qrotate(q);
|
||||
let e = new THREE.Euler().setFromQuaternion(q);
|
||||
let n = int.face.normal;
|
||||
console.log({n,q,e});
|
||||
group.rotation(e.x, e.y, e.z);
|
||||
group.qrotate(q);
|
||||
// let e = new THREE.Euler().setFromQuaternion(q);
|
||||
// let n = int.face.normal;
|
||||
// console.log({n,q,e});
|
||||
// group.rotation(e.x, e.y, e.z);
|
||||
group.floor();
|
||||
} else {
|
||||
api.selection.toggle(model.group);
|
||||
|
|
|
|||
|
|
@ -183,7 +183,6 @@ let group = {
|
|||
groups.addOnce(group);
|
||||
space.world.add(group.group);
|
||||
space.update();
|
||||
selection.set([group]);
|
||||
return group;
|
||||
},
|
||||
|
||||
|
|
@ -234,6 +233,7 @@ let api = mesh.api = {
|
|||
},
|
||||
|
||||
objects: () => {
|
||||
// return models, not groups
|
||||
return group.list().map(o => o.models).flat().map(o => o.object());
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -42,6 +42,13 @@ mesh.group = class MeshGroup extends mesh.object {
|
|||
|
||||
// @param model {MeshModel}
|
||||
remove(model) {
|
||||
// remove all models
|
||||
if (arguments.length === 0) {
|
||||
for (let m of this.models.slice()) {
|
||||
this.remove(m);
|
||||
}
|
||||
return;
|
||||
}
|
||||
model.group = undefined;
|
||||
this.models.remove(model);
|
||||
this.group.remove(model.mesh);
|
||||
|
|
|
|||
Loading…
Reference in a new issue