From 49f17299469e415e651e8aa1b151378e242ee810 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Tue, 11 Jan 2022 22:18:12 -0500 Subject: [PATCH] replace group inception defaults with promote to make it easier to preference --- src/main/mesh.js | 16 ++-------------- src/mesh/api.js | 2 +- src/mesh/group.js | 4 ++++ 3 files changed, 7 insertions(+), 15 deletions(-) diff --git a/src/main/mesh.js b/src/main/mesh.js index 49ff9145..fbfac8e5 100644 --- a/src/main/mesh.js +++ b/src/main/mesh.js @@ -78,7 +78,6 @@ function init() { function restore_space() { let count = 0; let space = moto.Space; - let parray = []; let mcache = {}; mesh.db.admin.get("camera") .then(saved => { @@ -105,16 +104,7 @@ function restore_space() { .filter(r => r.md) // filter cache misses .map(r => new mesh.model(r.md, r.id).applyMatrix(mcache[r.id])); mesh.api.log.emit(`restored ${models.length} model(s)`); - let group = mesh.api.group.new(models, id); - let matrix = mcache[id]; - if (matrix) { - group.applyMatrix(matrix); - } else { - group - .centerModels() - .centerXY() - .floor(); - } + mesh.api.group.new(models, id).applyMatrix(mcache[id]); } } // restore global cache only after objects are restored @@ -305,9 +295,7 @@ function load_files(files) { // add object loader function space_load(data) { mesh.api.group.new(data.flat().map(el => new mesh.model(el))) - .centerModels() - .centerXY() - .floor() + .promote() .focus(); } diff --git a/src/mesh/api.js b/src/mesh/api.js index 01449915..2870a954 100644 --- a/src/mesh/api.js +++ b/src/mesh/api.js @@ -288,7 +288,7 @@ let tool = { let group = api.group.new([new mesh.model({ file: `merged`, mesh: data - })]).centerModels(); + })]).promote(); api.selection.set([group]); api.log.emit('merge complete').unpin(); }); diff --git a/src/mesh/group.js b/src/mesh/group.js index f59a2482..396da67c 100644 --- a/src/mesh/group.js +++ b/src/mesh/group.js @@ -88,6 +88,10 @@ mesh.group = class MeshGroup extends mesh.object { return this; } + promote() { + return this.centerModels().centerXY().floor(); + } + // center objects to group bounds // dependent on first being added to world/scene centerModels() {