@xeokit/xeokit-sdk 2.5.2-beta-17 → 2.5.2-beta-20

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.
@@ -96769,9 +96769,9 @@ class MetaModel {
96769
96769
  external: metaObjectData.external,
96770
96770
  });
96771
96771
  this.metaScene.metaObjects[id] = metaObject;
96772
- this.metaObjects.push(metaObject);
96772
+ metaObject.metaModels = [];
96773
96773
  }
96774
- metaObject.metaModels.push(this);
96774
+ this.metaObjects.push(metaObject);
96775
96775
  if (!metaObjectData.parent) {
96776
96776
  this.rootMetaObjects.push(metaObject);
96777
96777
  metaScene.rootMetaObjects[id] = metaObject;
@@ -96835,8 +96835,8 @@ class MetaModel {
96835
96835
 
96836
96836
  // Relink MetaObjects to their MetaModels
96837
96837
 
96838
- for (let objectId in this.metaObjects) {
96839
- const metaObject = this.metaObjects[objectId];
96838
+ for (let objectId in metaScene.metaObjects) {
96839
+ const metaObject = metaScene.metaObjects[objectId];
96840
96840
  metaObject.metaModels = [];
96841
96841
  }
96842
96842
 
@@ -97131,11 +97131,11 @@ class MetaScene {
97131
97131
  *
97132
97132
  * Fires a "metaModelDestroyed" event with the value of the {@link MetaModel#id}.
97133
97133
  *
97134
- * @param {String} id ID of the target {@link MetaModel}.
97134
+ * @param {String} metaModelId ID of the target {@link MetaModel}.
97135
97135
  */
97136
- destroyMetaModel(id) {
97136
+ destroyMetaModel(metaModelId) {
97137
97137
 
97138
- const metaModel = this.metaModels[id];
97138
+ const metaModel = this.metaModels[metaModelId];
97139
97139
  if (!metaModel) {
97140
97140
  return;
97141
97141
  }
@@ -97145,12 +97145,12 @@ class MetaScene {
97145
97145
  if (metaModel.propertySets) {
97146
97146
  for (let i = 0, len = metaModel.propertySets.length; i < len; i++) {
97147
97147
  const propertySet = metaModel.propertySets[i];
97148
- if (propertySet.metaModels.length === 1) { // Property set owned by one model, delete
97148
+ if (propertySet.metaModels.length === 1 && propertySet.metaModels[0].id === metaModelId) { // Property set owned only by this model, delete
97149
97149
  delete this.propertySets[propertySet.id];
97150
97150
  } else {
97151
97151
  const newMetaModels = [];
97152
97152
  for (let j = 0, lenj = propertySet.metaModels.length; j < lenj; j++) {
97153
- if (propertySet.metaModels[j].id !== id) {
97153
+ if (propertySet.metaModels[j].id !== metaModelId) {
97154
97154
  newMetaModels.push(propertySet.metaModels[j]);
97155
97155
  }
97156
97156
  }
@@ -97166,7 +97166,7 @@ class MetaScene {
97166
97166
  const metaObject = metaModel.metaObjects[i];
97167
97167
  metaObject.type;
97168
97168
  const id = metaObject.id;
97169
- if (metaObject.metaModels.length === 1) { // MetaObject owned by one model, delete
97169
+ if (metaObject.metaModels.length === 1&& metaObject.metaModels[0].id === metaModelId) { // MetaObject owned only by this model, delete
97170
97170
  delete this.metaObjects[id];
97171
97171
  if (!metaObject.parent) {
97172
97172
  delete this.rootMetaObjects[id];
@@ -97219,7 +97219,7 @@ class MetaScene {
97219
97219
  }
97220
97220
  }
97221
97221
 
97222
- delete this.metaModels[id];
97222
+ delete this.metaModels[metaModelId];
97223
97223
 
97224
97224
  // Relink MetaObjects to their MetaModels
97225
97225
 
@@ -97236,7 +97236,7 @@ class MetaScene {
97236
97236
  }
97237
97237
  }
97238
97238
 
97239
- this.fire("metaModelDestroyed", id);
97239
+ this.fire("metaModelDestroyed", metaModelId);
97240
97240
  }
97241
97241
 
97242
97242
  /**
@@ -122322,7 +122322,7 @@ class TreeViewPlugin extends Plugin {
122322
122322
  buildingNode = {
122323
122323
  nodeId: `${this._id}-${objectId}`,
122324
122324
  objectId: objectId,
122325
- title: this._rootNames[metaObject.metaModels[0].id] || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
122325
+ title: (metaObject.metaModels.length === 0) ? "na" : this._rootNames[metaObject.metaModels[0].id] || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
122326
122326
  type: metaObjectType,
122327
122327
  parent: null,
122328
122328
  numEntities: 0,
@@ -122425,7 +122425,7 @@ class TreeViewPlugin extends Plugin {
122425
122425
  rootNode = {
122426
122426
  nodeId: `${this._id}-${objectId}`,
122427
122427
  objectId: objectId,
122428
- title: this._rootNames[metaObject.metaModels[0].id] || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
122428
+ title: metaObject.metaModels.length === 0 ? "na" : this._rootNames[metaObject.metaModels[0].id] || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
122429
122429
  type: metaObjectType,
122430
122430
  parent: null,
122431
122431
  numEntities: 0,
@@ -122506,7 +122506,7 @@ class TreeViewPlugin extends Plugin {
122506
122506
  const node = {
122507
122507
  nodeId: `${this._id}-${objectId}`,
122508
122508
  objectId: objectId,
122509
- title: (!parent) ? (this._rootNames[metaObject.metaModels[0].id] || metaObjectName) : (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
122509
+ title: (!parent) ? metaObject.metaModels.length === 0 ? "na" : (this._rootNames[metaObject.metaModels[0].id] || metaObjectName) : (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
122510
122510
  type: metaObjectType,
122511
122511
  parent: parent,
122512
122512
  numEntities: 0,
@@ -96765,9 +96765,9 @@ class MetaModel {
96765
96765
  external: metaObjectData.external,
96766
96766
  });
96767
96767
  this.metaScene.metaObjects[id] = metaObject;
96768
- this.metaObjects.push(metaObject);
96768
+ metaObject.metaModels = [];
96769
96769
  }
96770
- metaObject.metaModels.push(this);
96770
+ this.metaObjects.push(metaObject);
96771
96771
  if (!metaObjectData.parent) {
96772
96772
  this.rootMetaObjects.push(metaObject);
96773
96773
  metaScene.rootMetaObjects[id] = metaObject;
@@ -96831,8 +96831,8 @@ class MetaModel {
96831
96831
 
96832
96832
  // Relink MetaObjects to their MetaModels
96833
96833
 
96834
- for (let objectId in this.metaObjects) {
96835
- const metaObject = this.metaObjects[objectId];
96834
+ for (let objectId in metaScene.metaObjects) {
96835
+ const metaObject = metaScene.metaObjects[objectId];
96836
96836
  metaObject.metaModels = [];
96837
96837
  }
96838
96838
 
@@ -97127,11 +97127,11 @@ class MetaScene {
97127
97127
  *
97128
97128
  * Fires a "metaModelDestroyed" event with the value of the {@link MetaModel#id}.
97129
97129
  *
97130
- * @param {String} id ID of the target {@link MetaModel}.
97130
+ * @param {String} metaModelId ID of the target {@link MetaModel}.
97131
97131
  */
97132
- destroyMetaModel(id) {
97132
+ destroyMetaModel(metaModelId) {
97133
97133
 
97134
- const metaModel = this.metaModels[id];
97134
+ const metaModel = this.metaModels[metaModelId];
97135
97135
  if (!metaModel) {
97136
97136
  return;
97137
97137
  }
@@ -97141,12 +97141,12 @@ class MetaScene {
97141
97141
  if (metaModel.propertySets) {
97142
97142
  for (let i = 0, len = metaModel.propertySets.length; i < len; i++) {
97143
97143
  const propertySet = metaModel.propertySets[i];
97144
- if (propertySet.metaModels.length === 1) { // Property set owned by one model, delete
97144
+ if (propertySet.metaModels.length === 1 && propertySet.metaModels[0].id === metaModelId) { // Property set owned only by this model, delete
97145
97145
  delete this.propertySets[propertySet.id];
97146
97146
  } else {
97147
97147
  const newMetaModels = [];
97148
97148
  for (let j = 0, lenj = propertySet.metaModels.length; j < lenj; j++) {
97149
- if (propertySet.metaModels[j].id !== id) {
97149
+ if (propertySet.metaModels[j].id !== metaModelId) {
97150
97150
  newMetaModels.push(propertySet.metaModels[j]);
97151
97151
  }
97152
97152
  }
@@ -97162,7 +97162,7 @@ class MetaScene {
97162
97162
  const metaObject = metaModel.metaObjects[i];
97163
97163
  metaObject.type;
97164
97164
  const id = metaObject.id;
97165
- if (metaObject.metaModels.length === 1) { // MetaObject owned by one model, delete
97165
+ if (metaObject.metaModels.length === 1&& metaObject.metaModels[0].id === metaModelId) { // MetaObject owned only by this model, delete
97166
97166
  delete this.metaObjects[id];
97167
97167
  if (!metaObject.parent) {
97168
97168
  delete this.rootMetaObjects[id];
@@ -97215,7 +97215,7 @@ class MetaScene {
97215
97215
  }
97216
97216
  }
97217
97217
 
97218
- delete this.metaModels[id];
97218
+ delete this.metaModels[metaModelId];
97219
97219
 
97220
97220
  // Relink MetaObjects to their MetaModels
97221
97221
 
@@ -97232,7 +97232,7 @@ class MetaScene {
97232
97232
  }
97233
97233
  }
97234
97234
 
97235
- this.fire("metaModelDestroyed", id);
97235
+ this.fire("metaModelDestroyed", metaModelId);
97236
97236
  }
97237
97237
 
97238
97238
  /**
@@ -122318,7 +122318,7 @@ class TreeViewPlugin extends Plugin {
122318
122318
  buildingNode = {
122319
122319
  nodeId: `${this._id}-${objectId}`,
122320
122320
  objectId: objectId,
122321
- title: this._rootNames[metaObject.metaModels[0].id] || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
122321
+ title: (metaObject.metaModels.length === 0) ? "na" : this._rootNames[metaObject.metaModels[0].id] || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
122322
122322
  type: metaObjectType,
122323
122323
  parent: null,
122324
122324
  numEntities: 0,
@@ -122421,7 +122421,7 @@ class TreeViewPlugin extends Plugin {
122421
122421
  rootNode = {
122422
122422
  nodeId: `${this._id}-${objectId}`,
122423
122423
  objectId: objectId,
122424
- title: this._rootNames[metaObject.metaModels[0].id] || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
122424
+ title: metaObject.metaModels.length === 0 ? "na" : this._rootNames[metaObject.metaModels[0].id] || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
122425
122425
  type: metaObjectType,
122426
122426
  parent: null,
122427
122427
  numEntities: 0,
@@ -122502,7 +122502,7 @@ class TreeViewPlugin extends Plugin {
122502
122502
  const node = {
122503
122503
  nodeId: `${this._id}-${objectId}`,
122504
122504
  objectId: objectId,
122505
- title: (!parent) ? (this._rootNames[metaObject.metaModels[0].id] || metaObjectName) : (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
122505
+ title: (!parent) ? metaObject.metaModels.length === 0 ? "na" : (this._rootNames[metaObject.metaModels[0].id] || metaObjectName) : (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
122506
122506
  type: metaObjectType,
122507
122507
  parent: parent,
122508
122508
  numEntities: 0,
@@ -23207,10 +23207,10 @@ value=value||"qwerty";if(value!=="qwerty"&&value!=="azerty"){this.error("Unsuppo
23207
23207
  * Load metamodel data into this MetaModel.
23208
23208
  * @param metaModelData
23209
23209
  */},{key:"loadData",value:function loadData(metaModelData){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(this.finalized){throw"MetaScene already finalized - can't add more data";}this._globalizeIDs(metaModelData,options);var metaScene=this.metaScene;var propertyLookup=metaModelData.properties;// Create global Property Sets
23210
- if(metaModelData.propertySets){for(var _i471=0,len=metaModelData.propertySets.length;_i471<len;_i471++){var propertySetData=metaModelData.propertySets[_i471];var propertySet=metaScene.propertySets[propertySetData.id];if(!propertySet){if(propertyLookup){this._decompressProperties(propertyLookup,propertySetData.properties);}propertySet=new PropertySet({id:propertySetData.id,originalSystemId:propertySetData.originalSystemId||propertySetData.id,type:propertySetData.type,name:propertySetData.name,properties:propertySetData.properties});metaScene.propertySets[propertySet.id]=propertySet;}propertySet.metaModels.push(this);this.propertySets.push(propertySet);}}if(metaModelData.metaObjects){for(var _i472=0,_len93=metaModelData.metaObjects.length;_i472<_len93;_i472++){var metaObjectData=metaModelData.metaObjects[_i472];var id=metaObjectData.id;var metaObject=metaScene.metaObjects[id];if(!metaObject){var type=metaObjectData.type;var originalSystemId=metaObjectData.originalSystemId;var propertySetIds=metaObjectData.propertySets||metaObjectData.propertySetIds;metaObject=new MetaObject({id:id,originalSystemId:originalSystemId,parentId:metaObjectData.parent,type:type,name:metaObjectData.name,attributes:metaObjectData.attributes,propertySetIds:propertySetIds,external:metaObjectData.external});this.metaScene.metaObjects[id]=metaObject;this.metaObjects.push(metaObject);}metaObject.metaModels.push(this);if(!metaObjectData.parent){this.rootMetaObjects.push(metaObject);metaScene.rootMetaObjects[id]=metaObject;}}}}},{key:"_decompressProperties",value:function _decompressProperties(propertyLookup,properties){for(var _i473=0,len=properties.length;_i473<len;_i473++){var property=properties[_i473];if(Number.isInteger(property)){var lookupProperty=propertyLookup[property];if(lookupProperty){properties[_i473]=lookupProperty;}}}}},{key:"finalize",value:function finalize(){if(this.finalized){throw"MetaScene already finalized - can't re-finalize";}// Re-link MetaScene's entire MetaObject parent/child hierarchy
23210
+ if(metaModelData.propertySets){for(var _i471=0,len=metaModelData.propertySets.length;_i471<len;_i471++){var propertySetData=metaModelData.propertySets[_i471];var propertySet=metaScene.propertySets[propertySetData.id];if(!propertySet){if(propertyLookup){this._decompressProperties(propertyLookup,propertySetData.properties);}propertySet=new PropertySet({id:propertySetData.id,originalSystemId:propertySetData.originalSystemId||propertySetData.id,type:propertySetData.type,name:propertySetData.name,properties:propertySetData.properties});metaScene.propertySets[propertySet.id]=propertySet;}propertySet.metaModels.push(this);this.propertySets.push(propertySet);}}if(metaModelData.metaObjects){for(var _i472=0,_len93=metaModelData.metaObjects.length;_i472<_len93;_i472++){var metaObjectData=metaModelData.metaObjects[_i472];var id=metaObjectData.id;var metaObject=metaScene.metaObjects[id];if(!metaObject){var type=metaObjectData.type;var originalSystemId=metaObjectData.originalSystemId;var propertySetIds=metaObjectData.propertySets||metaObjectData.propertySetIds;metaObject=new MetaObject({id:id,originalSystemId:originalSystemId,parentId:metaObjectData.parent,type:type,name:metaObjectData.name,attributes:metaObjectData.attributes,propertySetIds:propertySetIds,external:metaObjectData.external});this.metaScene.metaObjects[id]=metaObject;metaObject.metaModels=[];}this.metaObjects.push(metaObject);if(!metaObjectData.parent){this.rootMetaObjects.push(metaObject);metaScene.rootMetaObjects[id]=metaObject;}}}}},{key:"_decompressProperties",value:function _decompressProperties(propertyLookup,properties){for(var _i473=0,len=properties.length;_i473<len;_i473++){var property=properties[_i473];if(Number.isInteger(property)){var lookupProperty=propertyLookup[property];if(lookupProperty){properties[_i473]=lookupProperty;}}}}},{key:"finalize",value:function finalize(){if(this.finalized){throw"MetaScene already finalized - can't re-finalize";}// Re-link MetaScene's entire MetaObject parent/child hierarchy
23211
23211
  var metaScene=this.metaScene;for(var objectId in metaScene.metaObjects){var metaObject=metaScene.metaObjects[objectId];if(metaObject.children){metaObject.children=[];}// Re-link each MetaObject's property sets
23212
23212
  if(metaObject.propertySets){metaObject.propertySets=[];}if(metaObject.propertySetIds){for(var _i474=0,len=metaObject.propertySetIds.length;_i474<len;_i474++){var propertySetId=metaObject.propertySetIds[_i474];var propertySet=metaScene.propertySets[propertySetId];metaObject.propertySets.push(propertySet);}}}for(var _objectId in metaScene.metaObjects){var _metaObject3=metaScene.metaObjects[_objectId];if(_metaObject3.parentId){var parentMetaObject=metaScene.metaObjects[_metaObject3.parentId];if(parentMetaObject){_metaObject3.parent=parentMetaObject;(parentMetaObject.children||(parentMetaObject.children=[])).push(_metaObject3);}}}// Relink MetaObjects to their MetaModels
23213
- for(var _objectId2 in this.metaObjects){var _metaObject4=this.metaObjects[_objectId2];_metaObject4.metaModels=[];}for(var modelId in metaScene.metaModels){var metaModel=metaScene.metaModels[modelId];for(var _i475=0,_len94=metaModel.metaObjects.length;_i475<_len94;_i475++){var _metaObject5=metaModel.metaObjects[_i475];_metaObject5.metaModels.push(metaModel);}}// Rebuild MetaScene's MetaObjects-by-type lookup
23213
+ for(var _objectId2 in metaScene.metaObjects){var _metaObject4=metaScene.metaObjects[_objectId2];_metaObject4.metaModels=[];}for(var modelId in metaScene.metaModels){var metaModel=metaScene.metaModels[modelId];for(var _i475=0,_len94=metaModel.metaObjects.length;_i475<_len94;_i475++){var _metaObject5=metaModel.metaObjects[_i475];_metaObject5.metaModels.push(metaModel);}}// Rebuild MetaScene's MetaObjects-by-type lookup
23214
23214
  metaScene.metaObjectsByType={};for(var _objectId3 in metaScene.metaObjects){var _metaObject6=metaScene.metaObjects[_objectId3];var type=_metaObject6.type;(metaScene.metaObjectsByType[type]||(metaScene.metaObjectsByType[type]={}))[_objectId3]=_metaObject6;}this.finalized=true;this.metaScene.fire("metaModelCreated",this.id);}/**
23215
23215
  * Gets this MetaModel as JSON.
23216
23216
  * @returns {{schema: (String|string|*), createdAt: (String|string|*), metaObjects: *[], author: (String|string|*), id: (String|Number|string|number|*), creatingApplication: (String|string|*), projectId: (String|Number|string|number|*), propertySets: *[]}}
@@ -23295,15 +23295,15 @@ metaScene:this,id:modelId,projectId:metaModelData.projectId||"none",revisionId:m
23295
23295
  *
23296
23296
  * Fires a "metaModelDestroyed" event with the value of the {@link MetaModel#id}.
23297
23297
  *
23298
- * @param {String} id ID of the target {@link MetaModel}.
23299
- */},{key:"destroyMetaModel",value:function destroyMetaModel(id){var metaModel=this.metaModels[id];if(!metaModel){return;}// Remove global PropertySets
23300
- if(metaModel.propertySets){for(var _i481=0,len=metaModel.propertySets.length;_i481<len;_i481++){var propertySet=metaModel.propertySets[_i481];if(propertySet.metaModels.length===1){// Property set owned by one model, delete
23301
- delete this.propertySets[propertySet.id];}else{var newMetaModels=[];for(var j=0,lenj=propertySet.metaModels.length;j<lenj;j++){if(propertySet.metaModels[j].id!==id){newMetaModels.push(propertySet.metaModels[j]);}}propertySet.metaModels=newMetaModels;}}}// Remove MetaObjects
23302
- if(metaModel.metaObjects){for(var _i482=0,_len97=metaModel.metaObjects.length;_i482<_len97;_i482++){var metaObject=metaModel.metaObjects[_i482];metaObject.type;var _id4=metaObject.id;if(metaObject.metaModels.length===1){// MetaObject owned by one model, delete
23303
- delete this.metaObjects[_id4];if(!metaObject.parent){delete this.rootMetaObjects[_id4];}}}}// Re-link entire MetaObject parent/child hierarchy
23298
+ * @param {String} metaModelId ID of the target {@link MetaModel}.
23299
+ */},{key:"destroyMetaModel",value:function destroyMetaModel(metaModelId){var metaModel=this.metaModels[metaModelId];if(!metaModel){return;}// Remove global PropertySets
23300
+ if(metaModel.propertySets){for(var _i481=0,len=metaModel.propertySets.length;_i481<len;_i481++){var propertySet=metaModel.propertySets[_i481];if(propertySet.metaModels.length===1&&propertySet.metaModels[0].id===metaModelId){// Property set owned only by this model, delete
23301
+ delete this.propertySets[propertySet.id];}else{var newMetaModels=[];for(var j=0,lenj=propertySet.metaModels.length;j<lenj;j++){if(propertySet.metaModels[j].id!==metaModelId){newMetaModels.push(propertySet.metaModels[j]);}}propertySet.metaModels=newMetaModels;}}}// Remove MetaObjects
23302
+ if(metaModel.metaObjects){for(var _i482=0,_len97=metaModel.metaObjects.length;_i482<_len97;_i482++){var metaObject=metaModel.metaObjects[_i482];metaObject.type;var id=metaObject.id;if(metaObject.metaModels.length===1&&metaObject.metaModels[0].id===metaModelId){// MetaObject owned only by this model, delete
23303
+ delete this.metaObjects[id];if(!metaObject.parent){delete this.rootMetaObjects[id];}}}}// Re-link entire MetaObject parent/child hierarchy
23304
23304
  for(var objectId in this.metaObjects){var _metaObject7=this.metaObjects[objectId];if(_metaObject7.children){_metaObject7.children=[];}// Re-link each MetaObject's property sets
23305
- if(_metaObject7.propertySets){_metaObject7.propertySets=[];}if(_metaObject7.propertySetIds){for(var _i483=0,_len98=_metaObject7.propertySetIds.length;_i483<_len98;_i483++){var propertySetId=_metaObject7.propertySetIds[_i483];var _propertySet=this.propertySets[propertySetId];_metaObject7.propertySets.push(_propertySet);}}}this.metaObjectsByType={};for(var _objectId4 in this.metaObjects){var _metaObject8=this.metaObjects[_objectId4];var type=_metaObject8.type;if(_metaObject8.children){_metaObject8.children=null;}(this.metaObjectsByType[type]||(this.metaObjectsByType[type]={}))[_objectId4]=_metaObject8;}for(var _objectId5 in this.metaObjects){var _metaObject9=this.metaObjects[_objectId5];if(_metaObject9.parentId){var parentMetaObject=this.metaObjects[_metaObject9.parentId];if(parentMetaObject){_metaObject9.parent=parentMetaObject;(parentMetaObject.children||(parentMetaObject.children=[])).push(_metaObject9);}}}delete this.metaModels[id];// Relink MetaObjects to their MetaModels
23306
- for(var _objectId6 in this.metaObjects){var _metaObject10=this.metaObjects[_objectId6];_metaObject10.metaModels=[];}for(var modelId in this.metaModels){var _metaModel=this.metaModels[modelId];for(var _i484=0,_len99=_metaModel.metaObjects.length;_i484<_len99;_i484++){var _metaObject11=_metaModel.metaObjects[_i484];_metaObject11.metaModels.push(_metaModel);}}this.fire("metaModelDestroyed",id);}/**
23305
+ if(_metaObject7.propertySets){_metaObject7.propertySets=[];}if(_metaObject7.propertySetIds){for(var _i483=0,_len98=_metaObject7.propertySetIds.length;_i483<_len98;_i483++){var propertySetId=_metaObject7.propertySetIds[_i483];var _propertySet=this.propertySets[propertySetId];_metaObject7.propertySets.push(_propertySet);}}}this.metaObjectsByType={};for(var _objectId4 in this.metaObjects){var _metaObject8=this.metaObjects[_objectId4];var type=_metaObject8.type;if(_metaObject8.children){_metaObject8.children=null;}(this.metaObjectsByType[type]||(this.metaObjectsByType[type]={}))[_objectId4]=_metaObject8;}for(var _objectId5 in this.metaObjects){var _metaObject9=this.metaObjects[_objectId5];if(_metaObject9.parentId){var parentMetaObject=this.metaObjects[_metaObject9.parentId];if(parentMetaObject){_metaObject9.parent=parentMetaObject;(parentMetaObject.children||(parentMetaObject.children=[])).push(_metaObject9);}}}delete this.metaModels[metaModelId];// Relink MetaObjects to their MetaModels
23306
+ for(var _objectId6 in this.metaObjects){var _metaObject10=this.metaObjects[_objectId6];_metaObject10.metaModels=[];}for(var modelId in this.metaModels){var _metaModel=this.metaModels[modelId];for(var _i484=0,_len99=_metaModel.metaObjects.length;_i484<_len99;_i484++){var _metaObject11=_metaModel.metaObjects[_i484];_metaObject11.metaModels.push(_metaModel);}}this.fire("metaModelDestroyed",metaModelId);}/**
23307
23307
  * Gets the {@link MetaObject#id}s of the {@link MetaObject}s that have the given {@link MetaObject#type}.
23308
23308
  *
23309
23309
  * @param {String} type The type.
@@ -24857,7 +24857,7 @@ var sectionPlane=new SectionPlane(this.viewer.scene,{id:params.id,pos:params.pos
24857
24857
  * @private
24858
24858
  */},{key:"send",value:function send(name,value){switch(name){case"snapshotStarting":// Viewer#getSnapshot() about to take snapshot - hide controls
24859
24859
  for(var id in this._controls){if(this._controls.hasOwnProperty(id)){this._controls[id].setCulled(true);}}break;case"snapshotFinished":// Viewer#getSnapshot() finished taking snapshot - show controls again
24860
- for(var _id5 in this._controls){if(this._controls.hasOwnProperty(_id5)){this._controls[_id5].setCulled(false);}}break;case"clearSectionPlanes":this.clear();break;}}/**
24860
+ for(var _id4 in this._controls){if(this._controls.hasOwnProperty(_id4)){this._controls[_id4].setCulled(false);}}break;case"clearSectionPlanes":this.clear();break;}}/**
24861
24861
  * Destroys this SectionPlanesPlugin.
24862
24862
  *
24863
24863
  * Also destroys each {@link SectionPlane} created by this SectionPlanesPlugin.
@@ -25562,7 +25562,7 @@ var sectionPlane=new SectionPlane(this.viewer.scene,{id:params.id,pos:params.pos
25562
25562
  * @private
25563
25563
  */},{key:"send",value:function send(name,value){switch(name){case"snapshotStarting":// Viewer#getSnapshot() about to take snapshot - hide controls
25564
25564
  for(var id in this._controls){if(this._controls.hasOwnProperty(id)){this._controls[id].setCulled(true);}}break;case"snapshotFinished":// Viewer#getSnapshot() finished taking snapshot - show controls again
25565
- for(var _id6 in this._controls){if(this._controls.hasOwnProperty(_id6)){this._controls[_id6].setCulled(false);}}break;case"clearSectionPlanes":this.clear();break;}}/**
25565
+ for(var _id5 in this._controls){if(this._controls.hasOwnProperty(_id5)){this._controls[_id5].setCulled(false);}}break;case"clearSectionPlanes":this.clear();break;}}/**
25566
25566
  * Destroys this FaceAlignedSectionPlanesPlugin.
25567
25567
  *
25568
25568
  * Also destroys each {@link SectionPlane} created by this FaceAlignedSectionPlanesPlugin.
@@ -26359,7 +26359,7 @@ _this143._sortNodes=cfg.sortNodes;_this143._pruneEmptyNodes=cfg.pruneEmptyNodes;
26359
26359
  // // errors.push("Can't build storeys hierarchy: no IfcBuildingStoreys found");
26360
26360
  // }
26361
26361
  // }
26362
- 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 rootNode=this._renderService.createRootNode();this._rootElement=rootNode;this._containerElement.appendChild(rootNode);var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var objectId in rootMetaObjects){var rootMetaObject=rootMetaObjects[objectId];var metaObjectType=rootMetaObject.type;var metaObjectName=rootMetaObject.name;var rootName=metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType;var childNode=this._renderService.createDisabledNodeElement(rootName);rootNode.appendChild(childNode);}}},{key:"_findEmptyNodes",value:function _findEmptyNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var objectId in rootMetaObjects){this._findEmptyNodes2(rootMetaObjects[objectId]);}}},{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 _i533=0,len=children.length;_i533<len;_i533++){var childMetaObject=children[_i533];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._rootNames[metaObject.metaModels[0].id]||(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;this._nodeNodes[buildingNode.nodeId]=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;this._nodeNodes[storeyNode.nodeId]=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;this._nodeNodes[typeNode.nodeId]=typeNode;typeNodes[metaObjectType]=typeNode;}var _node8={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(_node8);this._objectNodes[_node8.objectId]=_node8;this._nodeNodes[_node8.nodeId]=_node8;}}}if(children){for(var _i534=0,len=children.length;_i534<len;_i534++){var childMetaObject=children[_i534];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._rootNames[metaObject.metaModels[0].id]||(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;this._nodeNodes[rootNode.nodeId]=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;this._nodeNodes[typeNode.nodeId]=typeNode;typeNodes[metaObjectType]=typeNode;}var _node9={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(_node9);this._objectNodes[_node9.objectId]=_node9;this._nodeNodes[_node9.nodeId]=_node9;}}}if(children){for(var _i535=0,len=children.length;_i535<len;_i535++){var childMetaObject=children[_i535];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._rootNames[metaObject.metaModels[0].id]||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;this._nodeNodes[node.nodeId]=node;if(children){for(var _i536=0,len=children.length;_i536<len;_i536++){var childMetaObject=children[_i536];this._createContainmentNodes2(childMetaObject,node);}}}},{key:"_doSortNodes",value:function _doSortNodes(){for(var _i537=0,len=this._rootNodes.length;_i537<len;_i537++){var rootNode=this._rootNodes[_i537];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
26362
+ 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 rootNode=this._renderService.createRootNode();this._rootElement=rootNode;this._containerElement.appendChild(rootNode);var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var objectId in rootMetaObjects){var rootMetaObject=rootMetaObjects[objectId];var metaObjectType=rootMetaObject.type;var metaObjectName=rootMetaObject.name;var rootName=metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType;var childNode=this._renderService.createDisabledNodeElement(rootName);rootNode.appendChild(childNode);}}},{key:"_findEmptyNodes",value:function _findEmptyNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var objectId in rootMetaObjects){this._findEmptyNodes2(rootMetaObjects[objectId]);}}},{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 _i533=0,len=children.length;_i533<len;_i533++){var childMetaObject=children[_i533];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:metaObject.metaModels.length===0?"na":this._rootNames[metaObject.metaModels[0].id]||(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;this._nodeNodes[buildingNode.nodeId]=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;this._nodeNodes[storeyNode.nodeId]=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;this._nodeNodes[typeNode.nodeId]=typeNode;typeNodes[metaObjectType]=typeNode;}var _node8={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(_node8);this._objectNodes[_node8.objectId]=_node8;this._nodeNodes[_node8.nodeId]=_node8;}}}if(children){for(var _i534=0,len=children.length;_i534<len;_i534++){var childMetaObject=children[_i534];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:metaObject.metaModels.length===0?"na":this._rootNames[metaObject.metaModels[0].id]||(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;this._nodeNodes[rootNode.nodeId]=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;this._nodeNodes[typeNode.nodeId]=typeNode;typeNodes[metaObjectType]=typeNode;}var _node9={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(_node9);this._objectNodes[_node9.objectId]=_node9;this._nodeNodes[_node9.nodeId]=_node9;}}}if(children){for(var _i535=0,len=children.length;_i535<len;_i535++){var childMetaObject=children[_i535];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?metaObject.metaModels.length===0?"na":this._rootNames[metaObject.metaModels[0].id]||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;this._nodeNodes[node.nodeId]=node;if(children){for(var _i536=0,len=children.length;_i536<len;_i536++){var childMetaObject=children[_i536];this._createContainmentNodes2(childMetaObject,node);}}}},{key:"_doSortNodes",value:function _doSortNodes(){for(var _i537=0,len=this._rootNodes.length;_i537<len;_i537++){var rootNode=this._rootNodes[_i537];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
26363
26363
  children.sort(this._getSpatialSortFunc());}else{children.sort(this._alphaSortFunc);}for(var _i538=0,len=children.length;_i538<len;_i538++){var _node10=children[_i538];this._sortChildren(_node10);}}},{key:"_getSpatialSortFunc",value:function _getSpatialSortFunc(){// Creates cached sort func with Viewer in scope
26364
26364
  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
26365
26365
  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?