@xeokit/xeokit-sdk 2.4.0-alpha-9 → 2.4.0-alpha-10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -119662,7 +119662,7 @@ class TreeViewPlugin extends Plugin {
119662
119662
  const objectId = metaObject.id;
119663
119663
  if (metaObjectType === "IfcBuilding") {
119664
119664
  buildingNode = {
119665
- nodeId: `${this._id}-objectId`,
119665
+ nodeId: `${this._id}-${objectId}`,
119666
119666
  objectId: objectId,
119667
119667
  title: this._rootName || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
119668
119668
  type: metaObjectType,
@@ -119681,7 +119681,7 @@ class TreeViewPlugin extends Plugin {
119681
119681
  return;
119682
119682
  }
119683
119683
  storeyNode = {
119684
- nodeId: `${this._id}-objectId`,
119684
+ nodeId: `${this._id}-${objectId}`,
119685
119685
  objectId: objectId,
119686
119686
  title: (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
119687
119687
  type: metaObjectType,
@@ -119720,7 +119720,7 @@ class TreeViewPlugin extends Plugin {
119720
119720
  typeNodes[metaObjectType] = typeNode;
119721
119721
  }
119722
119722
  const node = {
119723
- nodeId: `${this._id}-objectId`,
119723
+ nodeId: `${this._id}-${objectId}`,
119724
119724
  objectId: objectId,
119725
119725
  title: (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
119726
119726
  type: metaObjectType,
@@ -119761,7 +119761,7 @@ class TreeViewPlugin extends Plugin {
119761
119761
  const objectId = metaObject.id;
119762
119762
  if (!metaObject.parent) {
119763
119763
  rootNode = {
119764
- nodeId: `${this._id}-objectId`,
119764
+ nodeId: `${this._id}-${objectId}`,
119765
119765
  objectId: objectId,
119766
119766
  title: this._rootName || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
119767
119767
  type: metaObjectType,
@@ -119799,7 +119799,7 @@ class TreeViewPlugin extends Plugin {
119799
119799
  typeNodes[metaObjectType] = typeNode;
119800
119800
  }
119801
119801
  const node = {
119802
- nodeId: `${this._id}-objectId`,
119802
+ nodeId: `${this._id}-${objectId}`,
119803
119803
  objectId: objectId,
119804
119804
  title: (metaObjectName && metaObjectName !== "" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
119805
119805
  type: metaObjectType,
@@ -119839,7 +119839,7 @@ class TreeViewPlugin extends Plugin {
119839
119839
  const children = metaObject.children;
119840
119840
  const objectId = metaObject.id;
119841
119841
  const node = {
119842
- nodeId: `${this._id}-objectId`,
119842
+ nodeId: `${this._id}-${objectId}`,
119843
119843
  objectId: objectId,
119844
119844
  title: (!parent) ? (this._rootName || metaObjectName) : (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
119845
119845
  type: metaObjectType,
@@ -119658,7 +119658,7 @@ class TreeViewPlugin extends Plugin {
119658
119658
  const objectId = metaObject.id;
119659
119659
  if (metaObjectType === "IfcBuilding") {
119660
119660
  buildingNode = {
119661
- nodeId: `${this._id}-objectId`,
119661
+ nodeId: `${this._id}-${objectId}`,
119662
119662
  objectId: objectId,
119663
119663
  title: this._rootName || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
119664
119664
  type: metaObjectType,
@@ -119677,7 +119677,7 @@ class TreeViewPlugin extends Plugin {
119677
119677
  return;
119678
119678
  }
119679
119679
  storeyNode = {
119680
- nodeId: `${this._id}-objectId`,
119680
+ nodeId: `${this._id}-${objectId}`,
119681
119681
  objectId: objectId,
119682
119682
  title: (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
119683
119683
  type: metaObjectType,
@@ -119716,7 +119716,7 @@ class TreeViewPlugin extends Plugin {
119716
119716
  typeNodes[metaObjectType] = typeNode;
119717
119717
  }
119718
119718
  const node = {
119719
- nodeId: `${this._id}-objectId`,
119719
+ nodeId: `${this._id}-${objectId}`,
119720
119720
  objectId: objectId,
119721
119721
  title: (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
119722
119722
  type: metaObjectType,
@@ -119757,7 +119757,7 @@ class TreeViewPlugin extends Plugin {
119757
119757
  const objectId = metaObject.id;
119758
119758
  if (!metaObject.parent) {
119759
119759
  rootNode = {
119760
- nodeId: `${this._id}-objectId`,
119760
+ nodeId: `${this._id}-${objectId}`,
119761
119761
  objectId: objectId,
119762
119762
  title: this._rootName || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
119763
119763
  type: metaObjectType,
@@ -119795,7 +119795,7 @@ class TreeViewPlugin extends Plugin {
119795
119795
  typeNodes[metaObjectType] = typeNode;
119796
119796
  }
119797
119797
  const node = {
119798
- nodeId: `${this._id}-objectId`,
119798
+ nodeId: `${this._id}-${objectId}`,
119799
119799
  objectId: objectId,
119800
119800
  title: (metaObjectName && metaObjectName !== "" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
119801
119801
  type: metaObjectType,
@@ -119835,7 +119835,7 @@ class TreeViewPlugin extends Plugin {
119835
119835
  const children = metaObject.children;
119836
119836
  const objectId = metaObject.id;
119837
119837
  const node = {
119838
- nodeId: `${this._id}-objectId`,
119838
+ nodeId: `${this._id}-${objectId}`,
119839
119839
  objectId: objectId,
119840
119840
  title: (!parent) ? (this._rootName || metaObjectName) : (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
119841
119841
  type: metaObjectType,
@@ -26371,7 +26371,7 @@ if(visible){parent.numVisibleEntities+=numUpdated;}else{parent.numVisibleEntitie
26371
26371
  // // errors.push("Can't build storeys hierarchy: no IfcBuildingStoreys found");
26372
26372
  // }
26373
26373
  // }
26374
- return true;}},{key:"_createEnabledNodes",value:function _createEnabledNodes(){if(this._pruneEmptyNodes){this._findEmptyNodes();}switch(this._hierarchy){case"storeys":this._createStoreysNodes();if(this._rootNodes.length===0){this.error("Failed to build storeys hierarchy");}break;case"types":this._createTypesNodes();break;case"containment":default:this._createContainmentNodes();}if(this._sortNodes){this._doSortNodes();}this._synchNodesToEntities();this._createTrees();this.expandToDepth(this._autoExpandDepth);}},{key:"_createDisabledNodes",value:function _createDisabledNodes(){var ul=document.createElement('ul');this._rootElement=ul;this._containerElement.appendChild(ul);var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var _i581=0,len=rootMetaObjects.length;_i581<len;_i581++){var rootMetaObject=rootMetaObjects[_i581];var metaObjectType=rootMetaObject.type;var metaObjectName=rootMetaObject.name;var rootName=metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType;var li=document.createElement('li');ul.appendChild(li);var switchElement=document.createElement('a');switchElement.href='#';switchElement.textContent='!';switchElement.classList.add('warn');switchElement.classList.add('warning');li.appendChild(switchElement);var span=document.createElement('span');span.textContent=rootName;li.appendChild(span);}}},{key:"_findEmptyNodes",value:function _findEmptyNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var _i582=0,len=rootMetaObjects.length;_i582<len;_i582++){this._findEmptyNodes2(rootMetaObjects[_i582]);}}},{key:"_findEmptyNodes2",value:function _findEmptyNodes2(metaObject){var countEntities=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;var viewer=this.viewer;var scene=viewer.scene;var children=metaObject.children;var objectId=metaObject.id;var entity=scene.objects[objectId];metaObject._countEntities=0;if(entity){metaObject._countEntities++;}if(children){for(var _i583=0,len=children.length;_i583<len;_i583++){var childMetaObject=children[_i583];childMetaObject._countEntities=this._findEmptyNodes2(childMetaObject);metaObject._countEntities+=childMetaObject._countEntities;}}return metaObject._countEntities;}},{key:"_createStoreysNodes",value:function _createStoreysNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createStoreysNodes2(rootMetaObjects[id],null,null,null);}}},{key:"_createStoreysNodes2",value:function _createStoreysNodes2(metaObject,buildingNode,storeyNode,typeNodes){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name;var children=metaObject.children;var objectId=metaObject.id;if(metaObjectType==="IfcBuilding"){buildingNode={nodeId:"".concat(this._id,"-objectId"),objectId:objectId,title:this._rootName||(metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType),type:metaObjectType,parent:null,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};this._rootNodes.push(buildingNode);this._objectNodes[buildingNode.objectId]=buildingNode;}else if(metaObjectType==="IfcBuildingStorey"){if(!buildingNode){this.error("Failed to build storeys hierarchy for model '"+this.metaModel.id+"' - model does not have an IfcBuilding object, or is not an IFC model");return;}storeyNode={nodeId:"".concat(this._id,"-objectId"),objectId:objectId,title:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:buildingNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};buildingNode.children.push(storeyNode);this._objectNodes[storeyNode.objectId]=storeyNode;typeNodes={};}else{if(storeyNode){var objects=this._viewer.scene.objects;var object=objects[objectId];if(object){typeNodes=typeNodes||{};var typeNode=typeNodes[metaObjectType];if(!typeNode){typeNode={nodeId:"".concat(this._id,"-").concat(storeyNode.objectId,"-").concat(metaObjectType),objectId:"".concat(storeyNode.objectId,"-").concat(metaObjectType),title:metaObjectType,type:metaObjectType,parent:storeyNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};storeyNode.children.push(typeNode);this._objectNodes[typeNode.objectId]=typeNode;typeNodes[metaObjectType]=typeNode;}var _node16={nodeId:"".concat(this._id,"-objectId"),objectId:objectId,title:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:typeNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};typeNode.children.push(_node16);this._objectNodes[_node16.objectId]=_node16;}}}if(children){for(var _i584=0,len=children.length;_i584<len;_i584++){var childMetaObject=children[_i584];this._createStoreysNodes2(childMetaObject,buildingNode,storeyNode,typeNodes);}}}},{key:"_createTypesNodes",value:function _createTypesNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createTypesNodes2(rootMetaObjects[id],null,null);}}},{key:"_createTypesNodes2",value:function _createTypesNodes2(metaObject,rootNode,typeNodes){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name;var children=metaObject.children;var objectId=metaObject.id;if(!metaObject.parent){rootNode={nodeId:"".concat(this._id,"-objectId"),objectId:objectId,title:this._rootName||(metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType),type:metaObjectType,parent:null,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};this._rootNodes.push(rootNode);this._objectNodes[rootNode.objectId]=rootNode;typeNodes={};}else{if(rootNode){var objects=this._viewer.scene.objects;var object=objects[objectId];if(object){var typeNode=typeNodes[metaObjectType];if(!typeNode){typeNode={nodeId:"".concat(this._id,"-").concat(rootNode.objectId,"-").concat(metaObjectType),objectId:"".concat(rootNode.objectId,"-").concat(metaObjectType),title:metaObjectType,type:metaObjectType,parent:rootNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};rootNode.children.push(typeNode);this._objectNodes[typeNode.objectId]=typeNode;typeNodes[metaObjectType]=typeNode;}var _node17={nodeId:"".concat(this._id,"-objectId"),objectId:objectId,title:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:typeNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};typeNode.children.push(_node17);this._objectNodes[_node17.objectId]=_node17;}}}if(children){for(var _i585=0,len=children.length;_i585<len;_i585++){var childMetaObject=children[_i585];this._createTypesNodes2(childMetaObject,rootNode,typeNodes);}}}},{key:"_createContainmentNodes",value:function _createContainmentNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createContainmentNodes2(rootMetaObjects[id],null);}}},{key:"_createContainmentNodes2",value:function _createContainmentNodes2(metaObject,parent){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name||metaObjectType;var children=metaObject.children;var objectId=metaObject.id;var node={nodeId:"".concat(this._id,"-objectId"),objectId:objectId,title:!parent?this._rootName||metaObjectName:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:parent,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};if(parent){parent.children.push(node);}else{this._rootNodes.push(node);}this._objectNodes[node.objectId]=node;if(children){for(var _i586=0,len=children.length;_i586<len;_i586++){var childMetaObject=children[_i586];this._createContainmentNodes2(childMetaObject,node);}}}},{key:"_doSortNodes",value:function _doSortNodes(){for(var _i587=0,len=this._rootNodes.length;_i587<len;_i587++){var rootNode=this._rootNodes[_i587];this._sortChildren(rootNode);}}},{key:"_sortChildren",value:function _sortChildren(node){var children=node.children;if(!children||children.length===0){return;}if(this._hierarchy==="storeys"&&node.type==="IfcBuilding"){// Assumes that children of an IfcBuilding will always be IfcBuildingStoreys
26374
+ return true;}},{key:"_createEnabledNodes",value:function _createEnabledNodes(){if(this._pruneEmptyNodes){this._findEmptyNodes();}switch(this._hierarchy){case"storeys":this._createStoreysNodes();if(this._rootNodes.length===0){this.error("Failed to build storeys hierarchy");}break;case"types":this._createTypesNodes();break;case"containment":default:this._createContainmentNodes();}if(this._sortNodes){this._doSortNodes();}this._synchNodesToEntities();this._createTrees();this.expandToDepth(this._autoExpandDepth);}},{key:"_createDisabledNodes",value:function _createDisabledNodes(){var ul=document.createElement('ul');this._rootElement=ul;this._containerElement.appendChild(ul);var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var _i581=0,len=rootMetaObjects.length;_i581<len;_i581++){var rootMetaObject=rootMetaObjects[_i581];var metaObjectType=rootMetaObject.type;var metaObjectName=rootMetaObject.name;var rootName=metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType;var li=document.createElement('li');ul.appendChild(li);var switchElement=document.createElement('a');switchElement.href='#';switchElement.textContent='!';switchElement.classList.add('warn');switchElement.classList.add('warning');li.appendChild(switchElement);var span=document.createElement('span');span.textContent=rootName;li.appendChild(span);}}},{key:"_findEmptyNodes",value:function _findEmptyNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var _i582=0,len=rootMetaObjects.length;_i582<len;_i582++){this._findEmptyNodes2(rootMetaObjects[_i582]);}}},{key:"_findEmptyNodes2",value:function _findEmptyNodes2(metaObject){var countEntities=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;var viewer=this.viewer;var scene=viewer.scene;var children=metaObject.children;var objectId=metaObject.id;var entity=scene.objects[objectId];metaObject._countEntities=0;if(entity){metaObject._countEntities++;}if(children){for(var _i583=0,len=children.length;_i583<len;_i583++){var childMetaObject=children[_i583];childMetaObject._countEntities=this._findEmptyNodes2(childMetaObject);metaObject._countEntities+=childMetaObject._countEntities;}}return metaObject._countEntities;}},{key:"_createStoreysNodes",value:function _createStoreysNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createStoreysNodes2(rootMetaObjects[id],null,null,null);}}},{key:"_createStoreysNodes2",value:function _createStoreysNodes2(metaObject,buildingNode,storeyNode,typeNodes){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name;var children=metaObject.children;var objectId=metaObject.id;if(metaObjectType==="IfcBuilding"){buildingNode={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:this._rootName||(metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType),type:metaObjectType,parent:null,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};this._rootNodes.push(buildingNode);this._objectNodes[buildingNode.objectId]=buildingNode;}else if(metaObjectType==="IfcBuildingStorey"){if(!buildingNode){this.error("Failed to build storeys hierarchy for model '"+this.metaModel.id+"' - model does not have an IfcBuilding object, or is not an IFC model");return;}storeyNode={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:buildingNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};buildingNode.children.push(storeyNode);this._objectNodes[storeyNode.objectId]=storeyNode;typeNodes={};}else{if(storeyNode){var objects=this._viewer.scene.objects;var object=objects[objectId];if(object){typeNodes=typeNodes||{};var typeNode=typeNodes[metaObjectType];if(!typeNode){typeNode={nodeId:"".concat(this._id,"-").concat(storeyNode.objectId,"-").concat(metaObjectType),objectId:"".concat(storeyNode.objectId,"-").concat(metaObjectType),title:metaObjectType,type:metaObjectType,parent:storeyNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};storeyNode.children.push(typeNode);this._objectNodes[typeNode.objectId]=typeNode;typeNodes[metaObjectType]=typeNode;}var _node16={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:typeNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};typeNode.children.push(_node16);this._objectNodes[_node16.objectId]=_node16;}}}if(children){for(var _i584=0,len=children.length;_i584<len;_i584++){var childMetaObject=children[_i584];this._createStoreysNodes2(childMetaObject,buildingNode,storeyNode,typeNodes);}}}},{key:"_createTypesNodes",value:function _createTypesNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createTypesNodes2(rootMetaObjects[id],null,null);}}},{key:"_createTypesNodes2",value:function _createTypesNodes2(metaObject,rootNode,typeNodes){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name;var children=metaObject.children;var objectId=metaObject.id;if(!metaObject.parent){rootNode={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:this._rootName||(metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType),type:metaObjectType,parent:null,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};this._rootNodes.push(rootNode);this._objectNodes[rootNode.objectId]=rootNode;typeNodes={};}else{if(rootNode){var objects=this._viewer.scene.objects;var object=objects[objectId];if(object){var typeNode=typeNodes[metaObjectType];if(!typeNode){typeNode={nodeId:"".concat(this._id,"-").concat(rootNode.objectId,"-").concat(metaObjectType),objectId:"".concat(rootNode.objectId,"-").concat(metaObjectType),title:metaObjectType,type:metaObjectType,parent:rootNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};rootNode.children.push(typeNode);this._objectNodes[typeNode.objectId]=typeNode;typeNodes[metaObjectType]=typeNode;}var _node17={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:typeNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};typeNode.children.push(_node17);this._objectNodes[_node17.objectId]=_node17;}}}if(children){for(var _i585=0,len=children.length;_i585<len;_i585++){var childMetaObject=children[_i585];this._createTypesNodes2(childMetaObject,rootNode,typeNodes);}}}},{key:"_createContainmentNodes",value:function _createContainmentNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createContainmentNodes2(rootMetaObjects[id],null);}}},{key:"_createContainmentNodes2",value:function _createContainmentNodes2(metaObject,parent){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name||metaObjectType;var children=metaObject.children;var objectId=metaObject.id;var node={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:!parent?this._rootName||metaObjectName:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:parent,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};if(parent){parent.children.push(node);}else{this._rootNodes.push(node);}this._objectNodes[node.objectId]=node;if(children){for(var _i586=0,len=children.length;_i586<len;_i586++){var childMetaObject=children[_i586];this._createContainmentNodes2(childMetaObject,node);}}}},{key:"_doSortNodes",value:function _doSortNodes(){for(var _i587=0,len=this._rootNodes.length;_i587<len;_i587++){var rootNode=this._rootNodes[_i587];this._sortChildren(rootNode);}}},{key:"_sortChildren",value:function _sortChildren(node){var children=node.children;if(!children||children.length===0){return;}if(this._hierarchy==="storeys"&&node.type==="IfcBuilding"){// Assumes that children of an IfcBuilding will always be IfcBuildingStoreys
26375
26375
  children.sort(this._getSpatialSortFunc());}else{children.sort(this._alphaSortFunc);}for(var _i588=0,len=children.length;_i588<len;_i588++){var _node18=children[_i588];this._sortChildren(_node18);}}},{key:"_getSpatialSortFunc",value:function _getSpatialSortFunc(){// Creates cached sort func with Viewer in scope
26376
26376
  var viewer=this.viewer;var scene=viewer.scene;var camera=scene.camera;var metaScene=viewer.metaScene;return this._spatialSortFunc||(this._spatialSortFunc=function(node1,node2){if(!node1.aabb||!node2.aabb){// Sorting on lowest point of the AABB is likely more more robust when objects could overlap storeys
26377
26377
  if(!node1.aabb){node1.aabb=scene.getAABB(metaScene.getObjectIDsInSubtree(node1.objectId));}if(!node2.aabb){node2.aabb=scene.getAABB(metaScene.getObjectIDsInSubtree(node2.objectId));}}var idx=0;if(camera.xUp){idx=0;}else if(camera.yUp){idx=1;}else{idx=2;}if(node1.aabb[idx]>node2.aabb[idx]){return-1;}if(node1.aabb[idx]<node2.aabb[idx]){return 1;}return 0;});}},{key:"_alphaSortFunc",value:function _alphaSortFunc(node1,node2){var title1=node1.title.toUpperCase();// FIXME: Should be case sensitive?