@loaders.gl/tile-converter 3.3.0-alpha.1 → 3.3.0-alpha.2
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/3d-tiles-attributes-worker.js +3 -3
- package/dist/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/converter.min.js +10 -10
- package/dist/dist.min.js +791 -554
- package/dist/es5/3d-tiles-attributes-worker.js +1 -1
- package/dist/es5/i3s-attributes-worker.js +1 -1
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +15 -4
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/feature-attributes.js +60 -0
- package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js +39 -7
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +161 -49
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/node-pages.js +102 -46
- package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +235 -141
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/lib/utils/write-queue.js +66 -28
- package/dist/es5/lib/utils/write-queue.js.map +1 -1
- package/dist/es5/pgm-loader.js +1 -1
- package/dist/esm/3d-tiles-attributes-worker.js +1 -1
- package/dist/esm/i3s-attributes-worker.js +1 -1
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +15 -4
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/feature-attributes.js +34 -0
- package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js +23 -7
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +132 -30
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/node-pages.js +3 -3
- package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +32 -42
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/lib/utils/write-queue.js +10 -0
- package/dist/esm/lib/utils/write-queue.js.map +1 -1
- package/dist/esm/pgm-loader.js +1 -1
- package/dist/i3s-attributes-worker.js +3 -3
- package/dist/i3s-attributes-worker.js.map +2 -2
- package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/batch-ids-extensions.js +12 -1
- package/dist/i3s-converter/helpers/feature-attributes.d.ts +24 -0
- package/dist/i3s-converter/helpers/feature-attributes.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/feature-attributes.js +55 -0
- package/dist/i3s-converter/helpers/geometry-attributes.js +26 -7
- package/dist/i3s-converter/helpers/geometry-converter.d.ts +9 -2
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-converter.js +124 -33
- package/dist/i3s-converter/helpers/node-pages.js +3 -3
- package/dist/i3s-converter/i3s-converter.d.ts +7 -14
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.js +56 -50
- package/dist/i3s-converter/types.d.ts +0 -48
- package/dist/i3s-converter/types.d.ts.map +1 -1
- package/dist/lib/utils/write-queue.d.ts +1 -0
- package/dist/lib/utils/write-queue.d.ts.map +1 -1
- package/dist/lib/utils/write-queue.js +13 -0
- package/package.json +15 -15
- package/src/i3s-converter/helpers/batch-ids-extensions.ts +22 -5
- package/src/i3s-converter/helpers/feature-attributes.ts +65 -0
- package/src/i3s-converter/helpers/geometry-attributes.ts +30 -7
- package/src/i3s-converter/helpers/geometry-converter.ts +161 -37
- package/src/i3s-converter/helpers/node-pages.ts +3 -3
- package/src/i3s-converter/i3s-converter.ts +41 -51
- package/src/i3s-converter/types.ts +0 -51
- package/src/lib/utils/write-queue.ts +12 -0
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = convertB3dmToI3sGeometry;
|
|
9
9
|
exports.convertAttributes = convertAttributes;
|
|
10
|
+
exports.getPropertyTable = getPropertyTable;
|
|
10
11
|
|
|
11
12
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
12
13
|
|
|
@@ -34,6 +35,8 @@ var _gltfAttributes = require("./gltf-attributes");
|
|
|
34
35
|
|
|
35
36
|
var _batchIdsExtensions = require("./batch-ids-extensions");
|
|
36
37
|
|
|
38
|
+
var _featureAttributes = require("./feature-attributes");
|
|
39
|
+
|
|
37
40
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
38
41
|
|
|
39
42
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
@@ -54,14 +57,16 @@ var SHORT_INT_TYPE = 'Int32';
|
|
|
54
57
|
var DOUBLE_TYPE = 'Float64';
|
|
55
58
|
var OBJECT_ID_TYPE = 'Oid32';
|
|
56
59
|
var BATCHED_ID_POSSIBLE_ATTRIBUTE_NAMES = ['CUSTOM_ATTRIBUTE_2', '_BATCHID', 'BATCHID'];
|
|
60
|
+
var EXT_FEATURE_METADATA = 'EXT_feature_metadata';
|
|
61
|
+
var EXT_MESH_FEATURES = 'EXT_mesh_features';
|
|
57
62
|
var scratchVector = new _core.Vector3();
|
|
58
63
|
|
|
59
|
-
function convertB3dmToI3sGeometry(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8) {
|
|
64
|
+
function convertB3dmToI3sGeometry(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8, _x9) {
|
|
60
65
|
return _convertB3dmToI3sGeometry.apply(this, arguments);
|
|
61
66
|
}
|
|
62
67
|
|
|
63
68
|
function _convertB3dmToI3sGeometry() {
|
|
64
|
-
_convertB3dmToI3sGeometry = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tileContent, nodeId, featuresHashArray, attributeStorageInfo, draco, generateBoundingVolumes, geoidHeightModel, workerSource) {
|
|
69
|
+
_convertB3dmToI3sGeometry = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tileContent, nodeId, propertyTable, featuresHashArray, attributeStorageInfo, draco, generateBoundingVolumes, geoidHeightModel, workerSource) {
|
|
65
70
|
var _tileContent$gltf;
|
|
66
71
|
|
|
67
72
|
var useCartesianPositions, materialAndTextureList, dataForAttributesConversion, convertedAttributesMap, result, nodesCounter, _ref3, _ref3$materials, materials, i, sourceMaterial, convertedAttributes, _materialAndTextureLi, material, texture;
|
|
@@ -139,6 +144,7 @@ function _convertB3dmToI3sGeometry() {
|
|
|
139
144
|
tileContent: tileContent,
|
|
140
145
|
nodeId: nodesCounter,
|
|
141
146
|
featuresHashArray: featuresHashArray,
|
|
147
|
+
propertyTable: propertyTable,
|
|
142
148
|
attributeStorageInfo: attributeStorageInfo,
|
|
143
149
|
draco: draco,
|
|
144
150
|
workerSource: workerSource
|
|
@@ -205,7 +211,7 @@ function _generateBoundingVolumesFromGeometry(convertedAttributesMap, geoidHeigh
|
|
|
205
211
|
}
|
|
206
212
|
}
|
|
207
213
|
|
|
208
|
-
function _makeNodeResources(
|
|
214
|
+
function _makeNodeResources(_x10) {
|
|
209
215
|
return _makeNodeResources2.apply(this, arguments);
|
|
210
216
|
}
|
|
211
217
|
|
|
@@ -213,13 +219,13 @@ function _makeNodeResources2() {
|
|
|
213
219
|
_makeNodeResources2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(_ref) {
|
|
214
220
|
var _tileContent$gltf2;
|
|
215
221
|
|
|
216
|
-
var convertedAttributes, material, texture, tileContent, nodeId, featuresHashArray, attributeStorageInfo, draco, workerSource, boundingVolumes, vertexCount, _generateAttributes, faceRange, featureIds, positions, normals, colors, texCoords, featureCount, header, typedFeatureIds, fileBuffer, compressedGeometry, attributes;
|
|
222
|
+
var convertedAttributes, material, texture, tileContent, nodeId, featuresHashArray, propertyTable, attributeStorageInfo, draco, workerSource, boundingVolumes, vertexCount, _generateAttributes, faceRange, featureIds, positions, normals, colors, texCoords, featureCount, header, typedFeatureIds, fileBuffer, compressedGeometry, attributes;
|
|
217
223
|
|
|
218
224
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
219
225
|
while (1) {
|
|
220
226
|
switch (_context2.prev = _context2.next) {
|
|
221
227
|
case 0:
|
|
222
|
-
convertedAttributes = _ref.convertedAttributes, material = _ref.material, texture = _ref.texture, tileContent = _ref.tileContent, nodeId = _ref.nodeId, featuresHashArray = _ref.featuresHashArray, attributeStorageInfo = _ref.attributeStorageInfo, draco = _ref.draco, workerSource = _ref.workerSource;
|
|
228
|
+
convertedAttributes = _ref.convertedAttributes, material = _ref.material, texture = _ref.texture, tileContent = _ref.tileContent, nodeId = _ref.nodeId, featuresHashArray = _ref.featuresHashArray, propertyTable = _ref.propertyTable, attributeStorageInfo = _ref.attributeStorageInfo, draco = _ref.draco, workerSource = _ref.workerSource;
|
|
223
229
|
boundingVolumes = convertedAttributes.boundingVolumes;
|
|
224
230
|
vertexCount = convertedAttributes.positions.length / VALUES_PER_VERTEX;
|
|
225
231
|
_generateAttributes = (0, _geometryAttributes.generateAttributes)(convertedAttributes), faceRange = _generateAttributes.faceRange, featureIds = _generateAttributes.featureIds, positions = _generateAttributes.positions, normals = _generateAttributes.normals, colors = _generateAttributes.colors, texCoords = _generateAttributes.texCoords, featureCount = _generateAttributes.featureCount;
|
|
@@ -240,7 +246,12 @@ function _makeNodeResources2() {
|
|
|
240
246
|
featureIds: featureIds,
|
|
241
247
|
faceRange: faceRange
|
|
242
248
|
}, workerSource.draco) : null;
|
|
243
|
-
attributes =
|
|
249
|
+
attributes = [];
|
|
250
|
+
|
|
251
|
+
if (attributeStorageInfo && propertyTable) {
|
|
252
|
+
attributes = convertPropertyTableToAttributeBuffers(featureIds, propertyTable, attributeStorageInfo);
|
|
253
|
+
}
|
|
254
|
+
|
|
244
255
|
return _context2.abrupt("return", {
|
|
245
256
|
geometry: fileBuffer,
|
|
246
257
|
compressedGeometry: compressedGeometry,
|
|
@@ -253,7 +264,7 @@ function _makeNodeResources2() {
|
|
|
253
264
|
boundingVolumes: boundingVolumes
|
|
254
265
|
});
|
|
255
266
|
|
|
256
|
-
case
|
|
267
|
+
case 13:
|
|
257
268
|
case "end":
|
|
258
269
|
return _context2.stop();
|
|
259
270
|
}
|
|
@@ -263,13 +274,13 @@ function _makeNodeResources2() {
|
|
|
263
274
|
return _makeNodeResources2.apply(this, arguments);
|
|
264
275
|
}
|
|
265
276
|
|
|
266
|
-
function convertAttributes(
|
|
277
|
+
function convertAttributes(_x11, _x12) {
|
|
267
278
|
return _convertAttributes.apply(this, arguments);
|
|
268
279
|
}
|
|
269
280
|
|
|
270
281
|
function _convertAttributes() {
|
|
271
282
|
_convertAttributes = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(attributesData, useCartesianPositions) {
|
|
272
|
-
var gltfMaterials, nodes, cartographicOrigin, cartesianModelMatrix, attributesMap,
|
|
283
|
+
var gltfMaterials, nodes, cartographicOrigin, cartesianModelMatrix, attributesMap, _iterator7, _step7, material, _iterator8, _step8, attrKey, attributes;
|
|
273
284
|
|
|
274
285
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
275
286
|
while (1) {
|
|
@@ -277,13 +288,13 @@ function _convertAttributes() {
|
|
|
277
288
|
case 0:
|
|
278
289
|
gltfMaterials = attributesData.gltfMaterials, nodes = attributesData.nodes, cartographicOrigin = attributesData.cartographicOrigin, cartesianModelMatrix = attributesData.cartesianModelMatrix;
|
|
279
290
|
attributesMap = new Map();
|
|
280
|
-
|
|
291
|
+
_iterator7 = _createForOfIteratorHelper(gltfMaterials || [{
|
|
281
292
|
id: 'default'
|
|
282
293
|
}]);
|
|
283
294
|
|
|
284
295
|
try {
|
|
285
|
-
for (
|
|
286
|
-
material =
|
|
296
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
297
|
+
material = _step7.value;
|
|
287
298
|
attributesMap.set(material.id, {
|
|
288
299
|
positions: new Float32Array(0),
|
|
289
300
|
normals: new Float32Array(0),
|
|
@@ -295,24 +306,24 @@ function _convertAttributes() {
|
|
|
295
306
|
});
|
|
296
307
|
}
|
|
297
308
|
} catch (err) {
|
|
298
|
-
|
|
309
|
+
_iterator7.e(err);
|
|
299
310
|
} finally {
|
|
300
|
-
|
|
311
|
+
_iterator7.f();
|
|
301
312
|
}
|
|
302
313
|
|
|
303
314
|
convertNodes(nodes, cartographicOrigin, cartesianModelMatrix, attributesMap, useCartesianPositions);
|
|
304
|
-
|
|
315
|
+
_iterator8 = _createForOfIteratorHelper(attributesMap.keys());
|
|
305
316
|
_context3.prev = 6;
|
|
306
317
|
|
|
307
|
-
|
|
318
|
+
_iterator8.s();
|
|
308
319
|
|
|
309
320
|
case 8:
|
|
310
|
-
if ((
|
|
321
|
+
if ((_step8 = _iterator8.n()).done) {
|
|
311
322
|
_context3.next = 19;
|
|
312
323
|
break;
|
|
313
324
|
}
|
|
314
325
|
|
|
315
|
-
attrKey =
|
|
326
|
+
attrKey = _step8.value;
|
|
316
327
|
attributes = attributesMap.get(attrKey);
|
|
317
328
|
|
|
318
329
|
if (attributes) {
|
|
@@ -351,12 +362,12 @@ function _convertAttributes() {
|
|
|
351
362
|
_context3.prev = 21;
|
|
352
363
|
_context3.t0 = _context3["catch"](6);
|
|
353
364
|
|
|
354
|
-
|
|
365
|
+
_iterator8.e(_context3.t0);
|
|
355
366
|
|
|
356
367
|
case 24:
|
|
357
368
|
_context3.prev = 24;
|
|
358
369
|
|
|
359
|
-
|
|
370
|
+
_iterator8.f();
|
|
360
371
|
|
|
361
372
|
return _context3.finish(24);
|
|
362
373
|
|
|
@@ -875,43 +886,47 @@ function replaceIndicesByUnique(indicesArray, featureMap) {
|
|
|
875
886
|
}
|
|
876
887
|
}
|
|
877
888
|
|
|
878
|
-
function
|
|
889
|
+
function convertPropertyTableToAttributeBuffers(featureIds, propertyTable, attributeStorageInfo) {
|
|
879
890
|
var attributeBuffers = [];
|
|
891
|
+
var needFlattenPropertyTable = (0, _featureAttributes.checkPropertiesLength)(featureIds, propertyTable);
|
|
892
|
+
var properties = needFlattenPropertyTable ? (0, _featureAttributes.flattenPropertyTableByFeatureIds)(featureIds, propertyTable) : propertyTable;
|
|
893
|
+
|
|
894
|
+
var propertyTableWithObjectIds = _objectSpread({
|
|
895
|
+
OBJECTID: featureIds
|
|
896
|
+
}, properties);
|
|
897
|
+
|
|
898
|
+
for (var propertyName in propertyTableWithObjectIds) {
|
|
899
|
+
var type = getAttributeType(propertyName, attributeStorageInfo);
|
|
900
|
+
var value = propertyTableWithObjectIds[propertyName];
|
|
901
|
+
var attributeBuffer = generateAttributeBuffer(type, value);
|
|
902
|
+
attributeBuffers.push(attributeBuffer);
|
|
903
|
+
}
|
|
880
904
|
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
OBJECTID: featureIds
|
|
884
|
-
}, batchTable);
|
|
885
|
-
|
|
886
|
-
for (var _key2 in batchTableWithFeatureIds) {
|
|
887
|
-
var type = getAttributeType(_key2, attributeStorageInfo);
|
|
888
|
-
var attributeBuffer = null;
|
|
905
|
+
return attributeBuffers;
|
|
906
|
+
}
|
|
889
907
|
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
case SHORT_INT_TYPE:
|
|
893
|
-
attributeBuffer = generateShortIntegerAttributeBuffer(batchTableWithFeatureIds[_key2]);
|
|
894
|
-
break;
|
|
908
|
+
function generateAttributeBuffer(type, value) {
|
|
909
|
+
var attributeBuffer;
|
|
895
910
|
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
911
|
+
switch (type) {
|
|
912
|
+
case OBJECT_ID_TYPE:
|
|
913
|
+
case SHORT_INT_TYPE:
|
|
914
|
+
attributeBuffer = generateShortIntegerAttributeBuffer(value);
|
|
915
|
+
break;
|
|
899
916
|
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
917
|
+
case DOUBLE_TYPE:
|
|
918
|
+
attributeBuffer = generateDoubleAttributeBuffer(value);
|
|
919
|
+
break;
|
|
903
920
|
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
921
|
+
case STRING_TYPE:
|
|
922
|
+
attributeBuffer = generateStringAttributeBuffer(value);
|
|
923
|
+
break;
|
|
907
924
|
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
}
|
|
911
|
-
}
|
|
925
|
+
default:
|
|
926
|
+
attributeBuffer = generateStringAttributeBuffer(value);
|
|
912
927
|
}
|
|
913
928
|
|
|
914
|
-
return
|
|
929
|
+
return attributeBuffer;
|
|
915
930
|
}
|
|
916
931
|
|
|
917
932
|
function getAttributeType(key, attributeStorageInfo) {
|
|
@@ -963,7 +978,7 @@ function generateBigUint64Array(featureIds) {
|
|
|
963
978
|
return typedFeatureIds;
|
|
964
979
|
}
|
|
965
980
|
|
|
966
|
-
function generateCompressedGeometry(
|
|
981
|
+
function generateCompressedGeometry(_x13, _x14, _x15, _x16) {
|
|
967
982
|
return _generateCompressedGeometry.apply(this, arguments);
|
|
968
983
|
}
|
|
969
984
|
|
|
@@ -1037,4 +1052,101 @@ function generateFeatureIndexAttribute(featureIndex, faceRange) {
|
|
|
1037
1052
|
|
|
1038
1053
|
return orderedFeatureIndices;
|
|
1039
1054
|
}
|
|
1055
|
+
|
|
1056
|
+
function getPropertyTable(sourceTile) {
|
|
1057
|
+
var _sourceTile$content;
|
|
1058
|
+
|
|
1059
|
+
var batchTableJson = sourceTile === null || sourceTile === void 0 ? void 0 : (_sourceTile$content = sourceTile.content) === null || _sourceTile$content === void 0 ? void 0 : _sourceTile$content.batchTableJson;
|
|
1060
|
+
|
|
1061
|
+
if (batchTableJson) {
|
|
1062
|
+
return batchTableJson;
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
var _getPropertyTableExte = getPropertyTableExtension(sourceTile),
|
|
1066
|
+
extensionName = _getPropertyTableExte.extensionName,
|
|
1067
|
+
extension = _getPropertyTableExte.extension;
|
|
1068
|
+
|
|
1069
|
+
switch (extensionName) {
|
|
1070
|
+
case EXT_MESH_FEATURES:
|
|
1071
|
+
{
|
|
1072
|
+
console.warn('The I3S converter does not yet support the EXT_mesh_features extension');
|
|
1073
|
+
return null;
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1076
|
+
case EXT_FEATURE_METADATA:
|
|
1077
|
+
{
|
|
1078
|
+
return getPropertyTableFromExtFeatureMetadata(extension);
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
default:
|
|
1082
|
+
return null;
|
|
1083
|
+
}
|
|
1084
|
+
}
|
|
1085
|
+
|
|
1086
|
+
function getPropertyTableExtension(sourceTile) {
|
|
1087
|
+
var _sourceTile$content2, _sourceTile$content2$, _sourceTile$content3, _sourceTile$content3$, _sourceTile$content3$2, _sourceTile$content4, _sourceTile$content4$;
|
|
1088
|
+
|
|
1089
|
+
var extensionsWithPropertyTables = [EXT_FEATURE_METADATA, EXT_MESH_FEATURES];
|
|
1090
|
+
var extensionsUsed = sourceTile === null || sourceTile === void 0 ? void 0 : (_sourceTile$content2 = sourceTile.content) === null || _sourceTile$content2 === void 0 ? void 0 : (_sourceTile$content2$ = _sourceTile$content2.gltf) === null || _sourceTile$content2$ === void 0 ? void 0 : _sourceTile$content2$.extensionsUsed;
|
|
1091
|
+
|
|
1092
|
+
if (!extensionsUsed) {
|
|
1093
|
+
return {
|
|
1094
|
+
extensionName: null,
|
|
1095
|
+
extension: null
|
|
1096
|
+
};
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1099
|
+
var extensionName = '';
|
|
1100
|
+
|
|
1101
|
+
var _iterator6 = _createForOfIteratorHelper(sourceTile === null || sourceTile === void 0 ? void 0 : (_sourceTile$content4 = sourceTile.content) === null || _sourceTile$content4 === void 0 ? void 0 : (_sourceTile$content4$ = _sourceTile$content4.gltf) === null || _sourceTile$content4$ === void 0 ? void 0 : _sourceTile$content4$.extensionsUsed),
|
|
1102
|
+
_step6;
|
|
1103
|
+
|
|
1104
|
+
try {
|
|
1105
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
1106
|
+
var extensionItem = _step6.value;
|
|
1107
|
+
|
|
1108
|
+
if (extensionsWithPropertyTables.includes(extensionItem)) {
|
|
1109
|
+
extensionName = extensionItem;
|
|
1110
|
+
break;
|
|
1111
|
+
}
|
|
1112
|
+
}
|
|
1113
|
+
} catch (err) {
|
|
1114
|
+
_iterator6.e(err);
|
|
1115
|
+
} finally {
|
|
1116
|
+
_iterator6.f();
|
|
1117
|
+
}
|
|
1118
|
+
|
|
1119
|
+
var extension = sourceTile === null || sourceTile === void 0 ? void 0 : (_sourceTile$content3 = sourceTile.content) === null || _sourceTile$content3 === void 0 ? void 0 : (_sourceTile$content3$ = _sourceTile$content3.gltf) === null || _sourceTile$content3$ === void 0 ? void 0 : (_sourceTile$content3$2 = _sourceTile$content3$.extensions) === null || _sourceTile$content3$2 === void 0 ? void 0 : _sourceTile$content3$2[extensionName];
|
|
1120
|
+
return {
|
|
1121
|
+
extensionName: extensionName,
|
|
1122
|
+
extension: extension
|
|
1123
|
+
};
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
function getPropertyTableFromExtFeatureMetadata(extension) {
|
|
1127
|
+
if (extension !== null && extension !== void 0 && extension.featureTextures) {
|
|
1128
|
+
console.warn('The I3S converter does not yet support the EXT_feature_metadata feature textures');
|
|
1129
|
+
return null;
|
|
1130
|
+
}
|
|
1131
|
+
|
|
1132
|
+
if (extension !== null && extension !== void 0 && extension.featureTables) {
|
|
1133
|
+
var _Object$keys;
|
|
1134
|
+
|
|
1135
|
+
var firstFeatureTableName = (_Object$keys = Object.keys(extension.featureTables)) === null || _Object$keys === void 0 ? void 0 : _Object$keys[0];
|
|
1136
|
+
|
|
1137
|
+
if (firstFeatureTableName) {
|
|
1138
|
+
var featureTable = extension === null || extension === void 0 ? void 0 : extension.featureTables[firstFeatureTableName];
|
|
1139
|
+
var propertyTable = {};
|
|
1140
|
+
|
|
1141
|
+
for (var propertyName in featureTable.properties) {
|
|
1142
|
+
propertyTable[propertyName] = featureTable.properties[propertyName].data;
|
|
1143
|
+
}
|
|
1144
|
+
|
|
1145
|
+
return propertyTable;
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1149
|
+
console.warn("The I3S converter couldn't handle EXT_feature_metadata extension");
|
|
1150
|
+
return null;
|
|
1151
|
+
}
|
|
1040
1152
|
//# sourceMappingURL=geometry-converter.js.map
|