@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.
- package/dist/xeokit-sdk.cjs.js +26 -58
- package/dist/xeokit-sdk.es.js +26 -58
- package/dist/xeokit-sdk.es5.js +7 -53
- package/dist/xeokit-sdk.min.cjs.js +2 -2
- package/dist/xeokit-sdk.min.es.js +2 -2
- package/dist/xeokit-sdk.min.es5.js +2 -2
- package/package.json +1 -1
- package/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +23 -58
- package/src/viewer/metadata/MetaModel.js +3 -0
package/dist/xeokit-sdk.cjs.js
CHANGED
|
@@ -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(
|
|
127609
|
+
* getXKT(src, ok, error) {
|
|
127607
127610
|
* console.log("MyDataSource#getXKT(" + xKTSrc + ", ... )");
|
|
127608
|
-
* utils.loadArraybuffer(
|
|
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(
|
|
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
|
|
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
|
-
|
|
128341
|
+
loadXKTs_excludeTheirMetaModels(xktFiles, finish, error);
|
|
128324
128342
|
}, error);
|
|
128325
128343
|
} else {
|
|
128326
|
-
|
|
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
|
-
|
|
128359
|
+
loadXKTs_excludeTheirMetaModels(xktFiles, finish, error);
|
|
128342
128360
|
}, error);
|
|
128343
128361
|
} else {
|
|
128344
|
-
|
|
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) {
|
package/dist/xeokit-sdk.es.js
CHANGED
|
@@ -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(
|
|
127605
|
+
* getXKT(src, ok, error) {
|
|
127603
127606
|
* console.log("MyDataSource#getXKT(" + xKTSrc + ", ... )");
|
|
127604
|
-
* utils.loadArraybuffer(
|
|
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(
|
|
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
|
|
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
|
-
|
|
128337
|
+
loadXKTs_excludeTheirMetaModels(xktFiles, finish, error);
|
|
128320
128338
|
}, error);
|
|
128321
128339
|
} else {
|
|
128322
|
-
|
|
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
|
-
|
|
128355
|
+
loadXKTs_excludeTheirMetaModels(xktFiles, finish, error);
|
|
128338
128356
|
}, error);
|
|
128339
128357
|
} else {
|
|
128340
|
-
|
|
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) {
|
package/dist/xeokit-sdk.es5.js
CHANGED
|
@@ -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];
|
|
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(
|
|
27274
|
+
* getXKT(src, ok, error) {
|
|
27274
27275
|
* console.log("MyDataSource#getXKT(" + xKTSrc + ", ... )");
|
|
27275
|
-
* utils.loadArraybuffer(
|
|
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
|
|
27709
|
-
//
|
|
27710
|
-
|
|
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
|
|