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); }