@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xeokit/xeokit-sdk",
3
- "version": "2.6.0-beta-4",
3
+ "version": "2.6.0-beta-6",
4
4
  "description": "Web Programming Toolkit for 3D/2D BIM and AEC Graphics",
5
5
  "module": "./dist/xeokit-sdk.es.js",
6
6
  "main": "./dist/xeokit-sdk.cjs.js",
@@ -355,9 +355,9 @@ parsers[ParserV10.version] = ParserV10;
355
355
  * }
356
356
  *
357
357
  * // Gets the contents of the given .XKT file in an arraybuffer
358
- * getXKT(xKTSrc, ok, error) {
358
+ * getXKT(src, ok, error) {
359
359
  * console.log("MyDataSource#getXKT(" + xKTSrc + ", ... )");
360
- * utils.loadArraybuffer(xKTSrc,
360
+ * utils.loadArraybuffer(src,
361
361
  * (arraybuffer) => {
362
362
  * ok(arraybuffer);
363
363
  * },
@@ -1041,13 +1041,28 @@ class XKTLoaderPlugin extends Plugin {
1041
1041
  globalizeObjectIds: options.globalizeObjectIds
1042
1042
  });
1043
1043
  i++;
1044
- this.scheduleTask( loadNext, 100);
1044
+ this.scheduleTask(loadNext, 100);
1045
1045
  }, error);
1046
1046
  }
1047
1047
  }
1048
1048
  loadNext();
1049
1049
  }
1050
- const loadXKTs = (xktFiles, done, error) => {
1050
+ const loadXKTs_excludeTheirMetaModels = (xktFiles, done, error) => { // Load XKTs, ignore metamodels in the XKT
1051
+ let i = 0;
1052
+ const loadNext = () => {
1053
+ if (i >= xktFiles.length) {
1054
+ done();
1055
+ } else {
1056
+ this._dataSource.getXKT(`${baseDir}${xktFiles[i]}`, (arrayBuffer) => {
1057
+ this._parseModel(arrayBuffer, params, options, sceneModel, null /* Ignore metamodel in XKT */, manifestCtx);
1058
+ i++;
1059
+ this.scheduleTask(loadNext, 100);
1060
+ }, error);
1061
+ }
1062
+ }
1063
+ loadNext();
1064
+ };
1065
+ const loadXKTs_includeTheirMetaModels = (xktFiles, done, error) => { // Load XKTs, parse metamodels from the XKT
1051
1066
  let i = 0;
1052
1067
  const loadNext = () => {
1053
1068
  if (i >= xktFiles.length) {
@@ -1072,10 +1087,10 @@ class XKTLoaderPlugin extends Plugin {
1072
1087
  const metaModelFiles = manifestData.metaModelFiles;
1073
1088
  if (metaModelFiles) {
1074
1089
  loadJSONs(metaModelFiles, () => {
1075
- loadXKTs(xktFiles, finish, error);
1090
+ loadXKTs_excludeTheirMetaModels(xktFiles, finish, error);
1076
1091
  }, error);
1077
1092
  } else {
1078
- loadXKTs(xktFiles, finish, error);
1093
+ loadXKTs_includeTheirMetaModels(xktFiles, finish, error);
1079
1094
  }
1080
1095
  } else {
1081
1096
  this._dataSource.getManifest(params.manifestSrc, (manifestData) => {
@@ -1090,10 +1105,10 @@ class XKTLoaderPlugin extends Plugin {
1090
1105
  const metaModelFiles = manifestData.metaModelFiles;
1091
1106
  if (metaModelFiles) {
1092
1107
  loadJSONs(metaModelFiles, () => {
1093
- loadXKTs(xktFiles, finish, error);
1108
+ loadXKTs_excludeTheirMetaModels(xktFiles, finish, error);
1094
1109
  }, error);
1095
1110
  } else {
1096
- loadXKTs(xktFiles, finish, error);
1111
+ loadXKTs_includeTheirMetaModels(xktFiles, finish, error);
1097
1112
  }
1098
1113
  }, error);
1099
1114
  }
@@ -1133,56 +1148,6 @@ class XKTLoaderPlugin extends Plugin {
1133
1148
  }
1134
1149
  parser.parse(this.viewer, options, elements, sceneModel, metaModel, manifestCtx);
1135
1150
  }
1136
-
1137
- // _createDefaultMetaModelIfNeeded(sceneModel, params, options) {
1138
- //
1139
- // const metaModelId = sceneModel.id;
1140
- //
1141
- // if (!this.viewer.metaScene.metaModels[metaModelId]) {
1142
- //
1143
- // const metaModelData = {
1144
- // metaObjects: []
1145
- // };
1146
- //
1147
- // metaModelData.metaObjects.push({
1148
- // id: metaModelId,
1149
- // type: "default",
1150
- // name: metaModelId,
1151
- // parent: null
1152
- // });
1153
- //
1154
- // const entityList = sceneModel.entityList;
1155
- //
1156
- // for (let i = 0, len = entityList.length; i < len; i++) {
1157
- // const entity = entityList[i];
1158
- // if (entity.isObject) {
1159
- // metaModelData.metaObjects.push({
1160
- // id: entity.id,
1161
- // type: "default",
1162
- // name: entity.id,
1163
- // parent: metaModelId
1164
- // });
1165
- // }
1166
- // }
1167
- //
1168
- // const src = params.src;
1169
- //
1170
- // this.viewer.metaScene.createMetaModel(metaModelId, metaModelData, {
1171
- //
1172
- // includeTypes: options.includeTypes,
1173
- // excludeTypes: options.excludeTypes,
1174
- // globalizeObjectIds: options.globalizeObjectIds,
1175
- //
1176
- // getProperties: async (propertiesId) => {
1177
- // return await this._dataSource.getProperties(src, propertiesId);
1178
- // }
1179
- // });
1180
- //
1181
- // sceneModel.once("destroyed", () => {
1182
- // this.viewer.metaScene.destroyMetaModel(metaModelId);
1183
- // });
1184
- // }
1185
- // }
1186
1151
  }
1187
1152
 
1188
1153
  function getBaseDirectory(filePath) {
@@ -178,6 +178,9 @@ class MetaModel {
178
178
  if (metaModelData.propertySets) {
179
179
  for (let i = 0, len = metaModelData.propertySets.length; i < len; i++) {
180
180
  const propertySetData = metaModelData.propertySets[i];
181
+ if (!propertySetData.properties) { // HACK: https://github.com/Creoox/creoox-ifc2gltfcxconverter/issues/8
182
+ propertySetData.properties = [];
183
+ }
181
184
  let propertySet = metaScene.propertySets[propertySetData.id];
182
185
  if (!propertySet) {
183
186
  if (propertyLookup) {