From d78feaceee50bfa80d960110c9d0f19052e12517 Mon Sep 17 00:00:00 2001 From: kovacsv Date: Wed, 27 Oct 2021 09:54:40 +0200 Subject: [PATCH] Remove empty nodes recursively. --- source/model/modelfinalization.js | 9 ++++++++- source/model/node.js | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/source/model/modelfinalization.js b/source/model/modelfinalization.js index a59f025..475911a 100644 --- a/source/model/modelfinalization.js +++ b/source/model/modelfinalization.js @@ -133,9 +133,16 @@ OV.FinalizeModel = function (model, getDefaultMaterial) emptyNodes.push (node); } }); - for (let node of emptyNodes) { + for (let nodeIndex = 0; nodeIndex < emptyNodes.length; nodeIndex++) { + let node = emptyNodes[nodeIndex]; let parentNode = node.GetParent (); + if (parentNode === null) { + continue; + } parentNode.RemoveChildNode (node); + if (parentNode.IsEmpty ()) { + emptyNodes.push (parentNode); + } } }; diff --git a/source/model/node.js b/source/model/node.js index fec655e..07ba81e 100644 --- a/source/model/node.js +++ b/source/model/node.js @@ -92,6 +92,7 @@ OV.Node = class RemoveChildNode (node) { + node.parent = null; let index = this.childNodes.indexOf (node); this.childNodes.splice (index, 1); }