@xeokit/xeokit-sdk 2.6.0-beta-4 → 2.6.0-beta-6

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.
@@ -97138,6 +97138,9 @@ class MetaModel {
97138
97138
  if (metaModelData.propertySets) {
97139
97139
  for (let i = 0, len = metaModelData.propertySets.length; i < len; i++) {
97140
97140
  const propertySetData = metaModelData.propertySets[i];
97141
+ if (!propertySetData.properties) { // HACK: https://github.com/Creoox/creoox-ifc2gltfcxconverter/issues/8
97142
+ propertySetData.properties = [];
97143
+ }
97141
97144
  let propertySet = metaScene.propertySets[propertySetData.id];
97142
97145
  if (!propertySet) {
97143
97146
  if (propertyLookup) {
@@ -127603,9 +127606,9 @@ parsers[ParserV10.version] = ParserV10;
127603
127606
  * }
127604
127607
  *
127605
127608
  * // Gets the contents of the given .XKT file in an arraybuffer
127606
- * getXKT(xKTSrc, ok, error) {
127609
+ * getXKT(src, ok, error) {
127607
127610
  * console.log("MyDataSource#getXKT(" + xKTSrc + ", ... )");
127608
- * utils.loadArraybuffer(xKTSrc,
127611
+ * utils.loadArraybuffer(src,
127609
127612
  * (arraybuffer) => {
127610
127613
  * ok(arraybuffer);
127611
127614
  * },
@@ -128289,13 +128292,28 @@ class XKTLoaderPlugin extends Plugin {
128289
128292
  globalizeObjectIds: options.globalizeObjectIds
128290
128293
  });
128291
128294
  i++;
128292
- this.scheduleTask( loadNext, 100);
128295
+ this.scheduleTask(loadNext, 100);
128296
+ }, error);
128297
+ }
128298
+ };
128299
+ loadNext();
128300
+ };
128301
+ const loadXKTs_excludeTheirMetaModels = (xktFiles, done, error) => { // Load XKTs, ignore metamodels in the XKT
128302
+ let i = 0;
128303
+ const loadNext = () => {
128304
+ if (i >= xktFiles.length) {
128305
+ done();
128306
+ } else {
128307
+ this._dataSource.getXKT(`${baseDir}${xktFiles[i]}`, (arrayBuffer) => {
128308
+ this._parseModel(arrayBuffer, params, options, sceneModel, null /* Ignore metamodel in XKT */, manifestCtx);
128309
+ i++;
128310
+ this.scheduleTask(loadNext, 100);
128293
128311
  }, error);
128294
128312
  }
128295
128313
  };
128296
128314
  loadNext();
128297
128315
  };
128298
- const loadXKTs = (xktFiles, done, error) => {
128316
+ const loadXKTs_includeTheirMetaModels = (xktFiles, done, error) => { // Load XKTs, parse metamodels from the XKT
128299
128317
  let i = 0;
128300
128318
  const loadNext = () => {
128301
128319
  if (i >= xktFiles.length) {
@@ -128320,10 +128338,10 @@ class XKTLoaderPlugin extends Plugin {
128320
128338
  const metaModelFiles = manifestData.metaModelFiles;
128321
128339
  if (metaModelFiles) {
128322
128340
  loadJSONs(metaModelFiles, () => {
128323
- loadXKTs(xktFiles, finish, error);
128341
+ loadXKTs_excludeTheirMetaModels(xktFiles, finish, error);
128324
128342
  }, error);
128325
128343
  } else {
128326
- loadXKTs(xktFiles, finish, error);
128344
+ loadXKTs_includeTheirMetaModels(xktFiles, finish, error);
128327
128345
  }
128328
128346
  } else {
128329
128347
  this._dataSource.getManifest(params.manifestSrc, (manifestData) => {
@@ -128338,10 +128356,10 @@ class XKTLoaderPlugin extends Plugin {
128338
128356
  const metaModelFiles = manifestData.metaModelFiles;
128339
128357
  if (metaModelFiles) {
128340
128358
  loadJSONs(metaModelFiles, () => {
128341
- loadXKTs(xktFiles, finish, error);
128359
+ loadXKTs_excludeTheirMetaModels(xktFiles, finish, error);
128342
128360
  }, error);
128343
128361
  } else {
128344
- loadXKTs(xktFiles, finish, error);
128362
+ loadXKTs_includeTheirMetaModels(xktFiles, finish, error);
128345
128363
  }
128346
128364
  }, error);
128347
128365
  }
@@ -128381,56 +128399,6 @@ class XKTLoaderPlugin extends Plugin {
128381
128399
  }
128382
128400
  parser.parse(this.viewer, options, elements, sceneModel, metaModel, manifestCtx);
128383
128401
  }
128384
-
128385
- // _createDefaultMetaModelIfNeeded(sceneModel, params, options) {
128386
- //
128387
- // const metaModelId = sceneModel.id;
128388
- //
128389
- // if (!this.viewer.metaScene.metaModels[metaModelId]) {
128390
- //
128391
- // const metaModelData = {
128392
- // metaObjects: []
128393
- // };
128394
- //
128395
- // metaModelData.metaObjects.push({
128396
- // id: metaModelId,
128397
- // type: "default",
128398
- // name: metaModelId,
128399
- // parent: null
128400
- // });
128401
- //
128402
- // const entityList = sceneModel.entityList;
128403
- //
128404
- // for (let i = 0, len = entityList.length; i < len; i++) {
128405
- // const entity = entityList[i];
128406
- // if (entity.isObject) {
128407
- // metaModelData.metaObjects.push({
128408
- // id: entity.id,
128409
- // type: "default",
128410
- // name: entity.id,
128411
- // parent: metaModelId
128412
- // });
128413
- // }
128414
- // }
128415
- //
128416
- // const src = params.src;
128417
- //
128418
- // this.viewer.metaScene.createMetaModel(metaModelId, metaModelData, {
128419
- //
128420
- // includeTypes: options.includeTypes,
128421
- // excludeTypes: options.excludeTypes,
128422
- // globalizeObjectIds: options.globalizeObjectIds,
128423
- //
128424
- // getProperties: async (propertiesId) => {
128425
- // return await this._dataSource.getProperties(src, propertiesId);
128426
- // }
128427
- // });
128428
- //
128429
- // sceneModel.once("destroyed", () => {
128430
- // this.viewer.metaScene.destroyMetaModel(metaModelId);
128431
- // });
128432
- // }
128433
- // }
128434
128402
  }
128435
128403
 
128436
128404
  function getBaseDirectory(filePath) {
@@ -97134,6 +97134,9 @@ class MetaModel {
97134
97134
  if (metaModelData.propertySets) {
97135
97135
  for (let i = 0, len = metaModelData.propertySets.length; i < len; i++) {
97136
97136
  const propertySetData = metaModelData.propertySets[i];
97137
+ if (!propertySetData.properties) { // HACK: https://github.com/Creoox/creoox-ifc2gltfcxconverter/issues/8
97138
+ propertySetData.properties = [];
97139
+ }
97137
97140
  let propertySet = metaScene.propertySets[propertySetData.id];
97138
97141
  if (!propertySet) {
97139
97142
  if (propertyLookup) {
@@ -127599,9 +127602,9 @@ parsers[ParserV10.version] = ParserV10;
127599
127602
  * }
127600
127603
  *
127601
127604
  * // Gets the contents of the given .XKT file in an arraybuffer
127602
- * getXKT(xKTSrc, ok, error) {
127605
+ * getXKT(src, ok, error) {
127603
127606
  * console.log("MyDataSource#getXKT(" + xKTSrc + ", ... )");
127604
- * utils.loadArraybuffer(xKTSrc,
127607
+ * utils.loadArraybuffer(src,
127605
127608
  * (arraybuffer) => {
127606
127609
  * ok(arraybuffer);
127607
127610
  * },
@@ -128285,13 +128288,28 @@ class XKTLoaderPlugin extends Plugin {
128285
128288
  globalizeObjectIds: options.globalizeObjectIds
128286
128289
  });
128287
128290
  i++;
128288
- this.scheduleTask( loadNext, 100);
128291
+ this.scheduleTask(loadNext, 100);
128292
+ }, error);
128293
+ }
128294
+ };
128295
+ loadNext();
128296
+ };
128297
+ const loadXKTs_excludeTheirMetaModels = (xktFiles, done, error) => { // Load XKTs, ignore metamodels in the XKT
128298
+ let i = 0;
128299
+ const loadNext = () => {
128300
+ if (i >= xktFiles.length) {
128301
+ done();
128302
+ } else {
128303
+ this._dataSource.getXKT(`${baseDir}${xktFiles[i]}`, (arrayBuffer) => {
128304
+ this._parseModel(arrayBuffer, params, options, sceneModel, null /* Ignore metamodel in XKT */, manifestCtx);
128305
+ i++;
128306
+ this.scheduleTask(loadNext, 100);
128289
128307
  }, error);
128290
128308
  }
128291
128309
  };
128292
128310
  loadNext();
128293
128311
  };
128294
- const loadXKTs = (xktFiles, done, error) => {
128312
+ const loadXKTs_includeTheirMetaModels = (xktFiles, done, error) => { // Load XKTs, parse metamodels from the XKT
128295
128313
  let i = 0;
128296
128314
  const loadNext = () => {
128297
128315
  if (i >= xktFiles.length) {
@@ -128316,10 +128334,10 @@ class XKTLoaderPlugin extends Plugin {
128316
128334
  const metaModelFiles = manifestData.metaModelFiles;
128317
128335
  if (metaModelFiles) {
128318
128336
  loadJSONs(metaModelFiles, () => {
128319
- loadXKTs(xktFiles, finish, error);
128337
+ loadXKTs_excludeTheirMetaModels(xktFiles, finish, error);
128320
128338
  }, error);
128321
128339
  } else {
128322
- loadXKTs(xktFiles, finish, error);
128340
+ loadXKTs_includeTheirMetaModels(xktFiles, finish, error);
128323
128341
  }
128324
128342
  } else {
128325
128343
  this._dataSource.getManifest(params.manifestSrc, (manifestData) => {
@@ -128334,10 +128352,10 @@ class XKTLoaderPlugin extends Plugin {
128334
128352
  const metaModelFiles = manifestData.metaModelFiles;
128335
128353
  if (metaModelFiles) {
128336
128354
  loadJSONs(metaModelFiles, () => {
128337
- loadXKTs(xktFiles, finish, error);
128355
+ loadXKTs_excludeTheirMetaModels(xktFiles, finish, error);
128338
128356
  }, error);
128339
128357
  } else {
128340
- loadXKTs(xktFiles, finish, error);
128358
+ loadXKTs_includeTheirMetaModels(xktFiles, finish, error);
128341
128359
  }
128342
128360
  }, error);
128343
128361
  }
@@ -128377,56 +128395,6 @@ class XKTLoaderPlugin extends Plugin {
128377
128395
  }
128378
128396
  parser.parse(this.viewer, options, elements, sceneModel, metaModel, manifestCtx);
128379
128397
  }
128380
-
128381
- // _createDefaultMetaModelIfNeeded(sceneModel, params, options) {
128382
- //
128383
- // const metaModelId = sceneModel.id;
128384
- //
128385
- // if (!this.viewer.metaScene.metaModels[metaModelId]) {
128386
- //
128387
- // const metaModelData = {
128388
- // metaObjects: []
128389
- // };
128390
- //
128391
- // metaModelData.metaObjects.push({
128392
- // id: metaModelId,
128393
- // type: "default",
128394
- // name: metaModelId,
128395
- // parent: null
128396
- // });
128397
- //
128398
- // const entityList = sceneModel.entityList;
128399
- //
128400
- // for (let i = 0, len = entityList.length; i < len; i++) {
128401
- // const entity = entityList[i];
128402
- // if (entity.isObject) {
128403
- // metaModelData.metaObjects.push({
128404
- // id: entity.id,
128405
- // type: "default",
128406
- // name: entity.id,
128407
- // parent: metaModelId
128408
- // });
128409
- // }
128410
- // }
128411
- //
128412
- // const src = params.src;
128413
- //
128414
- // this.viewer.metaScene.createMetaModel(metaModelId, metaModelData, {
128415
- //
128416
- // includeTypes: options.includeTypes,
128417
- // excludeTypes: options.excludeTypes,
128418
- // globalizeObjectIds: options.globalizeObjectIds,
128419
- //
128420
- // getProperties: async (propertiesId) => {
128421
- // return await this._dataSource.getProperties(src, propertiesId);
128422
- // }
128423
- // });
128424
- //
128425
- // sceneModel.once("destroyed", () => {
128426
- // this.viewer.metaScene.destroyMetaModel(metaModelId);
128427
- // });
128428
- // }
128429
- // }
128430
128398
  }
128431
128399
 
128432
128400
  function getBaseDirectory(filePath) {
@@ -23505,7 +23505,8 @@ value=value||"qwerty";if(value!=="qwerty"&&value!=="azerty"){this.error("Unsuppo
23505
23505
  * Load metamodel data into this MetaModel.
23506
23506
  * @param metaModelData
23507
23507
  */},{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
23508
- if(metaModelData.propertySets){for(var _i472=0,len=metaModelData.propertySets.length;_i472<len;_i472++){var propertySetData=metaModelData.propertySets[_i472];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 _i473=0,_len93=metaModelData.metaObjects.length;_i473<_len93;_i473++){var metaObjectData=metaModelData.metaObjects[_i473];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 _i474=0,len=properties.length;_i474<len;_i474++){var property=properties[_i474];if(Number.isInteger(property)){var lookupProperty=propertyLookup[property];if(lookupProperty){properties[_i474]=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
23508
+ if(metaModelData.propertySets){for(var _i472=0,len=metaModelData.propertySets.length;_i472<len;_i472++){var propertySetData=metaModelData.propertySets[_i472];if(!propertySetData.properties){// HACK: https://github.com/Creoox/creoox-ifc2gltfcxconverter/issues/8
23509
+ propertySetData.properties=[];}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 _i473=0,_len93=metaModelData.metaObjects.length;_i473<_len93;_i473++){var metaObjectData=metaModelData.metaObjects[_i473];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 _i474=0,len=properties.length;_i474<len;_i474++){var property=properties[_i474];if(Number.isInteger(property)){var lookupProperty=propertyLookup[property];if(lookupProperty){properties[_i474]=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
23509
23510
  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
23510
23511
  if(metaObject.propertySets){metaObject.propertySets=[];}if(metaObject.propertySetIds){for(var _i475=0,len=metaObject.propertySetIds.length;_i475<len;_i475++){var propertySetId=metaObject.propertySetIds[_i475];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
23511
23512
  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 _i476=0,_len94=metaModel.metaObjects.length;_i476<_len94;_i476++){var _metaObject5=metaModel.metaObjects[_i476];_metaObject5.metaModels.push(metaModel);}}// Rebuild MetaScene's MetaObjects-by-type lookup
@@ -27270,9 +27271,9 @@ var _primitiveType4=eachGeometryPrimitiveType[_geometryIndex4];var primitiveName
27270
27271
  * }
27271
27272
  *
27272
27273
  * // Gets the contents of the given .XKT file in an arraybuffer
27273
- * getXKT(xKTSrc, ok, error) {
27274
+ * getXKT(src, ok, error) {
27274
27275
  * console.log("MyDataSource#getXKT(" + xKTSrc + ", ... )");
27275
- * utils.loadArraybuffer(xKTSrc,
27276
+ * utils.loadArraybuffer(src,
27276
27277
  * (arraybuffer) => {
27277
27278
  * ok(arraybuffer);
27278
27279
  * },
@@ -27705,56 +27706,9 @@ var _primitiveType4=eachGeometryPrimitiveType[_geometryIndex4];var primitiveName
27705
27706
  var metaModel=new MetaModel({metaScene:this.viewer.metaScene,id:modelId});this.viewer.scene.canvas.spinner.processes++;var finish=function finish(){// this._createDefaultMetaModelIfNeeded(sceneModel, params, options);
27706
27707
  sceneModel.finalize();metaModel.finalize();_this154.viewer.scene.canvas.spinner.processes--;sceneModel.once("destroyed",function(){_this154.viewer.metaScene.destroyMetaModel(metaModel.id);});_this154.scheduleTask(function(){if(sceneModel.destroyed){return;}sceneModel.scene.fire("modelLoaded",sceneModel.id);// FIXME: Assumes listeners know order of these two events
27707
27708
  sceneModel.fire("loaded",true,false);// Don't forget the event, for late subscribers
27708
- });};var error=function error(errMsg){_this154.viewer.scene.canvas.spinner.processes--;_this154.error(errMsg);sceneModel.fire("error",errMsg);};var nextId=0;var manifestCtx={getNextId:function getNextId(){return"".concat(modelId,".").concat(nextId++);}};if(params.metaModelSrc||params.metaModelData){if(params.metaModelSrc){var metaModelSrc=params.metaModelSrc;this._dataSource.getMetaModel(metaModelSrc,function(metaModelData){if(sceneModel.destroyed){return;}metaModel.loadData(metaModelData,{includeTypes:includeTypes,excludeTypes:excludeTypes,globalizeObjectIds:options.globalizeObjectIds});if(params.src){_this154._loadModel(params.src,params,options,sceneModel,null,manifestCtx,finish,error);}else{_this154._parseModel(params.xkt,params,options,sceneModel,null,manifestCtx);finish();}},function(errMsg){error("load(): Failed to load model metadata for model '".concat(modelId," from '").concat(metaModelSrc,"' - ").concat(errMsg));});}else if(params.metaModelData){metaModel.loadData(params.metaModelData,{includeTypes:includeTypes,excludeTypes:excludeTypes,globalizeObjectIds:options.globalizeObjectIds});if(params.src){this._loadModel(params.src,params,options,sceneModel,null,manifestCtx,finish,error);}else{this._parseModel(params.xkt,params,options,sceneModel,null,manifestCtx);finish();}}}else{if(params.src){this._loadModel(params.src,params,options,sceneModel,metaModel,manifestCtx,finish,error);}else if(params.xkt){this._parseModel(params.xkt,params,options,sceneModel,metaModel,manifestCtx);finish();}else if(params.manifestSrc||params.manifest){var baseDir=params.manifestSrc?getBaseDirectory(params.manifestSrc):"";var loadJSONs=function loadJSONs(metaDataFiles,done,error){var i=0;var loadNext=function loadNext(){if(i>=metaDataFiles.length){done();}else{_this154._dataSource.getMetaModel("".concat(baseDir).concat(metaDataFiles[i]),function(metaModelData){metaModel.loadData(metaModelData,{includeTypes:includeTypes,excludeTypes:excludeTypes,globalizeObjectIds:options.globalizeObjectIds});i++;_this154.scheduleTask(loadNext,100);},error);}};loadNext();};var loadXKTs=function loadXKTs(xktFiles,done,error){var i=0;var loadNext=function loadNext(){if(i>=xktFiles.length){done();}else{_this154._dataSource.getXKT("".concat(baseDir).concat(xktFiles[i]),function(arrayBuffer){_this154._parseModel(arrayBuffer,params,options,sceneModel,metaModel,manifestCtx);i++;_this154.scheduleTask(loadNext,100);},error);}};loadNext();};if(params.manifest){var manifestData=params.manifest;var xktFiles=manifestData.xktFiles;if(!xktFiles||xktFiles.length===0){error("load(): Failed to load model manifest - manifest not valid");return;}var metaModelFiles=manifestData.metaModelFiles;if(metaModelFiles){loadJSONs(metaModelFiles,function(){loadXKTs(xktFiles,finish,error);},error);}else{loadXKTs(xktFiles,finish,error);}}else{this._dataSource.getManifest(params.manifestSrc,function(manifestData){if(sceneModel.destroyed){return;}var xktFiles=manifestData.xktFiles;if(!xktFiles||xktFiles.length===0){error("load(): Failed to load model manifest - manifest not valid");return;}var metaModelFiles=manifestData.metaModelFiles;if(metaModelFiles){loadJSONs(metaModelFiles,function(){loadXKTs(xktFiles,finish,error);},error);}else{loadXKTs(xktFiles,finish,error);}},error);}}}return sceneModel;}},{key:"_loadModel",value:function _loadModel(src,params,options,sceneModel,metaModel,manifestCtx,done,error){var _this155=this;this._dataSource.getXKT(params.src,function(arrayBuffer){_this155._parseModel(arrayBuffer,params,options,sceneModel,metaModel,manifestCtx);done();},error);}},{key:"_parseModel",value:function _parseModel(arrayBuffer,params,options,sceneModel,metaModel,manifestCtx){if(sceneModel.destroyed){return;}var dataView=new DataView(arrayBuffer);var dataArray=new Uint8Array(arrayBuffer);var xktVersion=dataView.getUint32(0,true);var parser=parsers[xktVersion];if(!parser){this.error("Unsupported .XKT file version: "+xktVersion+" - this XKTLoaderPlugin supports versions "+Object.keys(parsers));return;}this.log("Loading .xkt V"+xktVersion);var numElements=dataView.getUint32(4,true);var elements=[];var byteOffset=(numElements+2)*4;for(var _i568=0;_i568<numElements;_i568++){var elementSize=dataView.getUint32((_i568+2)*4,true);elements.push(dataArray.subarray(byteOffset,byteOffset+elementSize));byteOffset+=elementSize;}parser.parse(this.viewer,options,elements,sceneModel,metaModel,manifestCtx);}// _createDefaultMetaModelIfNeeded(sceneModel, params, options) {
27709
- //
27710
- // const metaModelId = sceneModel.id;
27711
- //
27712
- // if (!this.viewer.metaScene.metaModels[metaModelId]) {
27713
- //
27714
- // const metaModelData = {
27715
- // metaObjects: []
27716
- // };
27717
- //
27718
- // metaModelData.metaObjects.push({
27719
- // id: metaModelId,
27720
- // type: "default",
27721
- // name: metaModelId,
27722
- // parent: null
27723
- // });
27724
- //
27725
- // const entityList = sceneModel.entityList;
27726
- //
27727
- // for (let i = 0, len = entityList.length; i < len; i++) {
27728
- // const entity = entityList[i];
27729
- // if (entity.isObject) {
27730
- // metaModelData.metaObjects.push({
27731
- // id: entity.id,
27732
- // type: "default",
27733
- // name: entity.id,
27734
- // parent: metaModelId
27735
- // });
27736
- // }
27737
- // }
27738
- //
27739
- // const src = params.src;
27740
- //
27741
- // this.viewer.metaScene.createMetaModel(metaModelId, metaModelData, {
27742
- //
27743
- // includeTypes: options.includeTypes,
27744
- // excludeTypes: options.excludeTypes,
27745
- // globalizeObjectIds: options.globalizeObjectIds,
27746
- //
27747
- // getProperties: async (propertiesId) => {
27748
- // return await this._dataSource.getProperties(src, propertiesId);
27749
- // }
27750
- // });
27751
- //
27752
- // sceneModel.once("destroyed", () => {
27753
- // this.viewer.metaScene.destroyMetaModel(metaModelId);
27754
- // });
27755
- // }
27756
- // }
27757
- }]);return XKTLoaderPlugin;}(Plugin);function getBaseDirectory(filePath){var pathArray=filePath.split('/');pathArray.pop();// Remove the file name or the last segment of the path
27709
+ });};var error=function error(errMsg){_this154.viewer.scene.canvas.spinner.processes--;_this154.error(errMsg);sceneModel.fire("error",errMsg);};var nextId=0;var manifestCtx={getNextId:function getNextId(){return"".concat(modelId,".").concat(nextId++);}};if(params.metaModelSrc||params.metaModelData){if(params.metaModelSrc){var metaModelSrc=params.metaModelSrc;this._dataSource.getMetaModel(metaModelSrc,function(metaModelData){if(sceneModel.destroyed){return;}metaModel.loadData(metaModelData,{includeTypes:includeTypes,excludeTypes:excludeTypes,globalizeObjectIds:options.globalizeObjectIds});if(params.src){_this154._loadModel(params.src,params,options,sceneModel,null,manifestCtx,finish,error);}else{_this154._parseModel(params.xkt,params,options,sceneModel,null,manifestCtx);finish();}},function(errMsg){error("load(): Failed to load model metadata for model '".concat(modelId," from '").concat(metaModelSrc,"' - ").concat(errMsg));});}else if(params.metaModelData){metaModel.loadData(params.metaModelData,{includeTypes:includeTypes,excludeTypes:excludeTypes,globalizeObjectIds:options.globalizeObjectIds});if(params.src){this._loadModel(params.src,params,options,sceneModel,null,manifestCtx,finish,error);}else{this._parseModel(params.xkt,params,options,sceneModel,null,manifestCtx);finish();}}}else{if(params.src){this._loadModel(params.src,params,options,sceneModel,metaModel,manifestCtx,finish,error);}else if(params.xkt){this._parseModel(params.xkt,params,options,sceneModel,metaModel,manifestCtx);finish();}else if(params.manifestSrc||params.manifest){var baseDir=params.manifestSrc?getBaseDirectory(params.manifestSrc):"";var loadJSONs=function loadJSONs(metaDataFiles,done,error){var i=0;var loadNext=function loadNext(){if(i>=metaDataFiles.length){done();}else{_this154._dataSource.getMetaModel("".concat(baseDir).concat(metaDataFiles[i]),function(metaModelData){metaModel.loadData(metaModelData,{includeTypes:includeTypes,excludeTypes:excludeTypes,globalizeObjectIds:options.globalizeObjectIds});i++;_this154.scheduleTask(loadNext,100);},error);}};loadNext();};var loadXKTs_excludeTheirMetaModels=function loadXKTs_excludeTheirMetaModels(xktFiles,done,error){// Load XKTs, ignore metamodels in the XKT
27710
+ var i=0;var loadNext=function loadNext(){if(i>=xktFiles.length){done();}else{_this154._dataSource.getXKT("".concat(baseDir).concat(xktFiles[i]),function(arrayBuffer){_this154._parseModel(arrayBuffer,params,options,sceneModel,null/* Ignore metamodel in XKT */,manifestCtx);i++;_this154.scheduleTask(loadNext,100);},error);}};loadNext();};var loadXKTs_includeTheirMetaModels=function loadXKTs_includeTheirMetaModels(xktFiles,done,error){// Load XKTs, parse metamodels from the XKT
27711
+ var i=0;var loadNext=function loadNext(){if(i>=xktFiles.length){done();}else{_this154._dataSource.getXKT("".concat(baseDir).concat(xktFiles[i]),function(arrayBuffer){_this154._parseModel(arrayBuffer,params,options,sceneModel,metaModel,manifestCtx);i++;_this154.scheduleTask(loadNext,100);},error);}};loadNext();};if(params.manifest){var manifestData=params.manifest;var xktFiles=manifestData.xktFiles;if(!xktFiles||xktFiles.length===0){error("load(): Failed to load model manifest - manifest not valid");return;}var metaModelFiles=manifestData.metaModelFiles;if(metaModelFiles){loadJSONs(metaModelFiles,function(){loadXKTs_excludeTheirMetaModels(xktFiles,finish,error);},error);}else{loadXKTs_includeTheirMetaModels(xktFiles,finish,error);}}else{this._dataSource.getManifest(params.manifestSrc,function(manifestData){if(sceneModel.destroyed){return;}var xktFiles=manifestData.xktFiles;if(!xktFiles||xktFiles.length===0){error("load(): Failed to load model manifest - manifest not valid");return;}var metaModelFiles=manifestData.metaModelFiles;if(metaModelFiles){loadJSONs(metaModelFiles,function(){loadXKTs_excludeTheirMetaModels(xktFiles,finish,error);},error);}else{loadXKTs_includeTheirMetaModels(xktFiles,finish,error);}},error);}}}return sceneModel;}},{key:"_loadModel",value:function _loadModel(src,params,options,sceneModel,metaModel,manifestCtx,done,error){var _this155=this;this._dataSource.getXKT(params.src,function(arrayBuffer){_this155._parseModel(arrayBuffer,params,options,sceneModel,metaModel,manifestCtx);done();},error);}},{key:"_parseModel",value:function _parseModel(arrayBuffer,params,options,sceneModel,metaModel,manifestCtx){if(sceneModel.destroyed){return;}var dataView=new DataView(arrayBuffer);var dataArray=new Uint8Array(arrayBuffer);var xktVersion=dataView.getUint32(0,true);var parser=parsers[xktVersion];if(!parser){this.error("Unsupported .XKT file version: "+xktVersion+" - this XKTLoaderPlugin supports versions "+Object.keys(parsers));return;}this.log("Loading .xkt V"+xktVersion);var numElements=dataView.getUint32(4,true);var elements=[];var byteOffset=(numElements+2)*4;for(var _i568=0;_i568<numElements;_i568++){var elementSize=dataView.getUint32((_i568+2)*4,true);elements.push(dataArray.subarray(byteOffset,byteOffset+elementSize));byteOffset+=elementSize;}parser.parse(this.viewer,options,elements,sceneModel,metaModel,manifestCtx);}}]);return XKTLoaderPlugin;}(Plugin);function getBaseDirectory(filePath){var pathArray=filePath.split('/');pathArray.pop();// Remove the file name or the last segment of the path
27758
27712
  return pathArray.join('/')+'/';}/*
27759
27713
  Copyright (c) 2013 Gildas Lormeau. All rights reserved.
27760
27714