@loaders.gl/tile-converter 3.2.0-alpha.1 → 3.2.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.d.ts +28 -0
- package/dist/3d-tiles-attributes-worker.d.ts.map +1 -0
- package/dist/3d-tiles-attributes-worker.js +4 -0
- package/dist/3d-tiles-attributes-worker.js.map +7 -0
- package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +4 -0
- package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
- package/dist/3d-tiles-converter/3d-tiles-converter.js +29 -3
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +5 -4
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -1
- package/dist/3d-tiles-converter/helpers/b3dm-converter.js +10 -10
- package/dist/converter.min.js +20 -20
- package/dist/dist.min.js +789 -645
- package/dist/es5/3d-tiles-attributes-worker.js +29 -0
- package/dist/es5/3d-tiles-attributes-worker.js.map +1 -0
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +102 -43
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +21 -23
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
- package/dist/es5/i3s-attributes-worker.js +29 -0
- package/dist/es5/i3s-attributes-worker.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js +19 -11
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js +2 -2
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +267 -178
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js +71 -0
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/node-pages.js +47 -99
- package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +230 -195
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/index.js +8 -0
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/utils/compress-util.js +14 -17
- package/dist/es5/lib/utils/compress-util.js.map +1 -1
- package/dist/es5/lib/utils/file-utils.js +39 -14
- package/dist/es5/lib/utils/file-utils.js.map +1 -1
- package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/es5/lib/utils/queue.js +61 -0
- package/dist/es5/lib/utils/queue.js.map +1 -0
- package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
- package/dist/es5/lib/utils/write-queue.js +225 -0
- package/dist/es5/lib/utils/write-queue.js.map +1 -0
- package/dist/es5/pgm-loader.js +1 -1
- package/dist/es5/workers/3d-tiles-attributes-worker.js +37 -0
- package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -0
- package/dist/es5/workers/i3s-attributes-worker.js +40 -0
- package/dist/es5/workers/i3s-attributes-worker.js.map +1 -0
- package/dist/esm/3d-tiles-attributes-worker.js +16 -0
- package/dist/esm/3d-tiles-attributes-worker.js.map +1 -0
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +30 -4
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +16 -18
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
- package/dist/esm/i3s-attributes-worker.js +16 -0
- package/dist/esm/i3s-attributes-worker.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js +19 -11
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js +2 -2
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +117 -58
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js +54 -0
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/node-pages.js +12 -4
- package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +105 -28
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/utils/compress-util.js +6 -8
- package/dist/esm/lib/utils/compress-util.js.map +1 -1
- package/dist/esm/lib/utils/file-utils.js +11 -1
- package/dist/esm/lib/utils/file-utils.js.map +1 -1
- package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/esm/lib/utils/queue.js +19 -0
- package/dist/esm/lib/utils/queue.js.map +1 -0
- package/dist/esm/lib/utils/statistic-utills.js.map +1 -1
- package/dist/esm/lib/utils/write-queue.js +88 -0
- package/dist/esm/lib/utils/write-queue.js.map +1 -0
- package/dist/esm/pgm-loader.js +1 -1
- package/dist/esm/workers/3d-tiles-attributes-worker.js +5 -0
- package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -0
- package/dist/esm/workers/i3s-attributes-worker.js +4 -0
- package/dist/esm/workers/i3s-attributes-worker.js.map +1 -0
- package/dist/i3s-attributes-worker.d.ts +33 -0
- package/dist/i3s-attributes-worker.d.ts.map +1 -0
- package/dist/i3s-attributes-worker.js +10 -0
- package/dist/i3s-attributes-worker.js.map +7 -0
- package/dist/i3s-converter/helpers/coordinate-converter.d.ts +7 -7
- package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/coordinate-converter.js +25 -21
- package/dist/i3s-converter/helpers/geometry-attributes.d.ts +2 -2
- package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-attributes.js +2 -1
- package/dist/i3s-converter/helpers/geometry-converter.d.ts +28 -11
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-converter.js +220 -110
- package/dist/i3s-converter/helpers/gltf-attributes.d.ts +9 -0
- package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/gltf-attributes.js +56 -0
- package/dist/i3s-converter/helpers/node-pages.d.ts +6 -5
- package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/node-pages.js +13 -8
- package/dist/i3s-converter/i3s-converter.d.ts +7 -3
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.js +88 -26
- package/dist/i3s-converter/types.d.ts +83 -8
- package/dist/i3s-converter/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/lib/utils/compress-util.d.ts +44 -5
- package/dist/lib/utils/compress-util.d.ts.map +1 -1
- package/dist/lib/utils/compress-util.js +73 -6
- package/dist/lib/utils/file-utils.d.ts +34 -5
- package/dist/lib/utils/file-utils.d.ts.map +1 -1
- package/dist/lib/utils/file-utils.js +40 -1
- package/dist/lib/utils/lod-conversion-utils.d.ts +25 -4
- package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -1
- package/dist/lib/utils/lod-conversion-utils.js +21 -2
- package/dist/lib/utils/queue.d.ts +7 -0
- package/dist/lib/utils/queue.d.ts.map +1 -0
- package/dist/lib/utils/queue.js +18 -0
- package/dist/lib/utils/statistic-utills.d.ts +2 -2
- package/dist/lib/utils/statistic-utills.d.ts.map +1 -1
- package/dist/lib/utils/write-queue.d.ts +22 -0
- package/dist/lib/utils/write-queue.d.ts.map +1 -0
- package/dist/lib/utils/write-queue.js +62 -0
- package/dist/workers/3d-tiles-attributes-worker.d.ts +2 -0
- package/dist/workers/3d-tiles-attributes-worker.d.ts.map +1 -0
- package/dist/workers/3d-tiles-attributes-worker.js +9 -0
- package/dist/workers/i3s-attributes-worker.d.ts +2 -0
- package/dist/workers/i3s-attributes-worker.d.ts.map +1 -0
- package/dist/workers/i3s-attributes-worker.js +5 -0
- package/package.json +20 -17
- package/src/3d-tiles-attributes-worker.ts +43 -0
- package/src/3d-tiles-converter/3d-tiles-converter.ts +44 -4
- package/src/3d-tiles-converter/helpers/b3dm-converter.ts +15 -13
- package/src/i3s-attributes-worker.ts +46 -0
- package/src/i3s-converter/helpers/coordinate-converter.ts +29 -24
- package/src/i3s-converter/helpers/geometry-attributes.ts +4 -3
- package/src/i3s-converter/helpers/{geometry-converter.js → geometry-converter.ts} +421 -175
- package/src/i3s-converter/helpers/gltf-attributes.ts +68 -0
- package/src/i3s-converter/helpers/node-pages.ts +25 -17
- package/src/i3s-converter/i3s-converter.ts +112 -69
- package/src/i3s-converter/types.ts +90 -8
- package/src/index.ts +1 -0
- package/src/lib/utils/{compress-util.js → compress-util.ts} +105 -18
- package/src/lib/utils/file-utils.ts +84 -0
- package/src/lib/utils/{lod-conversion-utils.js → lod-conversion-utils.ts} +27 -5
- package/src/lib/utils/queue.ts +17 -0
- package/src/lib/utils/{statistic-utills.js → statistic-utills.ts} +0 -0
- package/src/lib/utils/write-queue.ts +75 -0
- package/src/workers/3d-tiles-attributes-worker.ts +6 -0
- package/src/workers/i3s-attributes-worker.ts +6 -0
- package/dist/es5/i3s-converter/helpers/geometry-converter.d.ts +0 -44
- package/dist/es5/lib/utils/compress-util.d.ts +0 -53
- package/dist/es5/lib/utils/file-utils.d.ts +0 -43
- package/dist/es5/lib/utils/lod-conversion-utils.d.ts +0 -32
- package/dist/esm/i3s-converter/helpers/geometry-converter.d.ts +0 -44
- package/dist/esm/lib/utils/compress-util.d.ts +0 -53
- package/dist/esm/lib/utils/file-utils.d.ts +0 -43
- package/dist/esm/lib/utils/lod-conversion-utils.d.ts +0 -32
- package/src/i3s-converter/helpers/geometry-converter.d.ts +0 -44
- package/src/lib/utils/compress-util.d.ts +0 -53
- package/src/lib/utils/file-utils.d.ts +0 -43
- package/src/lib/utils/file-utils.js +0 -38
- package/src/lib/utils/lod-conversion-utils.d.ts +0 -32
package/dist/dist.min.js
CHANGED
|
@@ -556,8 +556,8 @@ var require_globals2 = __commonJS({
|
|
|
556
556
|
exports.isBrowser = exports.VERSION = void 0;
|
|
557
557
|
var _isBrowser = _interopRequireDefault(require_is_browser());
|
|
558
558
|
var _globals = require_globals();
|
|
559
|
-
var
|
|
560
|
-
exports.VERSION =
|
|
559
|
+
var VERSION18 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
|
|
560
|
+
exports.VERSION = VERSION18;
|
|
561
561
|
var isBrowser3 = (0, _isBrowser.default)();
|
|
562
562
|
exports.isBrowser = isBrowser3;
|
|
563
563
|
}
|
|
@@ -1027,7 +1027,7 @@ var require_log = __commonJS({
|
|
|
1027
1027
|
enabled: true,
|
|
1028
1028
|
level: 0
|
|
1029
1029
|
};
|
|
1030
|
-
function
|
|
1030
|
+
function noop() {
|
|
1031
1031
|
}
|
|
1032
1032
|
var cache = {};
|
|
1033
1033
|
var ONCE = {
|
|
@@ -1168,18 +1168,18 @@ var require_log = __commonJS({
|
|
|
1168
1168
|
key: "table",
|
|
1169
1169
|
value: function table(logLevel, _table, columns) {
|
|
1170
1170
|
if (_table) {
|
|
1171
|
-
return this._getLogFunction(logLevel, _table, console.table ||
|
|
1171
|
+
return this._getLogFunction(logLevel, _table, console.table || noop, columns && [columns], {
|
|
1172
1172
|
tag: getTableHeader(_table)
|
|
1173
1173
|
});
|
|
1174
1174
|
}
|
|
1175
|
-
return
|
|
1175
|
+
return noop;
|
|
1176
1176
|
}
|
|
1177
1177
|
}, {
|
|
1178
1178
|
key: "image",
|
|
1179
1179
|
value: function image(_ref2) {
|
|
1180
1180
|
var logLevel = _ref2.logLevel, priority = _ref2.priority, _image = _ref2.image, _ref2$message = _ref2.message, message = _ref2$message === void 0 ? "" : _ref2$message, _ref2$scale = _ref2.scale, scale = _ref2$scale === void 0 ? 1 : _ref2$scale;
|
|
1181
1181
|
if (!this._shouldLog(logLevel || priority)) {
|
|
1182
|
-
return
|
|
1182
|
+
return noop;
|
|
1183
1183
|
}
|
|
1184
1184
|
return _globals.isBrowser ? logImageInBrowser({
|
|
1185
1185
|
image: _image,
|
|
@@ -1223,7 +1223,7 @@ var require_log = __commonJS({
|
|
|
1223
1223
|
}, {
|
|
1224
1224
|
key: "timeStamp",
|
|
1225
1225
|
value: function timeStamp(logLevel, message) {
|
|
1226
|
-
return this._getLogFunction(logLevel, message, console.timeStamp ||
|
|
1226
|
+
return this._getLogFunction(logLevel, message, console.timeStamp || noop);
|
|
1227
1227
|
}
|
|
1228
1228
|
}, {
|
|
1229
1229
|
key: "group",
|
|
@@ -1251,7 +1251,7 @@ var require_log = __commonJS({
|
|
|
1251
1251
|
}, {
|
|
1252
1252
|
key: "groupEnd",
|
|
1253
1253
|
value: function groupEnd(logLevel) {
|
|
1254
|
-
return this._getLogFunction(logLevel, "", console.groupEnd ||
|
|
1254
|
+
return this._getLogFunction(logLevel, "", console.groupEnd || noop);
|
|
1255
1255
|
}
|
|
1256
1256
|
}, {
|
|
1257
1257
|
key: "withGroup",
|
|
@@ -1298,13 +1298,13 @@ var require_log = __commonJS({
|
|
|
1298
1298
|
if (!cache[tag]) {
|
|
1299
1299
|
cache[tag] = (0, _hiResTimestamp.default)();
|
|
1300
1300
|
} else {
|
|
1301
|
-
return
|
|
1301
|
+
return noop;
|
|
1302
1302
|
}
|
|
1303
1303
|
}
|
|
1304
1304
|
message = decorateMessage(this.id, opts.message, opts);
|
|
1305
1305
|
return (_method = method).bind.apply(_method, [console, message].concat((0, _toConsumableArray2.default)(opts.args)));
|
|
1306
1306
|
}
|
|
1307
|
-
return
|
|
1307
|
+
return noop;
|
|
1308
1308
|
}
|
|
1309
1309
|
}]);
|
|
1310
1310
|
return Log4;
|
|
@@ -1381,7 +1381,7 @@ var require_log = __commonJS({
|
|
|
1381
1381
|
});
|
|
1382
1382
|
};
|
|
1383
1383
|
}
|
|
1384
|
-
return
|
|
1384
|
+
return noop;
|
|
1385
1385
|
}
|
|
1386
1386
|
function logImageInBrowser(_ref4) {
|
|
1387
1387
|
var image = _ref4.image, _ref4$message = _ref4.message, message = _ref4$message === void 0 ? "" : _ref4$message, _ref4$scale = _ref4.scale, scale = _ref4$scale === void 0 ? 1 : _ref4$scale;
|
|
@@ -1393,13 +1393,13 @@ var require_log = __commonJS({
|
|
|
1393
1393
|
(_console = console).log.apply(_console, (0, _toConsumableArray2.default)(args));
|
|
1394
1394
|
};
|
|
1395
1395
|
img.src = image;
|
|
1396
|
-
return
|
|
1396
|
+
return noop;
|
|
1397
1397
|
}
|
|
1398
1398
|
var element = image.nodeName || "";
|
|
1399
1399
|
if (element.toLowerCase() === "img") {
|
|
1400
1400
|
var _console2;
|
|
1401
1401
|
(_console2 = console).log.apply(_console2, (0, _toConsumableArray2.default)((0, _formatters.formatImage)(image, message, scale)));
|
|
1402
|
-
return
|
|
1402
|
+
return noop;
|
|
1403
1403
|
}
|
|
1404
1404
|
if (element.toLowerCase() === "canvas") {
|
|
1405
1405
|
var _img = new Image();
|
|
@@ -1408,9 +1408,9 @@ var require_log = __commonJS({
|
|
|
1408
1408
|
return (_console3 = console).log.apply(_console3, (0, _toConsumableArray2.default)((0, _formatters.formatImage)(_img, message, scale)));
|
|
1409
1409
|
};
|
|
1410
1410
|
_img.src = image.toDataURL();
|
|
1411
|
-
return
|
|
1411
|
+
return noop;
|
|
1412
1412
|
}
|
|
1413
|
-
return
|
|
1413
|
+
return noop;
|
|
1414
1414
|
}
|
|
1415
1415
|
}
|
|
1416
1416
|
});
|
|
@@ -2097,8 +2097,8 @@ var require_globals4 = __commonJS({
|
|
|
2097
2097
|
});
|
|
2098
2098
|
var _isBrowser = _interopRequireDefault(require_is_browser2());
|
|
2099
2099
|
var _globals = require_globals3();
|
|
2100
|
-
var
|
|
2101
|
-
exports.VERSION =
|
|
2100
|
+
var VERSION18 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
|
|
2101
|
+
exports.VERSION = VERSION18;
|
|
2102
2102
|
var isBrowser3 = (0, _isBrowser.default)();
|
|
2103
2103
|
exports.isBrowser = isBrowser3;
|
|
2104
2104
|
}
|
|
@@ -2681,7 +2681,7 @@ var require_log2 = __commonJS({
|
|
|
2681
2681
|
enabled: true,
|
|
2682
2682
|
level: 0
|
|
2683
2683
|
};
|
|
2684
|
-
function
|
|
2684
|
+
function noop() {
|
|
2685
2685
|
}
|
|
2686
2686
|
var cache = {};
|
|
2687
2687
|
var ONCE = {
|
|
@@ -2839,18 +2839,18 @@ var require_log2 = __commonJS({
|
|
|
2839
2839
|
key: "table",
|
|
2840
2840
|
value: function table(logLevel, _table, columns) {
|
|
2841
2841
|
if (_table) {
|
|
2842
|
-
return this._getLogFunction(logLevel, _table, console.table ||
|
|
2842
|
+
return this._getLogFunction(logLevel, _table, console.table || noop, columns && [columns], {
|
|
2843
2843
|
tag: getTableHeader(_table)
|
|
2844
2844
|
});
|
|
2845
2845
|
}
|
|
2846
|
-
return
|
|
2846
|
+
return noop;
|
|
2847
2847
|
}
|
|
2848
2848
|
}, {
|
|
2849
2849
|
key: "image",
|
|
2850
2850
|
value: function image(_ref2) {
|
|
2851
2851
|
var logLevel = _ref2.logLevel, priority = _ref2.priority, _image = _ref2.image, _ref2$message = _ref2.message, message = _ref2$message === void 0 ? "" : _ref2$message, _ref2$scale = _ref2.scale, scale = _ref2$scale === void 0 ? 1 : _ref2$scale;
|
|
2852
2852
|
if (!this._shouldLog(logLevel || priority)) {
|
|
2853
|
-
return
|
|
2853
|
+
return noop;
|
|
2854
2854
|
}
|
|
2855
2855
|
return _env.isBrowser ? logImageInBrowser({
|
|
2856
2856
|
image: _image,
|
|
@@ -2875,7 +2875,7 @@ var require_log2 = __commonJS({
|
|
|
2875
2875
|
}, {
|
|
2876
2876
|
key: "timeStamp",
|
|
2877
2877
|
value: function timeStamp(logLevel, message) {
|
|
2878
|
-
return this._getLogFunction(logLevel, message, console.timeStamp ||
|
|
2878
|
+
return this._getLogFunction(logLevel, message, console.timeStamp || noop);
|
|
2879
2879
|
}
|
|
2880
2880
|
}, {
|
|
2881
2881
|
key: "group",
|
|
@@ -2903,7 +2903,7 @@ var require_log2 = __commonJS({
|
|
|
2903
2903
|
}, {
|
|
2904
2904
|
key: "groupEnd",
|
|
2905
2905
|
value: function groupEnd(logLevel) {
|
|
2906
|
-
return this._getLogFunction(logLevel, "", console.groupEnd ||
|
|
2906
|
+
return this._getLogFunction(logLevel, "", console.groupEnd || noop);
|
|
2907
2907
|
}
|
|
2908
2908
|
}, {
|
|
2909
2909
|
key: "withGroup",
|
|
@@ -2948,13 +2948,13 @@ var require_log2 = __commonJS({
|
|
|
2948
2948
|
if (!cache[tag]) {
|
|
2949
2949
|
cache[tag] = (0, _hiResTimestamp.getHiResTimestamp)();
|
|
2950
2950
|
} else {
|
|
2951
|
-
return
|
|
2951
|
+
return noop;
|
|
2952
2952
|
}
|
|
2953
2953
|
}
|
|
2954
2954
|
message = decorateMessage(this.id, opts.message, opts);
|
|
2955
2955
|
return (_method = method).bind.apply(_method, [console, message].concat((0, _toConsumableArray2.default)(opts.args)));
|
|
2956
2956
|
}
|
|
2957
|
-
return
|
|
2957
|
+
return noop;
|
|
2958
2958
|
}
|
|
2959
2959
|
}]);
|
|
2960
2960
|
return Log4;
|
|
@@ -3032,7 +3032,7 @@ var require_log2 = __commonJS({
|
|
|
3032
3032
|
});
|
|
3033
3033
|
};
|
|
3034
3034
|
}
|
|
3035
|
-
return
|
|
3035
|
+
return noop;
|
|
3036
3036
|
}
|
|
3037
3037
|
function logImageInBrowser(_ref4) {
|
|
3038
3038
|
var image = _ref4.image, _ref4$message = _ref4.message, message = _ref4$message === void 0 ? "" : _ref4$message, _ref4$scale = _ref4.scale, scale = _ref4$scale === void 0 ? 1 : _ref4$scale;
|
|
@@ -3044,13 +3044,13 @@ var require_log2 = __commonJS({
|
|
|
3044
3044
|
(_console = console).log.apply(_console, (0, _toConsumableArray2.default)(args));
|
|
3045
3045
|
};
|
|
3046
3046
|
img.src = image;
|
|
3047
|
-
return
|
|
3047
|
+
return noop;
|
|
3048
3048
|
}
|
|
3049
3049
|
var element = image.nodeName || "";
|
|
3050
3050
|
if (element.toLowerCase() === "img") {
|
|
3051
3051
|
var _console2;
|
|
3052
3052
|
(_console2 = console).log.apply(_console2, (0, _toConsumableArray2.default)((0, _formatters.formatImage)(image, message, scale)));
|
|
3053
|
-
return
|
|
3053
|
+
return noop;
|
|
3054
3054
|
}
|
|
3055
3055
|
if (element.toLowerCase() === "canvas") {
|
|
3056
3056
|
var _img = new Image();
|
|
@@ -3059,9 +3059,9 @@ var require_log2 = __commonJS({
|
|
|
3059
3059
|
return (_console3 = console).log.apply(_console3, (0, _toConsumableArray2.default)((0, _formatters.formatImage)(_img, message, scale)));
|
|
3060
3060
|
};
|
|
3061
3061
|
_img.src = image.toDataURL();
|
|
3062
|
-
return
|
|
3062
|
+
return noop;
|
|
3063
3063
|
}
|
|
3064
|
-
return
|
|
3064
|
+
return noop;
|
|
3065
3065
|
}
|
|
3066
3066
|
function getTableHeader(table) {
|
|
3067
3067
|
for (var _key2 in table) {
|
|
@@ -10785,12 +10785,12 @@ var require_type_utils = __commonJS({
|
|
|
10785
10785
|
exports.isWGS84 = isWGS84;
|
|
10786
10786
|
var _core = require_es56();
|
|
10787
10787
|
var _constants = require_constants();
|
|
10788
|
-
var
|
|
10788
|
+
var noop = function noop2(x) {
|
|
10789
10789
|
return x;
|
|
10790
10790
|
};
|
|
10791
10791
|
var scratchVector7 = new _core.Vector3();
|
|
10792
10792
|
function fromCartographic(cartographic, result) {
|
|
10793
|
-
var map = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] :
|
|
10793
|
+
var map = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : noop;
|
|
10794
10794
|
if ((0, _core.isArray)(cartographic)) {
|
|
10795
10795
|
result[0] = map(cartographic[0]);
|
|
10796
10796
|
result[1] = map(cartographic[1]);
|
|
@@ -10808,14 +10808,14 @@ var require_type_utils = __commonJS({
|
|
|
10808
10808
|
}
|
|
10809
10809
|
function fromCartographicToRadians(cartographic) {
|
|
10810
10810
|
var vector = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : scratchVector7;
|
|
10811
|
-
return fromCartographic(cartographic, vector, _core.config._cartographicRadians ?
|
|
10811
|
+
return fromCartographic(cartographic, vector, _core.config._cartographicRadians ? noop : _core.toRadians);
|
|
10812
10812
|
}
|
|
10813
10813
|
function fromCartographicToDegrees(cartographic) {
|
|
10814
10814
|
var vector = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : scratchVector7;
|
|
10815
|
-
return fromCartographic(cartographic, vector, _core.config._cartographicRadians ? _core.toDegrees :
|
|
10815
|
+
return fromCartographic(cartographic, vector, _core.config._cartographicRadians ? _core.toDegrees : noop);
|
|
10816
10816
|
}
|
|
10817
10817
|
function toCartographic(vector, cartographic) {
|
|
10818
|
-
var map = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] :
|
|
10818
|
+
var map = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : noop;
|
|
10819
10819
|
if ((0, _core.isArray)(cartographic)) {
|
|
10820
10820
|
cartographic[0] = map(vector[0]);
|
|
10821
10821
|
cartographic[1] = map(vector[1]);
|
|
@@ -10832,10 +10832,10 @@ var require_type_utils = __commonJS({
|
|
|
10832
10832
|
return cartographic;
|
|
10833
10833
|
}
|
|
10834
10834
|
function toCartographicFromRadians(vector, cartographic) {
|
|
10835
|
-
return toCartographic(vector, cartographic, _core.config._cartographicRadians ?
|
|
10835
|
+
return toCartographic(vector, cartographic, _core.config._cartographicRadians ? noop : _core.toDegrees);
|
|
10836
10836
|
}
|
|
10837
10837
|
function toCartographicFromDegrees(vector, cartographic) {
|
|
10838
|
-
return toCartographic(vector, cartographic, _core.config._cartographicRadians ? _core.toRadians :
|
|
10838
|
+
return toCartographic(vector, cartographic, _core.config._cartographicRadians ? _core.toRadians : noop);
|
|
10839
10839
|
}
|
|
10840
10840
|
function isWGS84(vector) {
|
|
10841
10841
|
if (!vector) {
|
|
@@ -11146,12 +11146,12 @@ var require_ellipsoid = __commonJS({
|
|
|
11146
11146
|
var scratchHeight = new _core.Vector3();
|
|
11147
11147
|
var scratchCartesian = new _core.Vector3();
|
|
11148
11148
|
var wgs84;
|
|
11149
|
-
var
|
|
11150
|
-
function
|
|
11149
|
+
var Ellipsoid15 = function() {
|
|
11150
|
+
function Ellipsoid16() {
|
|
11151
11151
|
var x = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
|
|
11152
11152
|
var y = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
|
|
11153
11153
|
var z = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
|
|
11154
|
-
(0, _classCallCheck2.default)(this,
|
|
11154
|
+
(0, _classCallCheck2.default)(this, Ellipsoid16);
|
|
11155
11155
|
(0, _core.assert)(x >= 0);
|
|
11156
11156
|
(0, _core.assert)(y >= 0);
|
|
11157
11157
|
(0, _core.assert)(z >= 0);
|
|
@@ -11168,7 +11168,7 @@ var require_ellipsoid = __commonJS({
|
|
|
11168
11168
|
}
|
|
11169
11169
|
Object.freeze(this);
|
|
11170
11170
|
}
|
|
11171
|
-
(0, _createClass2.default)(
|
|
11171
|
+
(0, _createClass2.default)(Ellipsoid16, [{
|
|
11172
11172
|
key: "equals",
|
|
11173
11173
|
value: function equals(right) {
|
|
11174
11174
|
return this === right || Boolean(right && this.radii.equals(right.radii));
|
|
@@ -11291,13 +11291,13 @@ var require_ellipsoid = __commonJS({
|
|
|
11291
11291
|
}], [{
|
|
11292
11292
|
key: "WGS84",
|
|
11293
11293
|
get: function get() {
|
|
11294
|
-
wgs84 = wgs84 || new
|
|
11294
|
+
wgs84 = wgs84 || new Ellipsoid16(_constants.WGS84_RADIUS_X, _constants.WGS84_RADIUS_Y, _constants.WGS84_RADIUS_Z);
|
|
11295
11295
|
return wgs84;
|
|
11296
11296
|
}
|
|
11297
11297
|
}]);
|
|
11298
|
-
return
|
|
11298
|
+
return Ellipsoid16;
|
|
11299
11299
|
}();
|
|
11300
|
-
exports.default =
|
|
11300
|
+
exports.default = Ellipsoid15;
|
|
11301
11301
|
}
|
|
11302
11302
|
});
|
|
11303
11303
|
|
|
@@ -11492,16 +11492,16 @@ var require_bounding_sphere = __commonJS({
|
|
|
11492
11492
|
}
|
|
11493
11493
|
var scratchVector7 = new _core.Vector3();
|
|
11494
11494
|
var scratchVector23 = new _core.Vector3();
|
|
11495
|
-
var
|
|
11496
|
-
function
|
|
11495
|
+
var BoundingSphere5 = function() {
|
|
11496
|
+
function BoundingSphere6() {
|
|
11497
11497
|
var center = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [0, 0, 0];
|
|
11498
11498
|
var radius = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
|
|
11499
|
-
(0, _classCallCheck2.default)(this,
|
|
11499
|
+
(0, _classCallCheck2.default)(this, BoundingSphere6);
|
|
11500
11500
|
this.radius = -0;
|
|
11501
11501
|
this.center = new _core.Vector3();
|
|
11502
11502
|
this.fromCenterRadius(center, radius);
|
|
11503
11503
|
}
|
|
11504
|
-
(0, _createClass2.default)(
|
|
11504
|
+
(0, _createClass2.default)(BoundingSphere6, [{
|
|
11505
11505
|
key: "fromCenterRadius",
|
|
11506
11506
|
value: function fromCenterRadius(center, radius) {
|
|
11507
11507
|
this.center.from(center);
|
|
@@ -11524,7 +11524,7 @@ var require_bounding_sphere = __commonJS({
|
|
|
11524
11524
|
}, {
|
|
11525
11525
|
key: "clone",
|
|
11526
11526
|
value: function clone2() {
|
|
11527
|
-
return new
|
|
11527
|
+
return new BoundingSphere6(this.center, this.radius);
|
|
11528
11528
|
}
|
|
11529
11529
|
}, {
|
|
11530
11530
|
key: "union",
|
|
@@ -11593,9 +11593,9 @@ var require_bounding_sphere = __commonJS({
|
|
|
11593
11593
|
return _constants.INTERSECTION.INSIDE;
|
|
11594
11594
|
}
|
|
11595
11595
|
}]);
|
|
11596
|
-
return
|
|
11596
|
+
return BoundingSphere6;
|
|
11597
11597
|
}();
|
|
11598
|
-
exports.default =
|
|
11598
|
+
exports.default = BoundingSphere5;
|
|
11599
11599
|
}
|
|
11600
11600
|
});
|
|
11601
11601
|
|
|
@@ -17410,7 +17410,7 @@ var require_graceful_fs = __commonJS({
|
|
|
17410
17410
|
gracefulQueue = "___graceful-fs.queue";
|
|
17411
17411
|
previousSymbol = "___graceful-fs.previous";
|
|
17412
17412
|
}
|
|
17413
|
-
function
|
|
17413
|
+
function noop() {
|
|
17414
17414
|
}
|
|
17415
17415
|
function publishQueue(context, queue2) {
|
|
17416
17416
|
Object.defineProperty(context, gracefulQueue, {
|
|
@@ -17419,7 +17419,7 @@ var require_graceful_fs = __commonJS({
|
|
|
17419
17419
|
}
|
|
17420
17420
|
});
|
|
17421
17421
|
}
|
|
17422
|
-
var debug =
|
|
17422
|
+
var debug = noop;
|
|
17423
17423
|
if (util2.debuglog)
|
|
17424
17424
|
debug = util2.debuglog("gfs4");
|
|
17425
17425
|
else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || ""))
|
|
@@ -20885,7 +20885,7 @@ var require_lodash4 = __commonJS({
|
|
|
20885
20885
|
}
|
|
20886
20886
|
return result;
|
|
20887
20887
|
}
|
|
20888
|
-
var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ?
|
|
20888
|
+
var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop : function(values) {
|
|
20889
20889
|
return new Set2(values);
|
|
20890
20890
|
};
|
|
20891
20891
|
function getMapData(map, key) {
|
|
@@ -20949,7 +20949,7 @@ var require_lodash4 = __commonJS({
|
|
|
20949
20949
|
function isObjectLike(value) {
|
|
20950
20950
|
return !!value && typeof value == "object";
|
|
20951
20951
|
}
|
|
20952
|
-
function
|
|
20952
|
+
function noop() {
|
|
20953
20953
|
}
|
|
20954
20954
|
module2.exports = union;
|
|
20955
20955
|
}
|
|
@@ -24196,7 +24196,7 @@ var require_end_of_stream = __commonJS({
|
|
|
24196
24196
|
callback.apply(this, args);
|
|
24197
24197
|
};
|
|
24198
24198
|
}
|
|
24199
|
-
function
|
|
24199
|
+
function noop() {
|
|
24200
24200
|
}
|
|
24201
24201
|
function isRequest(stream) {
|
|
24202
24202
|
return stream.setHeader && typeof stream.abort === "function";
|
|
@@ -24206,7 +24206,7 @@ var require_end_of_stream = __commonJS({
|
|
|
24206
24206
|
return eos(stream, null, opts);
|
|
24207
24207
|
if (!opts)
|
|
24208
24208
|
opts = {};
|
|
24209
|
-
callback = once(callback ||
|
|
24209
|
+
callback = once(callback || noop);
|
|
24210
24210
|
var readable = opts.readable || opts.readable !== false && stream.readable;
|
|
24211
24211
|
var writable = opts.writable || opts.writable !== false && stream.writable;
|
|
24212
24212
|
var onlegacyfinish = function onlegacyfinish2() {
|
|
@@ -25491,7 +25491,7 @@ var require_pipeline = __commonJS({
|
|
|
25491
25491
|
var _require$codes = require_errors().codes;
|
|
25492
25492
|
var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;
|
|
25493
25493
|
var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;
|
|
25494
|
-
function
|
|
25494
|
+
function noop(err) {
|
|
25495
25495
|
if (err)
|
|
25496
25496
|
throw err;
|
|
25497
25497
|
}
|
|
@@ -25537,9 +25537,9 @@ var require_pipeline = __commonJS({
|
|
|
25537
25537
|
}
|
|
25538
25538
|
function popCallback(streams) {
|
|
25539
25539
|
if (!streams.length)
|
|
25540
|
-
return
|
|
25540
|
+
return noop;
|
|
25541
25541
|
if (typeof streams[streams.length - 1] !== "function")
|
|
25542
|
-
return
|
|
25542
|
+
return noop;
|
|
25543
25543
|
return streams.pop();
|
|
25544
25544
|
}
|
|
25545
25545
|
function pipeline() {
|
|
@@ -27850,7 +27850,7 @@ var require_end_of_stream2 = __commonJS({
|
|
|
27850
27850
|
callback.apply(this, args);
|
|
27851
27851
|
};
|
|
27852
27852
|
}
|
|
27853
|
-
function
|
|
27853
|
+
function noop() {
|
|
27854
27854
|
}
|
|
27855
27855
|
function isRequest(stream) {
|
|
27856
27856
|
return stream.setHeader && typeof stream.abort === "function";
|
|
@@ -27860,7 +27860,7 @@ var require_end_of_stream2 = __commonJS({
|
|
|
27860
27860
|
return eos(stream, null, opts);
|
|
27861
27861
|
if (!opts)
|
|
27862
27862
|
opts = {};
|
|
27863
|
-
callback = once(callback ||
|
|
27863
|
+
callback = once(callback || noop);
|
|
27864
27864
|
var readable = opts.readable || opts.readable !== false && stream.readable;
|
|
27865
27865
|
var writable = opts.writable || opts.writable !== false && stream.writable;
|
|
27866
27866
|
var onlegacyfinish = function onlegacyfinish2() {
|
|
@@ -29145,7 +29145,7 @@ var require_pipeline2 = __commonJS({
|
|
|
29145
29145
|
var _require$codes = require_errors2().codes;
|
|
29146
29146
|
var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;
|
|
29147
29147
|
var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;
|
|
29148
|
-
function
|
|
29148
|
+
function noop(err) {
|
|
29149
29149
|
if (err)
|
|
29150
29150
|
throw err;
|
|
29151
29151
|
}
|
|
@@ -29191,9 +29191,9 @@ var require_pipeline2 = __commonJS({
|
|
|
29191
29191
|
}
|
|
29192
29192
|
function popCallback(streams) {
|
|
29193
29193
|
if (!streams.length)
|
|
29194
|
-
return
|
|
29194
|
+
return noop;
|
|
29195
29195
|
if (typeof streams[streams.length - 1] !== "function")
|
|
29196
|
-
return
|
|
29196
|
+
return noop;
|
|
29197
29197
|
return streams.pop();
|
|
29198
29198
|
}
|
|
29199
29199
|
function pipeline() {
|
|
@@ -30992,7 +30992,7 @@ var require_end_of_stream3 = __commonJS({
|
|
|
30992
30992
|
callback.apply(this, args);
|
|
30993
30993
|
};
|
|
30994
30994
|
}
|
|
30995
|
-
function
|
|
30995
|
+
function noop() {
|
|
30996
30996
|
}
|
|
30997
30997
|
function isRequest(stream) {
|
|
30998
30998
|
return stream.setHeader && typeof stream.abort === "function";
|
|
@@ -31002,7 +31002,7 @@ var require_end_of_stream3 = __commonJS({
|
|
|
31002
31002
|
return eos(stream, null, opts);
|
|
31003
31003
|
if (!opts)
|
|
31004
31004
|
opts = {};
|
|
31005
|
-
callback = once(callback ||
|
|
31005
|
+
callback = once(callback || noop);
|
|
31006
31006
|
var readable = opts.readable || opts.readable !== false && stream.readable;
|
|
31007
31007
|
var writable = opts.writable || opts.writable !== false && stream.writable;
|
|
31008
31008
|
var onlegacyfinish = function onlegacyfinish2() {
|
|
@@ -32287,7 +32287,7 @@ var require_pipeline3 = __commonJS({
|
|
|
32287
32287
|
var _require$codes = require_errors3().codes;
|
|
32288
32288
|
var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;
|
|
32289
32289
|
var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;
|
|
32290
|
-
function
|
|
32290
|
+
function noop(err) {
|
|
32291
32291
|
if (err)
|
|
32292
32292
|
throw err;
|
|
32293
32293
|
}
|
|
@@ -32333,9 +32333,9 @@ var require_pipeline3 = __commonJS({
|
|
|
32333
32333
|
}
|
|
32334
32334
|
function popCallback(streams) {
|
|
32335
32335
|
if (!streams.length)
|
|
32336
|
-
return
|
|
32336
|
+
return noop;
|
|
32337
32337
|
if (typeof streams[streams.length - 1] !== "function")
|
|
32338
|
-
return
|
|
32338
|
+
return noop;
|
|
32339
32339
|
return streams.pop();
|
|
32340
32340
|
}
|
|
32341
32341
|
function pipeline() {
|
|
@@ -34364,7 +34364,7 @@ var require_end_of_stream4 = __commonJS({
|
|
|
34364
34364
|
callback.apply(this, args);
|
|
34365
34365
|
};
|
|
34366
34366
|
}
|
|
34367
|
-
function
|
|
34367
|
+
function noop() {
|
|
34368
34368
|
}
|
|
34369
34369
|
function isRequest(stream) {
|
|
34370
34370
|
return stream.setHeader && typeof stream.abort === "function";
|
|
@@ -34374,7 +34374,7 @@ var require_end_of_stream4 = __commonJS({
|
|
|
34374
34374
|
return eos(stream, null, opts);
|
|
34375
34375
|
if (!opts)
|
|
34376
34376
|
opts = {};
|
|
34377
|
-
callback = once(callback ||
|
|
34377
|
+
callback = once(callback || noop);
|
|
34378
34378
|
var readable = opts.readable || opts.readable !== false && stream.readable;
|
|
34379
34379
|
var writable = opts.writable || opts.writable !== false && stream.writable;
|
|
34380
34380
|
var onlegacyfinish = function onlegacyfinish2() {
|
|
@@ -35659,7 +35659,7 @@ var require_pipeline4 = __commonJS({
|
|
|
35659
35659
|
var _require$codes = require_errors4().codes;
|
|
35660
35660
|
var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;
|
|
35661
35661
|
var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;
|
|
35662
|
-
function
|
|
35662
|
+
function noop(err) {
|
|
35663
35663
|
if (err)
|
|
35664
35664
|
throw err;
|
|
35665
35665
|
}
|
|
@@ -35705,9 +35705,9 @@ var require_pipeline4 = __commonJS({
|
|
|
35705
35705
|
}
|
|
35706
35706
|
function popCallback(streams) {
|
|
35707
35707
|
if (!streams.length)
|
|
35708
|
-
return
|
|
35708
|
+
return noop;
|
|
35709
35709
|
if (typeof streams[streams.length - 1] !== "function")
|
|
35710
|
-
return
|
|
35710
|
+
return noop;
|
|
35711
35711
|
return streams.pop();
|
|
35712
35712
|
}
|
|
35713
35713
|
function pipeline() {
|
|
@@ -37738,7 +37738,7 @@ var require_end_of_stream5 = __commonJS({
|
|
|
37738
37738
|
callback.apply(this, args);
|
|
37739
37739
|
};
|
|
37740
37740
|
}
|
|
37741
|
-
function
|
|
37741
|
+
function noop() {
|
|
37742
37742
|
}
|
|
37743
37743
|
function isRequest(stream) {
|
|
37744
37744
|
return stream.setHeader && typeof stream.abort === "function";
|
|
@@ -37748,7 +37748,7 @@ var require_end_of_stream5 = __commonJS({
|
|
|
37748
37748
|
return eos(stream, null, opts);
|
|
37749
37749
|
if (!opts)
|
|
37750
37750
|
opts = {};
|
|
37751
|
-
callback = once(callback ||
|
|
37751
|
+
callback = once(callback || noop);
|
|
37752
37752
|
var readable = opts.readable || opts.readable !== false && stream.readable;
|
|
37753
37753
|
var writable = opts.writable || opts.writable !== false && stream.writable;
|
|
37754
37754
|
var onlegacyfinish = function onlegacyfinish2() {
|
|
@@ -39033,7 +39033,7 @@ var require_pipeline5 = __commonJS({
|
|
|
39033
39033
|
var _require$codes = require_errors5().codes;
|
|
39034
39034
|
var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;
|
|
39035
39035
|
var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;
|
|
39036
|
-
function
|
|
39036
|
+
function noop(err) {
|
|
39037
39037
|
if (err)
|
|
39038
39038
|
throw err;
|
|
39039
39039
|
}
|
|
@@ -39079,9 +39079,9 @@ var require_pipeline5 = __commonJS({
|
|
|
39079
39079
|
}
|
|
39080
39080
|
function popCallback(streams) {
|
|
39081
39081
|
if (!streams.length)
|
|
39082
|
-
return
|
|
39082
|
+
return noop;
|
|
39083
39083
|
if (typeof streams[streams.length - 1] !== "function")
|
|
39084
|
-
return
|
|
39084
|
+
return noop;
|
|
39085
39085
|
return streams.pop();
|
|
39086
39086
|
}
|
|
39087
39087
|
function pipeline() {
|
|
@@ -39145,7 +39145,7 @@ var require_extract = __commonJS({
|
|
|
39145
39145
|
var headers = require_headers();
|
|
39146
39146
|
var Writable = require_readable6().Writable;
|
|
39147
39147
|
var PassThrough = require_readable6().PassThrough;
|
|
39148
|
-
var
|
|
39148
|
+
var noop = function() {
|
|
39149
39149
|
};
|
|
39150
39150
|
var overflow = function(size) {
|
|
39151
39151
|
size &= 511;
|
|
@@ -39184,7 +39184,7 @@ var require_extract = __commonJS({
|
|
|
39184
39184
|
this._buffer = bl();
|
|
39185
39185
|
this._missing = 0;
|
|
39186
39186
|
this._partial = false;
|
|
39187
|
-
this._onparse =
|
|
39187
|
+
this._onparse = noop;
|
|
39188
39188
|
this._header = null;
|
|
39189
39189
|
this._stream = null;
|
|
39190
39190
|
this._overflow = null;
|
|
@@ -39332,7 +39332,7 @@ var require_extract = __commonJS({
|
|
|
39332
39332
|
if (this._destroyed)
|
|
39333
39333
|
return;
|
|
39334
39334
|
var cb = this._cb;
|
|
39335
|
-
this._cb =
|
|
39335
|
+
this._cb = noop;
|
|
39336
39336
|
if (this._overflow)
|
|
39337
39337
|
this._write(this._overflow, void 0, cb);
|
|
39338
39338
|
else
|
|
@@ -39388,7 +39388,7 @@ var require_fs_constants = __commonJS({
|
|
|
39388
39388
|
var require_end_of_stream6 = __commonJS({
|
|
39389
39389
|
"../../node_modules/end-of-stream/index.js"(exports, module2) {
|
|
39390
39390
|
var once = require_once();
|
|
39391
|
-
var
|
|
39391
|
+
var noop = function() {
|
|
39392
39392
|
};
|
|
39393
39393
|
var isRequest = function(stream) {
|
|
39394
39394
|
return stream.setHeader && typeof stream.abort === "function";
|
|
@@ -39401,7 +39401,7 @@ var require_end_of_stream6 = __commonJS({
|
|
|
39401
39401
|
return eos(stream, null, opts);
|
|
39402
39402
|
if (!opts)
|
|
39403
39403
|
opts = {};
|
|
39404
|
-
callback = once(callback ||
|
|
39404
|
+
callback = once(callback || noop);
|
|
39405
39405
|
var ws = stream._writableState;
|
|
39406
39406
|
var rs = stream._readableState;
|
|
39407
39407
|
var readable = opts.readable || opts.readable !== false && stream.readable;
|
|
@@ -39493,7 +39493,7 @@ var require_pack = __commonJS({
|
|
|
39493
39493
|
var DMODE = parseInt("755", 8);
|
|
39494
39494
|
var FMODE = parseInt("644", 8);
|
|
39495
39495
|
var END_OF_TAR = alloc(1024);
|
|
39496
|
-
var
|
|
39496
|
+
var noop = function() {
|
|
39497
39497
|
};
|
|
39498
39498
|
var overflow = function(self2, size) {
|
|
39499
39499
|
size &= 511;
|
|
@@ -39569,7 +39569,7 @@ var require_pack = __commonJS({
|
|
|
39569
39569
|
if (!(this instanceof Pack))
|
|
39570
39570
|
return new Pack(opts);
|
|
39571
39571
|
Readable.call(this, opts);
|
|
39572
|
-
this._drain =
|
|
39572
|
+
this._drain = noop;
|
|
39573
39573
|
this._finalized = false;
|
|
39574
39574
|
this._finalizing = false;
|
|
39575
39575
|
this._destroyed = false;
|
|
@@ -39586,7 +39586,7 @@ var require_pack = __commonJS({
|
|
|
39586
39586
|
buffer = null;
|
|
39587
39587
|
}
|
|
39588
39588
|
if (!callback)
|
|
39589
|
-
callback =
|
|
39589
|
+
callback = noop;
|
|
39590
39590
|
var self2 = this;
|
|
39591
39591
|
if (!header.size || header.type === "symlink")
|
|
39592
39592
|
header.size = 0;
|
|
@@ -39710,7 +39710,7 @@ var require_pack = __commonJS({
|
|
|
39710
39710
|
};
|
|
39711
39711
|
Pack.prototype._read = function(n) {
|
|
39712
39712
|
var drain = this._drain;
|
|
39713
|
-
this._drain =
|
|
39713
|
+
this._drain = noop;
|
|
39714
39714
|
drain();
|
|
39715
39715
|
};
|
|
39716
39716
|
module2.exports = Pack;
|
|
@@ -49832,7 +49832,7 @@ var require_init3 = __commonJS({
|
|
|
49832
49832
|
var _gltools = require_es510();
|
|
49833
49833
|
var _probe = require_es53();
|
|
49834
49834
|
var _env = require_env2();
|
|
49835
|
-
var
|
|
49835
|
+
var VERSION18 = true ? "8.5.4" : "untranspiled source";
|
|
49836
49836
|
var STARTUP_MESSAGE = "set luma.log.level=1 (or higher) to trace rendering";
|
|
49837
49837
|
var StatsManager = function() {
|
|
49838
49838
|
function StatsManager2() {
|
|
@@ -49854,16 +49854,16 @@ var require_init3 = __commonJS({
|
|
|
49854
49854
|
}();
|
|
49855
49855
|
var lumaStats = new StatsManager();
|
|
49856
49856
|
exports.lumaStats = lumaStats;
|
|
49857
|
-
if (_env.global.luma && _env.global.luma.VERSION !==
|
|
49858
|
-
throw new Error("luma.gl - multiple VERSIONs detected: ".concat(_env.global.luma.VERSION, " vs ").concat(
|
|
49857
|
+
if (_env.global.luma && _env.global.luma.VERSION !== VERSION18) {
|
|
49858
|
+
throw new Error("luma.gl - multiple VERSIONs detected: ".concat(_env.global.luma.VERSION, " vs ").concat(VERSION18));
|
|
49859
49859
|
}
|
|
49860
49860
|
if (!_env.global.luma) {
|
|
49861
49861
|
if ((0, _env.isBrowser)()) {
|
|
49862
|
-
_gltools.log.log(1, "luma.gl ".concat(
|
|
49862
|
+
_gltools.log.log(1, "luma.gl ".concat(VERSION18, " - ").concat(STARTUP_MESSAGE))();
|
|
49863
49863
|
}
|
|
49864
49864
|
_env.global.luma = _env.global.luma || {
|
|
49865
|
-
VERSION:
|
|
49866
|
-
version:
|
|
49865
|
+
VERSION: VERSION18,
|
|
49866
|
+
version: VERSION18,
|
|
49867
49867
|
log: _gltools.log,
|
|
49868
49868
|
stats: lumaStats,
|
|
49869
49869
|
globals: {
|
|
@@ -73407,7 +73407,8 @@ __export(exports, {
|
|
|
73407
73407
|
DepsInstaller: () => DepsInstaller,
|
|
73408
73408
|
I3SConverter: () => I3SConverter,
|
|
73409
73409
|
NodePages: () => NodePages,
|
|
73410
|
-
Tiles3DConverter: () => Tiles3DConverter
|
|
73410
|
+
Tiles3DConverter: () => Tiles3DConverter,
|
|
73411
|
+
prepareDataForAttributesConversion: () => prepareDataForAttributesConversion
|
|
73411
73412
|
});
|
|
73412
73413
|
|
|
73413
73414
|
// ../loader-utils/src/lib/env-utils/assert.ts
|
|
@@ -73590,7 +73591,7 @@ var WorkerThread = class {
|
|
|
73590
73591
|
this.worker = isBrowser2 ? this._createBrowserWorker() : this._createNodeWorker();
|
|
73591
73592
|
}
|
|
73592
73593
|
static isSupported() {
|
|
73593
|
-
return typeof Worker !== "undefined" && isBrowser2;
|
|
73594
|
+
return typeof Worker !== "undefined" && isBrowser2 || typeof import_worker_threads.Worker !== void 0;
|
|
73594
73595
|
}
|
|
73595
73596
|
destroy() {
|
|
73596
73597
|
this.onMessage = NOOP;
|
|
@@ -73699,9 +73700,9 @@ var WorkerPool = class {
|
|
|
73699
73700
|
this.onDebug = props.onDebug;
|
|
73700
73701
|
}
|
|
73701
73702
|
}
|
|
73702
|
-
async startJob(name8,
|
|
73703
|
+
async startJob(name8, onMessage3 = (job, type, data) => job.done(data), onError = (job, error) => job.error(error)) {
|
|
73703
73704
|
const startPromise = new Promise((onStart) => {
|
|
73704
|
-
this.jobQueue.push({ name: name8, onMessage:
|
|
73705
|
+
this.jobQueue.push({ name: name8, onMessage: onMessage3, onError, onStart });
|
|
73705
73706
|
return this;
|
|
73706
73707
|
});
|
|
73707
73708
|
this._startQueuedJob();
|
|
@@ -73821,8 +73822,34 @@ var WorkerFarm = class {
|
|
|
73821
73822
|
}
|
|
73822
73823
|
};
|
|
73823
73824
|
|
|
73825
|
+
// ../worker-utils/src/lib/worker-utils/remove-nontransferable-options.ts
|
|
73826
|
+
function removeNontransferableOptions(object) {
|
|
73827
|
+
return JSON.parse(stringifyJSON(object));
|
|
73828
|
+
}
|
|
73829
|
+
function stringifyJSON(v) {
|
|
73830
|
+
const cache = new Set();
|
|
73831
|
+
return JSON.stringify(v, (key, value) => {
|
|
73832
|
+
if (typeof value === "object" && value !== null) {
|
|
73833
|
+
if (cache.has(value)) {
|
|
73834
|
+
try {
|
|
73835
|
+
return JSON.parse(JSON.stringify(value));
|
|
73836
|
+
} catch (err) {
|
|
73837
|
+
return void 0;
|
|
73838
|
+
}
|
|
73839
|
+
}
|
|
73840
|
+
cache.add(value);
|
|
73841
|
+
}
|
|
73842
|
+
return value;
|
|
73843
|
+
});
|
|
73844
|
+
}
|
|
73845
|
+
|
|
73824
73846
|
// ../worker-utils/src/lib/worker-api/get-worker-url.ts
|
|
73825
73847
|
var NPM_TAG = "beta";
|
|
73848
|
+
var VERSION2 = typeof VERSION !== "undefined" ? VERSION : NPM_TAG;
|
|
73849
|
+
function getWorkerName(worker) {
|
|
73850
|
+
const warning = worker.version !== VERSION2 ? ` (worker-utils@${VERSION2})` : "";
|
|
73851
|
+
return `${worker.name}@${worker.version}${warning}`;
|
|
73852
|
+
}
|
|
73826
73853
|
function getWorkerURL(worker, options = {}) {
|
|
73827
73854
|
const workerOptions = options[worker.id] || {};
|
|
73828
73855
|
const workerFile = `${worker.id}-worker.js`;
|
|
@@ -73845,6 +73872,50 @@ function getWorkerURL(worker, options = {}) {
|
|
|
73845
73872
|
return url;
|
|
73846
73873
|
}
|
|
73847
73874
|
|
|
73875
|
+
// ../worker-utils/src/lib/worker-api/process-on-worker.ts
|
|
73876
|
+
async function processOnWorker(worker, data, options = {}, context = {}) {
|
|
73877
|
+
const name8 = getWorkerName(worker);
|
|
73878
|
+
const workerFarm = WorkerFarm.getWorkerFarm(options);
|
|
73879
|
+
const { source } = options;
|
|
73880
|
+
const workerPoolProps = { name: name8, source };
|
|
73881
|
+
if (!source) {
|
|
73882
|
+
workerPoolProps.url = getWorkerURL(worker, options);
|
|
73883
|
+
}
|
|
73884
|
+
const workerPool = workerFarm.getWorkerPool(workerPoolProps);
|
|
73885
|
+
const jobName = options.jobName || worker.name;
|
|
73886
|
+
const job = await workerPool.startJob(jobName, onMessage.bind(null, context));
|
|
73887
|
+
const transferableOptions = removeNontransferableOptions(options);
|
|
73888
|
+
job.postMessage("process", { input: data, options: transferableOptions });
|
|
73889
|
+
const result = await job.result;
|
|
73890
|
+
return result.result;
|
|
73891
|
+
}
|
|
73892
|
+
async function onMessage(context, job, type, payload) {
|
|
73893
|
+
switch (type) {
|
|
73894
|
+
case "done":
|
|
73895
|
+
job.done(payload);
|
|
73896
|
+
break;
|
|
73897
|
+
case "error":
|
|
73898
|
+
job.error(new Error(payload.error));
|
|
73899
|
+
break;
|
|
73900
|
+
case "process":
|
|
73901
|
+
const { id, input, options } = payload;
|
|
73902
|
+
try {
|
|
73903
|
+
if (!context.process) {
|
|
73904
|
+
job.postMessage("error", { id, error: "Worker not set up to process on main thread" });
|
|
73905
|
+
return;
|
|
73906
|
+
}
|
|
73907
|
+
const result = await context.process(input, options);
|
|
73908
|
+
job.postMessage("done", { id, result });
|
|
73909
|
+
} catch (error) {
|
|
73910
|
+
const message = error instanceof Error ? error.message : "unknown error";
|
|
73911
|
+
job.postMessage("error", { id, error: message });
|
|
73912
|
+
}
|
|
73913
|
+
break;
|
|
73914
|
+
default:
|
|
73915
|
+
console.warn(`process-on-worker: unknown message ${type}`);
|
|
73916
|
+
}
|
|
73917
|
+
}
|
|
73918
|
+
|
|
73848
73919
|
// ../worker-utils/src/lib/worker-api/validate-worker-version.ts
|
|
73849
73920
|
function validateWorkerVersion(worker, coreVersion = VERSION) {
|
|
73850
73921
|
assert3(worker, "no worker provided");
|
|
@@ -73896,7 +73967,7 @@ function requireFromString(code, filename2 = "", options) {
|
|
|
73896
73967
|
|
|
73897
73968
|
// ../worker-utils/src/lib/library-utils/library-utils.ts
|
|
73898
73969
|
var LATEST = "beta";
|
|
73899
|
-
var
|
|
73970
|
+
var VERSION3 = typeof VERSION !== "undefined" ? VERSION : LATEST;
|
|
73900
73971
|
var loadLibraryPromises = {};
|
|
73901
73972
|
async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
|
|
73902
73973
|
if (moduleName) {
|
|
@@ -73918,7 +73989,7 @@ function getLibraryUrl(library, moduleName, options) {
|
|
|
73918
73989
|
}
|
|
73919
73990
|
if (options.CDN) {
|
|
73920
73991
|
assert3(options.CDN.startsWith("http"));
|
|
73921
|
-
return `${options.CDN}/${moduleName}@${
|
|
73992
|
+
return `${options.CDN}/${moduleName}@${VERSION3}/dist/libs/${library}`;
|
|
73922
73993
|
}
|
|
73923
73994
|
if (isWorker) {
|
|
73924
73995
|
return `../src/libs/${library}`;
|
|
@@ -74099,7 +74170,7 @@ async function parseWithWorker(loader, data, options, context, parseOnMainThread
|
|
|
74099
74170
|
const workerFarm = WorkerFarm.getWorkerFarm(options);
|
|
74100
74171
|
const workerPool = workerFarm.getWorkerPool({ name: name8, url });
|
|
74101
74172
|
options = JSON.parse(JSON.stringify(options));
|
|
74102
|
-
const job = await workerPool.startJob("process-on-worker",
|
|
74173
|
+
const job = await workerPool.startJob("process-on-worker", onMessage2.bind(null, parseOnMainThread));
|
|
74103
74174
|
job.postMessage("process", {
|
|
74104
74175
|
input: data,
|
|
74105
74176
|
options
|
|
@@ -74107,7 +74178,7 @@ async function parseWithWorker(loader, data, options, context, parseOnMainThread
|
|
|
74107
74178
|
const result = await job.result;
|
|
74108
74179
|
return await result.result;
|
|
74109
74180
|
}
|
|
74110
|
-
async function
|
|
74181
|
+
async function onMessage2(parseOnMainThread, job, type, payload) {
|
|
74111
74182
|
switch (type) {
|
|
74112
74183
|
case "done":
|
|
74113
74184
|
job.done(payload);
|
|
@@ -74130,6 +74201,17 @@ async function onMessage(parseOnMainThread, job, type, payload) {
|
|
|
74130
74201
|
}
|
|
74131
74202
|
}
|
|
74132
74203
|
|
|
74204
|
+
// ../loader-utils/src/lib/worker-loader-utils/encode-with-worker.ts
|
|
74205
|
+
function canEncodeWithWorker(writer, options) {
|
|
74206
|
+
if (!WorkerFarm.isSupported()) {
|
|
74207
|
+
return false;
|
|
74208
|
+
}
|
|
74209
|
+
if (!isBrowser && !options?._nodeWorkers) {
|
|
74210
|
+
return false;
|
|
74211
|
+
}
|
|
74212
|
+
return writer.worker && options?.worker;
|
|
74213
|
+
}
|
|
74214
|
+
|
|
74133
74215
|
// ../loader-utils/src/lib/binary-utils/get-first-characters.ts
|
|
74134
74216
|
function getFirstCharacters(data, length = 5) {
|
|
74135
74217
|
if (typeof data === "string") {
|
|
@@ -74670,7 +74752,7 @@ async function getResponseError(response) {
|
|
|
74670
74752
|
text += ` ${await response.text()}`;
|
|
74671
74753
|
}
|
|
74672
74754
|
message += text;
|
|
74673
|
-
message = message.length > 60 ? `${message.slice(60)}...` : message;
|
|
74755
|
+
message = message.length > 60 ? `${message.slice(0, 60)}...` : message;
|
|
74674
74756
|
} catch (error) {
|
|
74675
74757
|
}
|
|
74676
74758
|
return message;
|
|
@@ -75374,6 +75456,11 @@ async function load(url, loaders, options, context) {
|
|
|
75374
75456
|
|
|
75375
75457
|
// ../core/src/lib/api/encode.ts
|
|
75376
75458
|
async function encode(data, writer, options) {
|
|
75459
|
+
const globalOptions = getGlobalLoaderOptions();
|
|
75460
|
+
options = { ...globalOptions, ...options };
|
|
75461
|
+
if (canEncodeWithWorker(writer, options)) {
|
|
75462
|
+
return await processOnWorker(writer, data, options);
|
|
75463
|
+
}
|
|
75377
75464
|
if (writer.encode) {
|
|
75378
75465
|
return await writer.encode(data, options);
|
|
75379
75466
|
}
|
|
@@ -75433,7 +75520,7 @@ function getTemporaryFilename(filename2) {
|
|
|
75433
75520
|
|
|
75434
75521
|
// ../tiles/src/tileset/tileset-3d.ts
|
|
75435
75522
|
var import_core10 = __toModule(require_es56());
|
|
75436
|
-
var
|
|
75523
|
+
var import_geospatial6 = __toModule(require_es57());
|
|
75437
75524
|
var import_stats2 = __toModule(require_es5());
|
|
75438
75525
|
|
|
75439
75526
|
// ../tiles/src/utils/doubly-linked-list-node.ts
|
|
@@ -75700,6 +75787,7 @@ function commonSpacePlanesToWGS84(viewport, viewportCenterCartesian) {
|
|
|
75700
75787
|
// ../tiles/src/tileset/helpers/zoom.ts
|
|
75701
75788
|
var import_core3 = __toModule(require_es56());
|
|
75702
75789
|
var import_culling2 = __toModule(require_es58());
|
|
75790
|
+
var import_geospatial3 = __toModule(require_es57());
|
|
75703
75791
|
var WGS84_RADIUS_X = 6378137;
|
|
75704
75792
|
var WGS84_RADIUS_Y = 6378137;
|
|
75705
75793
|
var WGS84_RADIUS_Z = 6356752314245179e-9;
|
|
@@ -75720,6 +75808,15 @@ function getZoomFromBoundingVolume(boundingVolume, cartorgraphicCenter) {
|
|
|
75720
75808
|
}
|
|
75721
75809
|
return 1;
|
|
75722
75810
|
}
|
|
75811
|
+
function getZoomFromFullExtent(fullExtent, cartorgraphicCenter, cartesianCenter) {
|
|
75812
|
+
const extentVertex = import_geospatial3.Ellipsoid.WGS84.cartographicToCartesian([fullExtent.xmax, fullExtent.ymax, fullExtent.zmax], new import_core3.Vector3());
|
|
75813
|
+
const extentSize = Math.sqrt(Math.pow(extentVertex[0] - cartesianCenter[0], 2) + Math.pow(extentVertex[1] - cartesianCenter[1], 2) + Math.pow(extentVertex[2] - cartesianCenter[2], 2));
|
|
75814
|
+
return Math.log2(WGS84_RADIUS_Z / (extentSize + cartorgraphicCenter[2]));
|
|
75815
|
+
}
|
|
75816
|
+
function getZoomFromExtent(extent, cartorgraphicCenter, cartesianCenter) {
|
|
75817
|
+
const [xmin, ymin, xmax, ymax] = extent;
|
|
75818
|
+
return getZoomFromFullExtent({ xmin, xmax, ymin, ymax, zmin: 0, zmax: 0 }, cartorgraphicCenter, cartesianCenter);
|
|
75819
|
+
}
|
|
75723
75820
|
function getObbSize(halfAxes) {
|
|
75724
75821
|
halfAxes.getColumn(0, scratchVector2);
|
|
75725
75822
|
const axeY = halfAxes.getColumn(1);
|
|
@@ -75769,7 +75866,7 @@ var TILE3D_OPTIMIZATION_HINT = {
|
|
|
75769
75866
|
// ../tiles/src/tileset/helpers/bounding-volume.ts
|
|
75770
75867
|
var import_core4 = __toModule(require_es56());
|
|
75771
75868
|
var import_culling3 = __toModule(require_es58());
|
|
75772
|
-
var
|
|
75869
|
+
var import_geospatial4 = __toModule(require_es57());
|
|
75773
75870
|
function defined2(x) {
|
|
75774
75871
|
return x !== void 0 && x !== null;
|
|
75775
75872
|
}
|
|
@@ -75783,8 +75880,8 @@ function createBoundingVolume(boundingVolumeHeader, transform9, result) {
|
|
|
75783
75880
|
}
|
|
75784
75881
|
if (boundingVolumeHeader.region) {
|
|
75785
75882
|
const [west, south, east, north, minHeight, maxHeight] = boundingVolumeHeader.region;
|
|
75786
|
-
const northWest =
|
|
75787
|
-
const southEast =
|
|
75883
|
+
const northWest = import_geospatial4.Ellipsoid.WGS84.cartographicToCartesian([(0, import_core4.degrees)(west), (0, import_core4.degrees)(north), minHeight], scratchNorthWest);
|
|
75884
|
+
const southEast = import_geospatial4.Ellipsoid.WGS84.cartographicToCartesian([(0, import_core4.degrees)(east), (0, import_core4.degrees)(south), maxHeight], scratchSouthEast);
|
|
75788
75885
|
const centerInCartesian = new import_core4.Vector3().addVectors(northWest, southEast).multiplyScalar(0.5);
|
|
75789
75886
|
const radius = new import_core4.Vector3().subVectors(northWest, southEast).len() / 2;
|
|
75790
75887
|
return createSphere([centerInCartesian[0], centerInCartesian[1], centerInCartesian[2], radius], new import_core4.Matrix4());
|
|
@@ -75888,7 +75985,7 @@ function getTiles3DScreenSpaceError(tile, frameState, useParentLodMetric) {
|
|
|
75888
75985
|
|
|
75889
75986
|
// ../tiles/src/tileset/helpers/i3s-lod.ts
|
|
75890
75987
|
var import_core6 = __toModule(require_es56());
|
|
75891
|
-
var
|
|
75988
|
+
var import_geospatial5 = __toModule(require_es57());
|
|
75892
75989
|
var cameraPositionCartesian = new import_core6.Vector3();
|
|
75893
75990
|
var toEye = new import_core6.Vector3();
|
|
75894
75991
|
var cameraPositionEnu = new import_core6.Vector3();
|
|
@@ -75919,9 +76016,9 @@ function getProjectedRadius(tile, frameState) {
|
|
|
75919
76016
|
const mbsR = tile.header.mbs[3];
|
|
75920
76017
|
const mbsCenterCartesian = [...tile.boundingVolume.center];
|
|
75921
76018
|
const cameraPositionCartographic = viewport.unprojectPosition(viewport.cameraPosition);
|
|
75922
|
-
|
|
76019
|
+
import_geospatial5.Ellipsoid.WGS84.cartographicToCartesian(cameraPositionCartographic, cameraPositionCartesian);
|
|
75923
76020
|
toEye.copy(cameraPositionCartesian).subtract(mbsCenterCartesian).normalize();
|
|
75924
|
-
|
|
76021
|
+
import_geospatial5.Ellipsoid.WGS84.eastNorthUpToFixedFrame(mbsCenterCartesian, enuToCartesianMatrix);
|
|
75925
76022
|
cartesianToEnuMatrix.copy(enuToCartesianMatrix).invert();
|
|
75926
76023
|
cameraPositionEnu.copy(cameraPositionCartesian).transform(cartesianToEnuMatrix);
|
|
75927
76024
|
const projection = Math.sqrt(cameraPositionEnu[0] * cameraPositionEnu[0] + cameraPositionEnu[1] * cameraPositionEnu[1]);
|
|
@@ -75931,7 +76028,7 @@ function getProjectedRadius(tile, frameState) {
|
|
|
75931
76028
|
const extraVectorCartesian = extraVertexCartesian.subtract(mbsCenterCartesian).normalize();
|
|
75932
76029
|
const radiusVector = toEye.cross(extraVectorCartesian).normalize().scale(mbsR);
|
|
75933
76030
|
const sphereMbsBorderVertexCartesian = radiusVector.add(mbsCenterCartesian);
|
|
75934
|
-
const sphereMbsBorderVertexCartographic =
|
|
76031
|
+
const sphereMbsBorderVertexCartographic = import_geospatial5.Ellipsoid.WGS84.cartesianToCartographic(sphereMbsBorderVertexCartesian);
|
|
75935
76032
|
const projectedOrigin = viewport.project([mbsLon, mbsLat, mbsZ]);
|
|
75936
76033
|
const projectedMbsBorderVertex = viewport.project(sphereMbsBorderVertexCartographic);
|
|
75937
76034
|
const projectedRadius = projectedOriginVector.copy(projectedOrigin).subtract(projectedMbsBorderVertex).magnitude();
|
|
@@ -76041,6 +76138,8 @@ var DEFAULT_PROPS4 = {
|
|
|
76041
76138
|
};
|
|
76042
76139
|
var TilesetTraverser = class {
|
|
76043
76140
|
constructor(options) {
|
|
76141
|
+
this.lastUpdate = new Date().getTime();
|
|
76142
|
+
this.updateDebounceTime = 1e3;
|
|
76044
76143
|
this.options = { ...DEFAULT_PROPS4, ...options };
|
|
76045
76144
|
this._traversalStack = new ManagedArray();
|
|
76046
76145
|
this._emptyTraversalStack = new ManagedArray();
|
|
@@ -76050,6 +76149,9 @@ var TilesetTraverser = class {
|
|
|
76050
76149
|
this.requestedTiles = {};
|
|
76051
76150
|
this.emptyTiles = {};
|
|
76052
76151
|
}
|
|
76152
|
+
get traversalFinished() {
|
|
76153
|
+
return true;
|
|
76154
|
+
}
|
|
76053
76155
|
traverse(root, frameState, options) {
|
|
76054
76156
|
this.root = root;
|
|
76055
76157
|
this.options = { ...this.options, ...options };
|
|
@@ -76097,7 +76199,11 @@ var TilesetTraverser = class {
|
|
|
76097
76199
|
this.touchTile(tile, frameState);
|
|
76098
76200
|
tile._shouldRefine = shouldRefine && parentRefines;
|
|
76099
76201
|
}
|
|
76100
|
-
|
|
76202
|
+
const newTime = new Date().getTime();
|
|
76203
|
+
if (this.traversalFinished || newTime - this.lastUpdate > this.updateDebounceTime) {
|
|
76204
|
+
this.lastUpdate = newTime;
|
|
76205
|
+
this.options.onTraversalEnd(frameState);
|
|
76206
|
+
}
|
|
76101
76207
|
}
|
|
76102
76208
|
updateChildTiles(tile, frameState) {
|
|
76103
76209
|
const children = tile.children;
|
|
@@ -76631,6 +76737,25 @@ var Tileset3DTraverser = class extends TilesetTraverser {
|
|
|
76631
76737
|
}
|
|
76632
76738
|
};
|
|
76633
76739
|
|
|
76740
|
+
// ../tiles/src/tileset/traversers/i3s-frame-counter.ts
|
|
76741
|
+
var I3SPendingTilesRegister = class {
|
|
76742
|
+
constructor() {
|
|
76743
|
+
this.frameNumberMap = new Map();
|
|
76744
|
+
}
|
|
76745
|
+
register(frameNumber) {
|
|
76746
|
+
const oldCount = this.frameNumberMap.get(frameNumber) || 0;
|
|
76747
|
+
this.frameNumberMap.set(frameNumber, (oldCount || 0) + 1);
|
|
76748
|
+
}
|
|
76749
|
+
deregister(frameNumber) {
|
|
76750
|
+
const oldCount = this.frameNumberMap.get(frameNumber) || 1;
|
|
76751
|
+
this.frameNumberMap.set(frameNumber, (oldCount || 0) - 1);
|
|
76752
|
+
}
|
|
76753
|
+
isZero(frameNumber) {
|
|
76754
|
+
const count = this.frameNumberMap.get(frameNumber) || 0;
|
|
76755
|
+
return count === 0;
|
|
76756
|
+
}
|
|
76757
|
+
};
|
|
76758
|
+
|
|
76634
76759
|
// ../tiles/src/tileset/traversers/i3s-tile-manager.ts
|
|
76635
76760
|
var STATUS = {
|
|
76636
76761
|
REQUESTED: "REQUESTED",
|
|
@@ -76639,32 +76764,45 @@ var STATUS = {
|
|
|
76639
76764
|
};
|
|
76640
76765
|
var I3STileManager = class {
|
|
76641
76766
|
constructor() {
|
|
76767
|
+
this.pendingTilesRegister = new I3SPendingTilesRegister();
|
|
76642
76768
|
this._statusMap = {};
|
|
76643
76769
|
}
|
|
76644
76770
|
add(request, key, callback, frameState) {
|
|
76645
76771
|
if (!this._statusMap[key]) {
|
|
76772
|
+
const { frameNumber } = frameState;
|
|
76646
76773
|
this._statusMap[key] = { request, callback, key, frameState, status: STATUS.REQUESTED };
|
|
76774
|
+
this.pendingTilesRegister.register(frameNumber);
|
|
76647
76775
|
request().then((data) => {
|
|
76648
76776
|
this._statusMap[key].status = STATUS.COMPLETED;
|
|
76777
|
+
this.pendingTilesRegister.deregister(frameNumber);
|
|
76649
76778
|
this._statusMap[key].callback(data, frameState);
|
|
76650
76779
|
}).catch((error) => {
|
|
76651
76780
|
this._statusMap[key].status = STATUS.ERROR;
|
|
76781
|
+
this.pendingTilesRegister.deregister(frameNumber);
|
|
76652
76782
|
callback(error);
|
|
76653
76783
|
});
|
|
76654
76784
|
}
|
|
76655
76785
|
}
|
|
76656
76786
|
update(key, frameState) {
|
|
76657
76787
|
if (this._statusMap[key]) {
|
|
76788
|
+
this.pendingTilesRegister.deregister(this._statusMap[key].frameState.frameNumber);
|
|
76789
|
+
this.pendingTilesRegister.register(frameState.frameNumber);
|
|
76658
76790
|
this._statusMap[key].frameState = frameState;
|
|
76659
76791
|
}
|
|
76660
76792
|
}
|
|
76661
76793
|
find(key) {
|
|
76662
76794
|
return this._statusMap[key];
|
|
76663
76795
|
}
|
|
76796
|
+
hasPendingTiles(frameNumber) {
|
|
76797
|
+
return !this.pendingTilesRegister.isZero(frameNumber);
|
|
76798
|
+
}
|
|
76664
76799
|
};
|
|
76665
76800
|
|
|
76666
76801
|
// ../tiles/src/tileset/traversers/i3s-tileset-traverser.ts
|
|
76667
76802
|
var I3STilesetTraverser = class extends TilesetTraverser {
|
|
76803
|
+
get traversalFinished() {
|
|
76804
|
+
return !this._tileManager.hasPendingTiles(this._frameNumber || 0);
|
|
76805
|
+
}
|
|
76668
76806
|
constructor(options) {
|
|
76669
76807
|
super(options);
|
|
76670
76808
|
this._tileManager = new I3STileManager();
|
|
@@ -76715,7 +76853,7 @@ var I3STilesetTraverser = class extends TilesetTraverser {
|
|
|
76715
76853
|
tile.children.push(childTile);
|
|
76716
76854
|
const frameState = this._tileManager.find(childTile.id).frameState;
|
|
76717
76855
|
this.updateTile(childTile, frameState);
|
|
76718
|
-
if (this._frameNumber === frameState.frameNumber) {
|
|
76856
|
+
if (this._frameNumber === frameState.frameNumber && (this.traversalFinished || new Date().getTime() - this.lastUpdate > this.updateDebounceTime)) {
|
|
76719
76857
|
this.executeTraversal(childTile, frameState);
|
|
76720
76858
|
}
|
|
76721
76859
|
}
|
|
@@ -76724,7 +76862,7 @@ var I3STilesetTraverser = class extends TilesetTraverser {
|
|
|
76724
76862
|
// ../tiles/src/tileset/tileset-3d.ts
|
|
76725
76863
|
var DEFAULT_PROPS5 = {
|
|
76726
76864
|
description: "",
|
|
76727
|
-
ellipsoid:
|
|
76865
|
+
ellipsoid: import_geospatial6.Ellipsoid.WGS84,
|
|
76728
76866
|
modelMatrix: new import_core10.Matrix4(),
|
|
76729
76867
|
throttleRequests: true,
|
|
76730
76868
|
maxRequests: 64,
|
|
@@ -76809,7 +76947,7 @@ var Tileset3D = class {
|
|
|
76809
76947
|
this.asset = {};
|
|
76810
76948
|
this.credits = {};
|
|
76811
76949
|
this.description = this.options.description || "";
|
|
76812
|
-
this._initializeTileSet(json);
|
|
76950
|
+
this.tilesetInitializationPromise = this._initializeTileSet(json);
|
|
76813
76951
|
}
|
|
76814
76952
|
destroy() {
|
|
76815
76953
|
this._destroy();
|
|
@@ -76846,14 +76984,17 @@ var Tileset3D = class {
|
|
|
76846
76984
|
return Boolean(this._extensionsUsed && this._extensionsUsed.indexOf(extensionName) > -1);
|
|
76847
76985
|
}
|
|
76848
76986
|
update(viewports = null) {
|
|
76849
|
-
|
|
76850
|
-
viewports
|
|
76851
|
-
|
|
76852
|
-
|
|
76853
|
-
|
|
76854
|
-
|
|
76987
|
+
this.tilesetInitializationPromise.then(() => {
|
|
76988
|
+
if (!viewports && this.lastUpdatedVieports) {
|
|
76989
|
+
viewports = this.lastUpdatedVieports;
|
|
76990
|
+
} else {
|
|
76991
|
+
this.lastUpdatedVieports = viewports;
|
|
76992
|
+
}
|
|
76993
|
+
this.doUpdate(viewports);
|
|
76994
|
+
});
|
|
76855
76995
|
}
|
|
76856
76996
|
async selectTiles(viewports = null) {
|
|
76997
|
+
await this.tilesetInitializationPromise;
|
|
76857
76998
|
if (viewports) {
|
|
76858
76999
|
this.lastUpdatedVieports = viewports;
|
|
76859
77000
|
}
|
|
@@ -76985,17 +77126,43 @@ var Tileset3D = class {
|
|
|
76985
77126
|
this.stats.get(TILES_RENDERABLE).count = tilesRenderable;
|
|
76986
77127
|
this.stats.get(POINTS_COUNT).count = pointsRenderable;
|
|
76987
77128
|
}
|
|
76988
|
-
_initializeTileSet(tilesetJson) {
|
|
77129
|
+
async _initializeTileSet(tilesetJson) {
|
|
77130
|
+
if (this.type === TILESET_TYPE.I3S) {
|
|
77131
|
+
this.calculateViewPropsI3S();
|
|
77132
|
+
tilesetJson.root = await tilesetJson.root;
|
|
77133
|
+
}
|
|
76989
77134
|
this.root = this._initializeTileHeaders(tilesetJson, null);
|
|
76990
77135
|
if (this.type === TILESET_TYPE.TILES3D) {
|
|
76991
|
-
this.
|
|
77136
|
+
this._initializeTiles3DTileset(tilesetJson);
|
|
77137
|
+
this.calculateViewPropsTiles3D();
|
|
76992
77138
|
}
|
|
76993
77139
|
if (this.type === TILESET_TYPE.I3S) {
|
|
76994
77140
|
this._initializeI3STileset();
|
|
76995
77141
|
}
|
|
76996
|
-
this._calculateViewProps();
|
|
76997
77142
|
}
|
|
76998
|
-
|
|
77143
|
+
calculateViewPropsI3S() {
|
|
77144
|
+
const fullExtent = this.tileset.fullExtent;
|
|
77145
|
+
if (fullExtent) {
|
|
77146
|
+
const { xmin, xmax, ymin, ymax, zmin, zmax } = fullExtent;
|
|
77147
|
+
this.cartographicCenter = new import_core10.Vector3(xmin + (xmax - xmin) / 2, ymin + (ymax - ymin) / 2, zmin + (zmax - zmin) / 2);
|
|
77148
|
+
this.cartesianCenter = import_geospatial6.Ellipsoid.WGS84.cartographicToCartesian(this.cartographicCenter, new import_core10.Vector3());
|
|
77149
|
+
this.zoom = getZoomFromFullExtent(fullExtent, this.cartographicCenter, this.cartesianCenter);
|
|
77150
|
+
return;
|
|
77151
|
+
}
|
|
77152
|
+
const extent = this.tileset.store?.extent;
|
|
77153
|
+
if (extent) {
|
|
77154
|
+
const [xmin, ymin, xmax, ymax] = extent;
|
|
77155
|
+
this.cartographicCenter = new import_core10.Vector3(xmin + (xmax - xmin) / 2, ymin + (ymax - ymin) / 2, 0);
|
|
77156
|
+
this.cartesianCenter = import_geospatial6.Ellipsoid.WGS84.cartographicToCartesian(this.cartographicCenter, new import_core10.Vector3());
|
|
77157
|
+
this.zoom = getZoomFromExtent(extent, this.cartographicCenter, this.cartesianCenter);
|
|
77158
|
+
return;
|
|
77159
|
+
}
|
|
77160
|
+
console.warn("Extent is not defined in the tileset header");
|
|
77161
|
+
this.cartographicCenter = new import_core10.Vector3();
|
|
77162
|
+
this.zoom = 1;
|
|
77163
|
+
return;
|
|
77164
|
+
}
|
|
77165
|
+
calculateViewPropsTiles3D() {
|
|
76999
77166
|
const root = this.root;
|
|
77000
77167
|
assert2(root);
|
|
77001
77168
|
const { center } = root.boundingVolume;
|
|
@@ -77005,7 +77172,7 @@ var Tileset3D = class {
|
|
|
77005
77172
|
this.zoom = 1;
|
|
77006
77173
|
return;
|
|
77007
77174
|
}
|
|
77008
|
-
this.cartographicCenter =
|
|
77175
|
+
this.cartographicCenter = import_geospatial6.Ellipsoid.WGS84.cartesianToCartographic(center, new import_core10.Vector3());
|
|
77009
77176
|
this.cartesianCenter = center;
|
|
77010
77177
|
this.zoom = getZoomFromBoundingVolume(root.boundingVolume, this.cartographicCenter);
|
|
77011
77178
|
}
|
|
@@ -77153,7 +77320,7 @@ var Tileset3D = class {
|
|
|
77153
77320
|
this._unloadTile(tile);
|
|
77154
77321
|
tile.destroy();
|
|
77155
77322
|
}
|
|
77156
|
-
|
|
77323
|
+
_initializeTiles3DTileset(tilesetJson) {
|
|
77157
77324
|
this.asset = tilesetJson.asset;
|
|
77158
77325
|
if (!this.asset) {
|
|
77159
77326
|
throw new Error("Tileset must have an asset property.");
|
|
@@ -77195,7 +77362,7 @@ function getQueryParamString(queryParams) {
|
|
|
77195
77362
|
}
|
|
77196
77363
|
|
|
77197
77364
|
// ../3d-tiles/src/lib/utils/version.ts
|
|
77198
|
-
var
|
|
77365
|
+
var VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
77199
77366
|
|
|
77200
77367
|
// ../3d-tiles/src/lib/constants.ts
|
|
77201
77368
|
var TILE3D_TYPE = {
|
|
@@ -77229,7 +77396,7 @@ function getMagicString3(arrayBuffer, byteOffset = 0) {
|
|
|
77229
77396
|
}
|
|
77230
77397
|
|
|
77231
77398
|
// ../draco/src/lib/utils/version.ts
|
|
77232
|
-
var
|
|
77399
|
+
var VERSION5 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
77233
77400
|
|
|
77234
77401
|
// ../draco/src/draco-loader.ts
|
|
77235
77402
|
var DEFAULT_DRACO_OPTIONS = {
|
|
@@ -77245,7 +77412,7 @@ var DracoLoader = {
|
|
|
77245
77412
|
id: "draco",
|
|
77246
77413
|
module: "draco",
|
|
77247
77414
|
shapes: ["mesh"],
|
|
77248
|
-
version:
|
|
77415
|
+
version: VERSION5,
|
|
77249
77416
|
worker: true,
|
|
77250
77417
|
extensions: ["drc"],
|
|
77251
77418
|
mimeTypes: ["application/octet-stream"],
|
|
@@ -78156,7 +78323,6 @@ var DRACO_WASM_WRAPPER_URL = `https://www.gstatic.com/draco/versioned/decoders/$
|
|
|
78156
78323
|
var DRACO_WASM_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_VERSION}/draco_decoder.wasm`;
|
|
78157
78324
|
var DRACO_ENCODER_URL = `https://raw.githubusercontent.com/google/draco/${DRACO_VERSION}/javascript/draco_encoder.js`;
|
|
78158
78325
|
var loadDecoderPromise;
|
|
78159
|
-
var loadEncoderPromise;
|
|
78160
78326
|
async function loadDracoDecoderModule(options) {
|
|
78161
78327
|
const modules = options.modules || {};
|
|
78162
78328
|
if (modules.draco3d) {
|
|
@@ -78168,17 +78334,6 @@ async function loadDracoDecoderModule(options) {
|
|
|
78168
78334
|
}
|
|
78169
78335
|
return await loadDecoderPromise;
|
|
78170
78336
|
}
|
|
78171
|
-
async function loadDracoEncoderModule(options) {
|
|
78172
|
-
const modules = options.modules || {};
|
|
78173
|
-
if (modules.draco3d) {
|
|
78174
|
-
loadEncoderPromise = loadEncoderPromise || modules.draco3d.createEncoderModule({}).then((draco) => {
|
|
78175
|
-
return { draco };
|
|
78176
|
-
});
|
|
78177
|
-
} else {
|
|
78178
|
-
loadEncoderPromise = loadEncoderPromise || loadDracoEncoder(options);
|
|
78179
|
-
}
|
|
78180
|
-
return await loadEncoderPromise;
|
|
78181
|
-
}
|
|
78182
78337
|
async function loadDracoDecoder(options) {
|
|
78183
78338
|
let DracoDecoderModule;
|
|
78184
78339
|
let wasmBinary;
|
|
@@ -78208,303 +78363,19 @@ function initializeDracoDecoder(DracoDecoderModule, wasmBinary) {
|
|
|
78208
78363
|
});
|
|
78209
78364
|
});
|
|
78210
78365
|
}
|
|
78211
|
-
async function loadDracoEncoder(options) {
|
|
78212
|
-
let DracoEncoderModule = await loadLibrary(DRACO_ENCODER_URL, "draco", options);
|
|
78213
|
-
DracoEncoderModule = DracoEncoderModule || globalThis.DracoEncoderModule;
|
|
78214
|
-
return new Promise((resolve) => {
|
|
78215
|
-
DracoEncoderModule({
|
|
78216
|
-
onModuleLoaded: (draco) => resolve({ draco })
|
|
78217
|
-
});
|
|
78218
|
-
});
|
|
78219
|
-
}
|
|
78220
|
-
|
|
78221
|
-
// ../draco/src/lib/draco-builder.ts
|
|
78222
|
-
var GLTF_TO_DRACO_ATTRIBUTE_NAME_MAP = {
|
|
78223
|
-
POSITION: "POSITION",
|
|
78224
|
-
NORMAL: "NORMAL",
|
|
78225
|
-
COLOR_0: "COLOR",
|
|
78226
|
-
TEXCOORD_0: "TEX_COORD"
|
|
78227
|
-
};
|
|
78228
|
-
var noop = () => {
|
|
78229
|
-
};
|
|
78230
|
-
var DracoBuilder = class {
|
|
78231
|
-
constructor(draco) {
|
|
78232
|
-
this.draco = draco;
|
|
78233
|
-
this.dracoEncoder = new this.draco.Encoder();
|
|
78234
|
-
this.dracoMeshBuilder = new this.draco.MeshBuilder();
|
|
78235
|
-
this.dracoMetadataBuilder = new this.draco.MetadataBuilder();
|
|
78236
|
-
}
|
|
78237
|
-
destroy() {
|
|
78238
|
-
this.destroyEncodedObject(this.dracoMeshBuilder);
|
|
78239
|
-
this.destroyEncodedObject(this.dracoEncoder);
|
|
78240
|
-
this.destroyEncodedObject(this.dracoMetadataBuilder);
|
|
78241
|
-
this.dracoMeshBuilder = null;
|
|
78242
|
-
this.dracoEncoder = null;
|
|
78243
|
-
this.draco = null;
|
|
78244
|
-
}
|
|
78245
|
-
destroyEncodedObject(object) {
|
|
78246
|
-
if (object) {
|
|
78247
|
-
this.draco.destroy(object);
|
|
78248
|
-
}
|
|
78249
|
-
}
|
|
78250
|
-
encodeSync(mesh, options = {}) {
|
|
78251
|
-
this.log = noop;
|
|
78252
|
-
this._setOptions(options);
|
|
78253
|
-
return options.pointcloud ? this._encodePointCloud(mesh, options) : this._encodeMesh(mesh, options);
|
|
78254
|
-
}
|
|
78255
|
-
_getAttributesFromMesh(mesh) {
|
|
78256
|
-
const attributes = { ...mesh, ...mesh.attributes };
|
|
78257
|
-
if (mesh.indices) {
|
|
78258
|
-
attributes.indices = mesh.indices;
|
|
78259
|
-
}
|
|
78260
|
-
return attributes;
|
|
78261
|
-
}
|
|
78262
|
-
_encodePointCloud(pointcloud, options) {
|
|
78263
|
-
const dracoPointCloud = new this.draco.PointCloud();
|
|
78264
|
-
if (options.metadata) {
|
|
78265
|
-
this._addGeometryMetadata(dracoPointCloud, options.metadata);
|
|
78266
|
-
}
|
|
78267
|
-
const attributes = this._getAttributesFromMesh(pointcloud);
|
|
78268
|
-
this._createDracoPointCloud(dracoPointCloud, attributes, options);
|
|
78269
|
-
const dracoData = new this.draco.DracoInt8Array();
|
|
78270
|
-
try {
|
|
78271
|
-
const encodedLen = this.dracoEncoder.EncodePointCloudToDracoBuffer(dracoPointCloud, false, dracoData);
|
|
78272
|
-
if (!(encodedLen > 0)) {
|
|
78273
|
-
throw new Error("Draco encoding failed.");
|
|
78274
|
-
}
|
|
78275
|
-
this.log(`DRACO encoded ${dracoPointCloud.num_points()} points
|
|
78276
|
-
with ${dracoPointCloud.num_attributes()} attributes into ${encodedLen} bytes`);
|
|
78277
|
-
return dracoInt8ArrayToArrayBuffer(dracoData);
|
|
78278
|
-
} finally {
|
|
78279
|
-
this.destroyEncodedObject(dracoData);
|
|
78280
|
-
this.destroyEncodedObject(dracoPointCloud);
|
|
78281
|
-
}
|
|
78282
|
-
}
|
|
78283
|
-
_encodeMesh(mesh, options) {
|
|
78284
|
-
const dracoMesh = new this.draco.Mesh();
|
|
78285
|
-
if (options.metadata) {
|
|
78286
|
-
this._addGeometryMetadata(dracoMesh, options.metadata);
|
|
78287
|
-
}
|
|
78288
|
-
const attributes = this._getAttributesFromMesh(mesh);
|
|
78289
|
-
this._createDracoMesh(dracoMesh, attributes, options);
|
|
78290
|
-
const dracoData = new this.draco.DracoInt8Array();
|
|
78291
|
-
try {
|
|
78292
|
-
const encodedLen = this.dracoEncoder.EncodeMeshToDracoBuffer(dracoMesh, dracoData);
|
|
78293
|
-
if (encodedLen <= 0) {
|
|
78294
|
-
throw new Error("Draco encoding failed.");
|
|
78295
|
-
}
|
|
78296
|
-
this.log(`DRACO encoded ${dracoMesh.num_points()} points
|
|
78297
|
-
with ${dracoMesh.num_attributes()} attributes into ${encodedLen} bytes`);
|
|
78298
|
-
return dracoInt8ArrayToArrayBuffer(dracoData);
|
|
78299
|
-
} finally {
|
|
78300
|
-
this.destroyEncodedObject(dracoData);
|
|
78301
|
-
this.destroyEncodedObject(dracoMesh);
|
|
78302
|
-
}
|
|
78303
|
-
}
|
|
78304
|
-
_setOptions(options) {
|
|
78305
|
-
if ("speed" in options) {
|
|
78306
|
-
this.dracoEncoder.SetSpeedOptions(...options.speed);
|
|
78307
|
-
}
|
|
78308
|
-
if ("method" in options) {
|
|
78309
|
-
const dracoMethod = this.draco[options.method || "MESH_SEQUENTIAL_ENCODING"];
|
|
78310
|
-
this.dracoEncoder.SetEncodingMethod(dracoMethod);
|
|
78311
|
-
}
|
|
78312
|
-
if ("quantization" in options) {
|
|
78313
|
-
for (const attribute in options.quantization) {
|
|
78314
|
-
const bits = options.quantization[attribute];
|
|
78315
|
-
const dracoPosition = this.draco[attribute];
|
|
78316
|
-
this.dracoEncoder.SetAttributeQuantization(dracoPosition, bits);
|
|
78317
|
-
}
|
|
78318
|
-
}
|
|
78319
|
-
}
|
|
78320
|
-
_createDracoMesh(dracoMesh, attributes, options) {
|
|
78321
|
-
const optionalMetadata = options.attributesMetadata || {};
|
|
78322
|
-
try {
|
|
78323
|
-
const positions = this._getPositionAttribute(attributes);
|
|
78324
|
-
if (!positions) {
|
|
78325
|
-
throw new Error("positions");
|
|
78326
|
-
}
|
|
78327
|
-
const vertexCount = positions.length / 3;
|
|
78328
|
-
for (let attributeName in attributes) {
|
|
78329
|
-
const attribute = attributes[attributeName];
|
|
78330
|
-
attributeName = GLTF_TO_DRACO_ATTRIBUTE_NAME_MAP[attributeName] || attributeName;
|
|
78331
|
-
const uniqueId = this._addAttributeToMesh(dracoMesh, attributeName, attribute, vertexCount);
|
|
78332
|
-
if (uniqueId !== -1) {
|
|
78333
|
-
this._addAttributeMetadata(dracoMesh, uniqueId, {
|
|
78334
|
-
name: attributeName,
|
|
78335
|
-
...optionalMetadata[attributeName] || {}
|
|
78336
|
-
});
|
|
78337
|
-
}
|
|
78338
|
-
}
|
|
78339
|
-
} catch (error) {
|
|
78340
|
-
this.destroyEncodedObject(dracoMesh);
|
|
78341
|
-
throw error;
|
|
78342
|
-
}
|
|
78343
|
-
return dracoMesh;
|
|
78344
|
-
}
|
|
78345
|
-
_createDracoPointCloud(dracoPointCloud, attributes, options) {
|
|
78346
|
-
const optionalMetadata = options.attributesMetadata || {};
|
|
78347
|
-
try {
|
|
78348
|
-
const positions = this._getPositionAttribute(attributes);
|
|
78349
|
-
if (!positions) {
|
|
78350
|
-
throw new Error("positions");
|
|
78351
|
-
}
|
|
78352
|
-
const vertexCount = positions.length / 3;
|
|
78353
|
-
for (let attributeName in attributes) {
|
|
78354
|
-
const attribute = attributes[attributeName];
|
|
78355
|
-
attributeName = GLTF_TO_DRACO_ATTRIBUTE_NAME_MAP[attributeName] || attributeName;
|
|
78356
|
-
const uniqueId = this._addAttributeToMesh(dracoPointCloud, attributeName, attribute, vertexCount);
|
|
78357
|
-
if (uniqueId !== -1) {
|
|
78358
|
-
this._addAttributeMetadata(dracoPointCloud, uniqueId, {
|
|
78359
|
-
name: attributeName,
|
|
78360
|
-
...optionalMetadata[attributeName] || {}
|
|
78361
|
-
});
|
|
78362
|
-
}
|
|
78363
|
-
}
|
|
78364
|
-
} catch (error) {
|
|
78365
|
-
this.destroyEncodedObject(dracoPointCloud);
|
|
78366
|
-
throw error;
|
|
78367
|
-
}
|
|
78368
|
-
return dracoPointCloud;
|
|
78369
|
-
}
|
|
78370
|
-
_addAttributeToMesh(mesh, attributeName, attribute, vertexCount) {
|
|
78371
|
-
if (!ArrayBuffer.isView(attribute)) {
|
|
78372
|
-
return -1;
|
|
78373
|
-
}
|
|
78374
|
-
const type = this._getDracoAttributeType(attributeName);
|
|
78375
|
-
const size = attribute.length / vertexCount;
|
|
78376
|
-
if (type === "indices") {
|
|
78377
|
-
const numFaces = attribute.length / 3;
|
|
78378
|
-
this.log(`Adding attribute ${attributeName}, size ${numFaces}`);
|
|
78379
|
-
this.dracoMeshBuilder.AddFacesToMesh(mesh, numFaces, attribute);
|
|
78380
|
-
return -1;
|
|
78381
|
-
}
|
|
78382
|
-
this.log(`Adding attribute ${attributeName}, size ${size}`);
|
|
78383
|
-
const builder = this.dracoMeshBuilder;
|
|
78384
|
-
const { buffer } = attribute;
|
|
78385
|
-
switch (attribute.constructor) {
|
|
78386
|
-
case Int8Array:
|
|
78387
|
-
return builder.AddInt8Attribute(mesh, type, vertexCount, size, new Int8Array(buffer));
|
|
78388
|
-
case Int16Array:
|
|
78389
|
-
return builder.AddInt16Attribute(mesh, type, vertexCount, size, new Int16Array(buffer));
|
|
78390
|
-
case Int32Array:
|
|
78391
|
-
return builder.AddInt32Attribute(mesh, type, vertexCount, size, new Int32Array(buffer));
|
|
78392
|
-
case Uint8Array:
|
|
78393
|
-
case Uint8ClampedArray:
|
|
78394
|
-
return builder.AddUInt8Attribute(mesh, type, vertexCount, size, new Uint8Array(buffer));
|
|
78395
|
-
case Uint16Array:
|
|
78396
|
-
return builder.AddUInt16Attribute(mesh, type, vertexCount, size, new Uint16Array(buffer));
|
|
78397
|
-
case Uint32Array:
|
|
78398
|
-
return builder.AddUInt32Attribute(mesh, type, vertexCount, size, new Uint32Array(buffer));
|
|
78399
|
-
case Float32Array:
|
|
78400
|
-
default:
|
|
78401
|
-
return builder.AddFloatAttribute(mesh, type, vertexCount, size, new Float32Array(buffer));
|
|
78402
|
-
}
|
|
78403
|
-
}
|
|
78404
|
-
_getDracoAttributeType(attributeName) {
|
|
78405
|
-
switch (attributeName.toLowerCase()) {
|
|
78406
|
-
case "indices":
|
|
78407
|
-
return "indices";
|
|
78408
|
-
case "position":
|
|
78409
|
-
case "positions":
|
|
78410
|
-
case "vertices":
|
|
78411
|
-
return this.draco.POSITION;
|
|
78412
|
-
case "normal":
|
|
78413
|
-
case "normals":
|
|
78414
|
-
return this.draco.NORMAL;
|
|
78415
|
-
case "color":
|
|
78416
|
-
case "colors":
|
|
78417
|
-
return this.draco.COLOR;
|
|
78418
|
-
case "texcoord":
|
|
78419
|
-
case "texcoords":
|
|
78420
|
-
return this.draco.TEX_COORD;
|
|
78421
|
-
default:
|
|
78422
|
-
return this.draco.GENERIC;
|
|
78423
|
-
}
|
|
78424
|
-
}
|
|
78425
|
-
_getPositionAttribute(attributes) {
|
|
78426
|
-
for (const attributeName in attributes) {
|
|
78427
|
-
const attribute = attributes[attributeName];
|
|
78428
|
-
const dracoType = this._getDracoAttributeType(attributeName);
|
|
78429
|
-
if (dracoType === this.draco.POSITION) {
|
|
78430
|
-
return attribute;
|
|
78431
|
-
}
|
|
78432
|
-
}
|
|
78433
|
-
return null;
|
|
78434
|
-
}
|
|
78435
|
-
_addGeometryMetadata(dracoGeometry, metadata) {
|
|
78436
|
-
const dracoMetadata = new this.draco.Metadata();
|
|
78437
|
-
this._populateDracoMetadata(dracoMetadata, metadata);
|
|
78438
|
-
this.dracoMeshBuilder.AddMetadata(dracoGeometry, dracoMetadata);
|
|
78439
|
-
}
|
|
78440
|
-
_addAttributeMetadata(dracoGeometry, uniqueAttributeId, metadata) {
|
|
78441
|
-
const dracoAttributeMetadata = new this.draco.Metadata();
|
|
78442
|
-
this._populateDracoMetadata(dracoAttributeMetadata, metadata);
|
|
78443
|
-
this.dracoMeshBuilder.SetMetadataForAttribute(dracoGeometry, uniqueAttributeId, dracoAttributeMetadata);
|
|
78444
|
-
}
|
|
78445
|
-
_populateDracoMetadata(dracoMetadata, metadata) {
|
|
78446
|
-
for (const [key, value] of getEntries(metadata)) {
|
|
78447
|
-
switch (typeof value) {
|
|
78448
|
-
case "number":
|
|
78449
|
-
if (Math.trunc(value) === value) {
|
|
78450
|
-
this.dracoMetadataBuilder.AddIntEntry(dracoMetadata, key, value);
|
|
78451
|
-
} else {
|
|
78452
|
-
this.dracoMetadataBuilder.AddDoubleEntry(dracoMetadata, key, value);
|
|
78453
|
-
}
|
|
78454
|
-
break;
|
|
78455
|
-
case "object":
|
|
78456
|
-
if (value instanceof Int32Array) {
|
|
78457
|
-
this.dracoMetadataBuilder.AddIntEntryArray(dracoMetadata, key, value, value.length);
|
|
78458
|
-
}
|
|
78459
|
-
break;
|
|
78460
|
-
case "string":
|
|
78461
|
-
default:
|
|
78462
|
-
this.dracoMetadataBuilder.AddStringEntry(dracoMetadata, key, value);
|
|
78463
|
-
}
|
|
78464
|
-
}
|
|
78465
|
-
}
|
|
78466
|
-
};
|
|
78467
|
-
function dracoInt8ArrayToArrayBuffer(dracoData) {
|
|
78468
|
-
const byteLength = dracoData.size();
|
|
78469
|
-
const outputBuffer = new ArrayBuffer(byteLength);
|
|
78470
|
-
const outputData = new Int8Array(outputBuffer);
|
|
78471
|
-
for (let i = 0; i < byteLength; ++i) {
|
|
78472
|
-
outputData[i] = dracoData.GetValue(i);
|
|
78473
|
-
}
|
|
78474
|
-
return outputBuffer;
|
|
78475
|
-
}
|
|
78476
|
-
function getEntries(container) {
|
|
78477
|
-
const hasEntriesFunc = container.entries && !container.hasOwnProperty("entries");
|
|
78478
|
-
return hasEntriesFunc ? container.entries() : Object.entries(container);
|
|
78479
|
-
}
|
|
78480
78366
|
|
|
78481
|
-
// ../draco/src/
|
|
78482
|
-
var
|
|
78483
|
-
|
|
78484
|
-
|
|
78485
|
-
};
|
|
78486
|
-
var DracoWriter = {
|
|
78487
|
-
name: "DRACO",
|
|
78488
|
-
id: "draco",
|
|
78367
|
+
// ../draco/src/index.ts
|
|
78368
|
+
var DracoWriterWorker = {
|
|
78369
|
+
id: isBrowser2 ? "draco-writer" : "draco-writer-nodejs",
|
|
78370
|
+
name: "Draco compressed geometry writer",
|
|
78489
78371
|
module: "draco",
|
|
78490
|
-
version:
|
|
78491
|
-
|
|
78492
|
-
encode: encode2,
|
|
78372
|
+
version: VERSION5,
|
|
78373
|
+
worker: true,
|
|
78493
78374
|
options: {
|
|
78494
|
-
draco:
|
|
78375
|
+
draco: {},
|
|
78376
|
+
source: null
|
|
78495
78377
|
}
|
|
78496
78378
|
};
|
|
78497
|
-
async function encode2(data, options = {}) {
|
|
78498
|
-
const { draco } = await loadDracoEncoderModule(options);
|
|
78499
|
-
const dracoBuilder = new DracoBuilder(draco);
|
|
78500
|
-
try {
|
|
78501
|
-
return dracoBuilder.encodeSync(data, options.draco);
|
|
78502
|
-
} finally {
|
|
78503
|
-
dracoBuilder.destroy();
|
|
78504
|
-
}
|
|
78505
|
-
}
|
|
78506
|
-
|
|
78507
|
-
// ../draco/src/index.ts
|
|
78508
78379
|
var DracoLoader2 = {
|
|
78509
78380
|
...DracoLoader,
|
|
78510
78381
|
parse: parse2
|
|
@@ -79633,15 +79504,15 @@ async function loadDraco(tile, dracoData, options, context) {
|
|
|
79633
79504
|
}
|
|
79634
79505
|
|
|
79635
79506
|
// ../gltf/src/lib/utils/version.ts
|
|
79636
|
-
var
|
|
79507
|
+
var VERSION6 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
79637
79508
|
|
|
79638
79509
|
// ../textures/src/lib/utils/version.ts
|
|
79639
|
-
var
|
|
79510
|
+
var VERSION7 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
79640
79511
|
|
|
79641
79512
|
// ../textures/src/lib/parsers/basis-module-loader.ts
|
|
79642
|
-
var
|
|
79643
|
-
var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${
|
|
79644
|
-
var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${
|
|
79513
|
+
var VERSION8 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
79514
|
+
var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION8}/dist/libs/basis_encoder.wasm`;
|
|
79515
|
+
var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION8}/dist/libs/basis_encoder.js`;
|
|
79645
79516
|
var loadBasisTranscoderPromise;
|
|
79646
79517
|
async function loadBasisTrascoderModule(options) {
|
|
79647
79518
|
const modules = options.modules || {};
|
|
@@ -80137,7 +80008,7 @@ var BasisWorkerLoader = {
|
|
|
80137
80008
|
name: "Basis",
|
|
80138
80009
|
id: "basis",
|
|
80139
80010
|
module: "textures",
|
|
80140
|
-
version:
|
|
80011
|
+
version: VERSION7,
|
|
80141
80012
|
worker: true,
|
|
80142
80013
|
extensions: ["basis", "ktx2"],
|
|
80143
80014
|
mimeTypes: ["application/octet-stream", "image/ktx2"],
|
|
@@ -80450,7 +80321,7 @@ var CompressedTextureWorkerLoader = {
|
|
|
80450
80321
|
name: "Texture Containers",
|
|
80451
80322
|
id: "compressed-texture",
|
|
80452
80323
|
module: "textures",
|
|
80453
|
-
version:
|
|
80324
|
+
version: VERSION7,
|
|
80454
80325
|
worker: true,
|
|
80455
80326
|
extensions: [
|
|
80456
80327
|
"ktx",
|
|
@@ -80514,12 +80385,12 @@ async function encodeKTX2BasisTexture(image, options = {}) {
|
|
|
80514
80385
|
}
|
|
80515
80386
|
}
|
|
80516
80387
|
|
|
80517
|
-
// ../textures/src/ktx2-basis-
|
|
80518
|
-
var
|
|
80388
|
+
// ../textures/src/ktx2-basis-writer.ts
|
|
80389
|
+
var KTX2BasisWriter = {
|
|
80519
80390
|
name: "Basis Universal Supercompressed GPU Texture",
|
|
80520
|
-
id: "ktx2-basis-
|
|
80391
|
+
id: "ktx2-basis-writer",
|
|
80521
80392
|
module: "textures",
|
|
80522
|
-
version:
|
|
80393
|
+
version: VERSION7,
|
|
80523
80394
|
extensions: ["ktx2"],
|
|
80524
80395
|
options: {
|
|
80525
80396
|
useSRGB: false,
|
|
@@ -80531,7 +80402,7 @@ var KTX2BasisUniversalTextureWriter = {
|
|
|
80531
80402
|
};
|
|
80532
80403
|
|
|
80533
80404
|
// ../images/src/lib/utils/version.ts
|
|
80534
|
-
var
|
|
80405
|
+
var VERSION9 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
80535
80406
|
|
|
80536
80407
|
// ../images/src/lib/category-api/image-type.ts
|
|
80537
80408
|
var { _parseImageNode } = globalThis;
|
|
@@ -80873,7 +80744,7 @@ var ImageLoader = {
|
|
|
80873
80744
|
id: "image",
|
|
80874
80745
|
module: "images",
|
|
80875
80746
|
name: "Images",
|
|
80876
|
-
version:
|
|
80747
|
+
version: VERSION9,
|
|
80877
80748
|
mimeTypes: MIME_TYPES,
|
|
80878
80749
|
extensions: EXTENSIONS,
|
|
80879
80750
|
parse: parseImage,
|
|
@@ -80936,7 +80807,7 @@ var ImageWriter = {
|
|
|
80936
80807
|
name: "Images",
|
|
80937
80808
|
id: "image",
|
|
80938
80809
|
module: "images",
|
|
80939
|
-
version:
|
|
80810
|
+
version: VERSION9,
|
|
80940
80811
|
extensions: ["jpeg"],
|
|
80941
80812
|
options: {
|
|
80942
80813
|
image: {
|
|
@@ -81017,8 +80888,7 @@ function getTypedArrayForBufferView(json, buffers, bufferViewIndex) {
|
|
|
81017
80888
|
var EXT_meshopt_compression_exports = {};
|
|
81018
80889
|
__export(EXT_meshopt_compression_exports, {
|
|
81019
80890
|
decode: () => decode2,
|
|
81020
|
-
name: () => name
|
|
81021
|
-
preprocess: () => preprocess
|
|
80891
|
+
name: () => name
|
|
81022
80892
|
});
|
|
81023
80893
|
|
|
81024
80894
|
// ../gltf/src/lib/gltf-utils/gltf-utils.ts
|
|
@@ -81467,7 +81337,6 @@ var GLTFScenegraph = class {
|
|
|
81467
81337
|
};
|
|
81468
81338
|
|
|
81469
81339
|
// ../gltf/src/meshopt/meshopt-decoder.ts
|
|
81470
|
-
var isWebAssemblySupported = typeof WebAssembly !== "object";
|
|
81471
81340
|
var wasm_base = "B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB";
|
|
81472
81341
|
var wasm_simd = "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";
|
|
81473
81342
|
var detector = new Uint8Array([
|
|
@@ -81603,9 +81472,6 @@ var DECODERS = {
|
|
|
81603
81472
|
TRIANGLES: "meshopt_decodeIndexBuffer",
|
|
81604
81473
|
INDICES: "meshopt_decodeIndexSequence"
|
|
81605
81474
|
};
|
|
81606
|
-
function isMeshoptSupported() {
|
|
81607
|
-
return isWebAssemblySupported;
|
|
81608
|
-
}
|
|
81609
81475
|
async function meshoptDecodeGltfBuffer(target, count, size, source, mode, filter = "NONE") {
|
|
81610
81476
|
const instance = await loadWasmInstance();
|
|
81611
81477
|
decode(instance, instance.exports[DECODERS[mode]], target, count, size, source, instance.exports[FILTERS[filter || "NONE"]]);
|
|
@@ -81660,12 +81526,6 @@ function decode(instance, fun, target, count, size, source, filter) {
|
|
|
81660
81526
|
// ../gltf/src/lib/extensions/EXT_meshopt_compression.ts
|
|
81661
81527
|
var EXT_MESHOPT_COMPRESSION = "EXT_meshopt_compression";
|
|
81662
81528
|
var name = EXT_MESHOPT_COMPRESSION;
|
|
81663
|
-
function preprocess(gltfData) {
|
|
81664
|
-
const scenegraph = new GLTFScenegraph(gltfData);
|
|
81665
|
-
if (scenegraph.getRequiredExtensions().includes(EXT_MESHOPT_COMPRESSION) && !isMeshoptSupported()) {
|
|
81666
|
-
throw new Error(`gltf: Required extension ${EXT_MESHOPT_COMPRESSION} not supported by browser`);
|
|
81667
|
-
}
|
|
81668
|
-
}
|
|
81669
81529
|
async function decode2(gltfData, options) {
|
|
81670
81530
|
const scenegraph = new GLTFScenegraph(gltfData);
|
|
81671
81531
|
if (!options?.gltf?.decompressMeshes) {
|
|
@@ -81681,18 +81541,19 @@ async function decode2(gltfData, options) {
|
|
|
81681
81541
|
async function decodeMeshoptBufferView(scenegraph, bufferView) {
|
|
81682
81542
|
const meshoptExtension = scenegraph.getObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);
|
|
81683
81543
|
if (meshoptExtension) {
|
|
81684
|
-
const buffer = bufferView.buffer;
|
|
81685
81544
|
const {
|
|
81686
81545
|
byteOffset = 0,
|
|
81687
81546
|
byteLength = 0,
|
|
81688
81547
|
byteStride,
|
|
81689
81548
|
count,
|
|
81690
81549
|
mode,
|
|
81691
|
-
filter = "NONE"
|
|
81550
|
+
filter = "NONE",
|
|
81551
|
+
buffer: bufferIndex
|
|
81692
81552
|
} = meshoptExtension;
|
|
81693
|
-
const
|
|
81694
|
-
const
|
|
81695
|
-
|
|
81553
|
+
const buffer = scenegraph.gltf.buffers[bufferIndex];
|
|
81554
|
+
const source = new Uint8Array(buffer.arrayBuffer, buffer.byteOffset + byteOffset, byteLength);
|
|
81555
|
+
const result = new Uint8Array(scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer, bufferView.byteOffset, bufferView.byteLength);
|
|
81556
|
+
await meshoptDecodeGltfBuffer(result, count, byteStride, source, mode, filter);
|
|
81696
81557
|
return result;
|
|
81697
81558
|
}
|
|
81698
81559
|
return null;
|
|
@@ -81702,11 +81563,11 @@ async function decodeMeshoptBufferView(scenegraph, bufferView) {
|
|
|
81702
81563
|
var EXT_texture_webp_exports = {};
|
|
81703
81564
|
__export(EXT_texture_webp_exports, {
|
|
81704
81565
|
name: () => name2,
|
|
81705
|
-
preprocess: () =>
|
|
81566
|
+
preprocess: () => preprocess
|
|
81706
81567
|
});
|
|
81707
81568
|
var EXT_TEXTURE_WEBP = "EXT_texture_webp";
|
|
81708
81569
|
var name2 = EXT_TEXTURE_WEBP;
|
|
81709
|
-
function
|
|
81570
|
+
function preprocess(gltfData, options) {
|
|
81710
81571
|
const scenegraph = new GLTFScenegraph(gltfData);
|
|
81711
81572
|
if (!_isImageFormatSupported("image/webp")) {
|
|
81712
81573
|
if (scenegraph.getRequiredExtensions().includes(EXT_TEXTURE_WEBP)) {
|
|
@@ -81729,11 +81590,11 @@ function preprocess2(gltfData, options) {
|
|
|
81729
81590
|
var KHR_texture_basisu_exports = {};
|
|
81730
81591
|
__export(KHR_texture_basisu_exports, {
|
|
81731
81592
|
name: () => name3,
|
|
81732
|
-
preprocess: () =>
|
|
81593
|
+
preprocess: () => preprocess2
|
|
81733
81594
|
});
|
|
81734
81595
|
var KHR_TEXTURE_BASISU = "KHR_texture_basisu";
|
|
81735
81596
|
var name3 = KHR_TEXTURE_BASISU;
|
|
81736
|
-
function
|
|
81597
|
+
function preprocess2(gltfData, options) {
|
|
81737
81598
|
const scene = new GLTFScenegraph(gltfData);
|
|
81738
81599
|
const { json } = scene;
|
|
81739
81600
|
for (const texture of json.textures || []) {
|
|
@@ -81750,9 +81611,9 @@ function preprocess3(gltfData, options) {
|
|
|
81750
81611
|
var KHR_draco_mesh_compression_exports = {};
|
|
81751
81612
|
__export(KHR_draco_mesh_compression_exports, {
|
|
81752
81613
|
decode: () => decode3,
|
|
81753
|
-
encode: () =>
|
|
81614
|
+
encode: () => encode2,
|
|
81754
81615
|
name: () => name4,
|
|
81755
|
-
preprocess: () =>
|
|
81616
|
+
preprocess: () => preprocess3
|
|
81756
81617
|
});
|
|
81757
81618
|
|
|
81758
81619
|
// ../gltf/src/lib/gltf-utils/gltf-attribute-utils.ts
|
|
@@ -81811,7 +81672,7 @@ function toTypedArray(array, ArrayType, convertTypedArrays = false) {
|
|
|
81811
81672
|
// ../gltf/src/lib/extensions/KHR_draco_mesh_compression.ts
|
|
81812
81673
|
var KHR_DRACO_MESH_COMPRESSION = "KHR_draco_mesh_compression";
|
|
81813
81674
|
var name4 = KHR_DRACO_MESH_COMPRESSION;
|
|
81814
|
-
function
|
|
81675
|
+
function preprocess3(gltfData, options, context) {
|
|
81815
81676
|
const scenegraph = new GLTFScenegraph(gltfData);
|
|
81816
81677
|
for (const primitive of makeMeshPrimitiveIterator(scenegraph)) {
|
|
81817
81678
|
if (scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {
|
|
@@ -81832,7 +81693,7 @@ async function decode3(gltfData, options, context) {
|
|
|
81832
81693
|
await Promise.all(promises);
|
|
81833
81694
|
scenegraph.removeExtension(KHR_DRACO_MESH_COMPRESSION);
|
|
81834
81695
|
}
|
|
81835
|
-
function
|
|
81696
|
+
function encode2(gltfData, options = {}) {
|
|
81836
81697
|
const scenegraph = new GLTFScenegraph(gltfData);
|
|
81837
81698
|
for (const mesh of scenegraph.json.meshes || []) {
|
|
81838
81699
|
compressMesh(mesh, options);
|
|
@@ -81908,7 +81769,7 @@ function* makeMeshPrimitiveIterator(scenegraph) {
|
|
|
81908
81769
|
var KHR_lights_punctual_exports = {};
|
|
81909
81770
|
__export(KHR_lights_punctual_exports, {
|
|
81910
81771
|
decode: () => decode4,
|
|
81911
|
-
encode: () =>
|
|
81772
|
+
encode: () => encode3,
|
|
81912
81773
|
name: () => name5
|
|
81913
81774
|
});
|
|
81914
81775
|
var KHR_LIGHTS_PUNCTUAL = "KHR_lights_punctual";
|
|
@@ -81929,7 +81790,7 @@ async function decode4(gltfData) {
|
|
|
81929
81790
|
gltfScenegraph.removeObjectExtension(node2, KHR_LIGHTS_PUNCTUAL);
|
|
81930
81791
|
}
|
|
81931
81792
|
}
|
|
81932
|
-
async function
|
|
81793
|
+
async function encode3(gltfData) {
|
|
81933
81794
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
81934
81795
|
const { json } = gltfScenegraph;
|
|
81935
81796
|
if (json.lights) {
|
|
@@ -81951,7 +81812,7 @@ async function encode4(gltfData) {
|
|
|
81951
81812
|
var KHR_materials_unlit_exports = {};
|
|
81952
81813
|
__export(KHR_materials_unlit_exports, {
|
|
81953
81814
|
decode: () => decode5,
|
|
81954
|
-
encode: () =>
|
|
81815
|
+
encode: () => encode4,
|
|
81955
81816
|
name: () => name6
|
|
81956
81817
|
});
|
|
81957
81818
|
var KHR_MATERIALS_UNLIT = "KHR_materials_unlit";
|
|
@@ -81968,7 +81829,7 @@ async function decode5(gltfData) {
|
|
|
81968
81829
|
gltfScenegraph.removeObjectExtension(material, KHR_MATERIALS_UNLIT);
|
|
81969
81830
|
}
|
|
81970
81831
|
}
|
|
81971
|
-
function
|
|
81832
|
+
function encode4(gltfData) {
|
|
81972
81833
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
81973
81834
|
const { json } = gltfScenegraph;
|
|
81974
81835
|
if (gltfScenegraph.materials) {
|
|
@@ -81986,7 +81847,7 @@ function encode5(gltfData) {
|
|
|
81986
81847
|
var KHR_techniques_webgl_exports = {};
|
|
81987
81848
|
__export(KHR_techniques_webgl_exports, {
|
|
81988
81849
|
decode: () => decode6,
|
|
81989
|
-
encode: () =>
|
|
81850
|
+
encode: () => encode5,
|
|
81990
81851
|
name: () => name7
|
|
81991
81852
|
});
|
|
81992
81853
|
var KHR_TECHNIQUES_WEBGL = "KHR_techniques_webgl";
|
|
@@ -82008,7 +81869,7 @@ async function decode6(gltfData) {
|
|
|
82008
81869
|
gltfScenegraph.removeExtension(KHR_TECHNIQUES_WEBGL);
|
|
82009
81870
|
}
|
|
82010
81871
|
}
|
|
82011
|
-
async function
|
|
81872
|
+
async function encode5(gltfData, options) {
|
|
82012
81873
|
}
|
|
82013
81874
|
function resolveTechniques(techniquesExtension, gltfScenegraph) {
|
|
82014
81875
|
const { programs = [], shaders = [], techniques = [] } = techniquesExtension;
|
|
@@ -82074,7 +81935,7 @@ function useExtension(extensionName, options) {
|
|
|
82074
81935
|
|
|
82075
81936
|
// ../gltf/src/lib/extensions/KHR_binary_gltf.ts
|
|
82076
81937
|
var KHR_BINARY_GLTF = "KHR_binary_glTF";
|
|
82077
|
-
function
|
|
81938
|
+
function preprocess4(gltfData) {
|
|
82078
81939
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
82079
81940
|
const { json } = gltfScenegraph;
|
|
82080
81941
|
for (const image of json.images || []) {
|
|
@@ -82155,7 +82016,7 @@ var GLTFV1Normalizer = class {
|
|
|
82155
82016
|
console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail.");
|
|
82156
82017
|
this._addAsset(json);
|
|
82157
82018
|
this._convertTopLevelObjectsToArrays(json);
|
|
82158
|
-
|
|
82019
|
+
preprocess4(gltf);
|
|
82159
82020
|
this._convertObjectIdsToArrayIndices(json);
|
|
82160
82021
|
this._updateObjects(json);
|
|
82161
82022
|
this._updateMaterial(json);
|
|
@@ -82772,6 +82633,12 @@ async function loadBuffers(gltf, options, context) {
|
|
|
82772
82633
|
byteLength: arrayBuffer.byteLength
|
|
82773
82634
|
};
|
|
82774
82635
|
delete buffer.uri;
|
|
82636
|
+
} else if (gltf.buffers[i] === null) {
|
|
82637
|
+
gltf.buffers[i] = {
|
|
82638
|
+
arrayBuffer: new ArrayBuffer(buffer.byteLength),
|
|
82639
|
+
byteOffset: 0,
|
|
82640
|
+
byteLength: buffer.byteLength
|
|
82641
|
+
};
|
|
82775
82642
|
}
|
|
82776
82643
|
}
|
|
82777
82644
|
}
|
|
@@ -82826,7 +82693,7 @@ var GLTFLoader = {
|
|
|
82826
82693
|
name: "glTF",
|
|
82827
82694
|
id: "gltf",
|
|
82828
82695
|
module: "gltf",
|
|
82829
|
-
version:
|
|
82696
|
+
version: VERSION6,
|
|
82830
82697
|
extensions: ["gltf", "glb"],
|
|
82831
82698
|
mimeTypes: ["model/gltf+json", "model/gltf-binary"],
|
|
82832
82699
|
text: true,
|
|
@@ -82924,7 +82791,7 @@ var GLTFWriter = {
|
|
|
82924
82791
|
name: "glTF",
|
|
82925
82792
|
id: "gltf",
|
|
82926
82793
|
module: "gltf",
|
|
82927
|
-
version:
|
|
82794
|
+
version: VERSION6,
|
|
82928
82795
|
extensions: ["glb"],
|
|
82929
82796
|
mimeTypes: ["model/gltf-binary"],
|
|
82930
82797
|
binary: true,
|
|
@@ -83020,7 +82887,7 @@ function parseBatchedModel(tile, arrayBuffer, byteOffset, options, context) {
|
|
|
83020
82887
|
|
|
83021
82888
|
// ../3d-tiles/src/lib/parsers/parse-3d-tile-instanced-model.ts
|
|
83022
82889
|
var import_core15 = __toModule(require_es56());
|
|
83023
|
-
var
|
|
82890
|
+
var import_geospatial7 = __toModule(require_es57());
|
|
83024
82891
|
async function parseInstancedModel3DTile(tile, arrayBuffer, byteOffset, options, context) {
|
|
83025
82892
|
byteOffset = parseInstancedModel(tile, arrayBuffer, byteOffset, options, context);
|
|
83026
82893
|
await extractGLTF(tile, tile.gltfFormat, options, context);
|
|
@@ -83118,7 +82985,7 @@ function extractInstancedAttributes(tile, featureTable, batchTable, instancesLen
|
|
|
83118
82985
|
}
|
|
83119
82986
|
throw new Error("i3dm: oct-encoded orientation not implemented");
|
|
83120
82987
|
} else if (tile.eastNorthUp) {
|
|
83121
|
-
|
|
82988
|
+
import_geospatial7.Ellipsoid.WGS84.eastNorthUpToFixedFrame(instancePosition, instanceTransform);
|
|
83122
82989
|
instanceTransform.getRotationMatrix3(instanceRotation);
|
|
83123
82990
|
} else {
|
|
83124
82991
|
instanceRotation.identity();
|
|
@@ -83259,7 +83126,7 @@ var Tile3DSubtreeLoader = {
|
|
|
83259
83126
|
id: "3d-tiles-subtree",
|
|
83260
83127
|
name: "3D Tiles Subtree",
|
|
83261
83128
|
module: "3d-tiles",
|
|
83262
|
-
version:
|
|
83129
|
+
version: VERSION4,
|
|
83263
83130
|
extensions: ["subtree"],
|
|
83264
83131
|
mimeTypes: ["application/octet-stream"],
|
|
83265
83132
|
tests: ["subtree"],
|
|
@@ -83563,7 +83430,7 @@ var Tiles3DLoader = {
|
|
|
83563
83430
|
id: "3d-tiles",
|
|
83564
83431
|
name: "3D Tiles",
|
|
83565
83432
|
module: "3d-tiles",
|
|
83566
|
-
version:
|
|
83433
|
+
version: VERSION4,
|
|
83567
83434
|
extensions: ["cmpt", "pnts", "b3dm", "i3dm"],
|
|
83568
83435
|
mimeTypes: ["application/octet-stream"],
|
|
83569
83436
|
tests: ["cmpt", "pnts", "b3dm", "i3dm"],
|
|
@@ -83858,7 +83725,7 @@ var Tile3DWriter = {
|
|
|
83858
83725
|
name: "3D Tile",
|
|
83859
83726
|
id: "3d-tiles",
|
|
83860
83727
|
module: "3d-tiles",
|
|
83861
|
-
version:
|
|
83728
|
+
version: VERSION4,
|
|
83862
83729
|
extensions: ["cmpt", "pnts", "b3dm", "i3dm"],
|
|
83863
83730
|
mimeTypes: ["application/octet-stream"],
|
|
83864
83731
|
encodeSync: encodeSync3,
|
|
@@ -83997,31 +83864,37 @@ var NodePages = class {
|
|
|
83997
83864
|
this.updateResourceInMesh(node2);
|
|
83998
83865
|
return node2.index;
|
|
83999
83866
|
}
|
|
84000
|
-
async save(layers0Path,
|
|
83867
|
+
async save(layers0Path, writeQueue, slpk = false) {
|
|
84001
83868
|
if (slpk) {
|
|
84002
83869
|
for (const [index, nodePage] of this.nodePages.entries()) {
|
|
84003
83870
|
const nodePageStr = JSON.stringify(nodePage);
|
|
84004
83871
|
const slpkPath = (0, import_path2.join)(layers0Path, "nodepages");
|
|
84005
|
-
|
|
83872
|
+
writeQueue.enqueue({
|
|
83873
|
+
archiveKey: `nodePages/${index.toString()}.json.gz`,
|
|
83874
|
+
writePromise: this.writeFile(slpkPath, nodePageStr, `${index.toString()}.json`)
|
|
83875
|
+
});
|
|
84006
83876
|
}
|
|
84007
83877
|
const metadata = (0, import_json_map_transform.default)({ nodeCount: this.nodesCounter }, METADATA());
|
|
84008
83878
|
const compress = false;
|
|
84009
|
-
|
|
83879
|
+
writeQueue.enqueue({
|
|
83880
|
+
archiveKey: "metadata.json",
|
|
83881
|
+
writePromise: this.writeFile(layers0Path, JSON.stringify(metadata), "metadata.json", compress)
|
|
83882
|
+
});
|
|
84010
83883
|
} else {
|
|
84011
83884
|
for (const [index, nodePage] of this.nodePages.entries()) {
|
|
84012
83885
|
const nodePageStr = JSON.stringify(nodePage);
|
|
84013
83886
|
const nodePagePath = (0, import_path2.join)(layers0Path, "nodepages", index.toString());
|
|
84014
|
-
|
|
83887
|
+
writeQueue.enqueue({ writePromise: this.writeFile(nodePagePath, nodePageStr) });
|
|
84015
83888
|
}
|
|
84016
83889
|
}
|
|
84017
83890
|
}
|
|
84018
83891
|
};
|
|
84019
83892
|
|
|
84020
|
-
// src/lib/utils/file-utils.
|
|
83893
|
+
// src/lib/utils/file-utils.ts
|
|
84021
83894
|
var import_fs3 = __toModule(require("fs"));
|
|
84022
83895
|
var import_path4 = __toModule(require("path"));
|
|
84023
83896
|
|
|
84024
|
-
// src/lib/utils/compress-util.
|
|
83897
|
+
// src/lib/utils/compress-util.ts
|
|
84025
83898
|
var import_zlib = __toModule(require("zlib"));
|
|
84026
83899
|
var import_path3 = __toModule(require("path"));
|
|
84027
83900
|
var import_fs2 = __toModule(require("fs"));
|
|
@@ -84045,11 +83918,11 @@ function compressFileWithGzip(pathFile) {
|
|
|
84045
83918
|
input.pipe(gzip).pipe(output);
|
|
84046
83919
|
});
|
|
84047
83920
|
}
|
|
84048
|
-
async function compressWithChildProcess() {
|
|
83921
|
+
async function compressWithChildProcess(inputFolder, outputFile, level, inputFiles, sevenZipExe) {
|
|
84049
83922
|
if (process.platform === "win32") {
|
|
84050
|
-
await compressWithChildProcessWindows(
|
|
83923
|
+
await compressWithChildProcessWindows(inputFolder, outputFile, level, inputFiles, sevenZipExe);
|
|
84051
83924
|
} else {
|
|
84052
|
-
await compressWithChildProcessUnix(
|
|
83925
|
+
await compressWithChildProcessUnix(inputFolder, outputFile, level, inputFiles);
|
|
84053
83926
|
}
|
|
84054
83927
|
}
|
|
84055
83928
|
async function compressWithChildProcessUnix(inputFolder, outputFile, level = 0, inputFiles = ".") {
|
|
@@ -84082,12 +83955,20 @@ async function compressWithChildProcessWindows(inputFolder, outputFile, level =
|
|
|
84082
83955
|
});
|
|
84083
83956
|
}
|
|
84084
83957
|
|
|
84085
|
-
// src/lib/utils/file-utils.
|
|
83958
|
+
// src/lib/utils/file-utils.ts
|
|
84086
83959
|
async function writeFile3(path2, data, fileName = "index.json") {
|
|
83960
|
+
let toWriteData;
|
|
83961
|
+
if (data instanceof Promise) {
|
|
83962
|
+
toWriteData = new Uint8Array(await data);
|
|
83963
|
+
} else if (data instanceof ArrayBuffer) {
|
|
83964
|
+
toWriteData = new Uint8Array(data);
|
|
83965
|
+
} else {
|
|
83966
|
+
toWriteData = data;
|
|
83967
|
+
}
|
|
84087
83968
|
await import_fs3.promises.mkdir(path2, { recursive: true });
|
|
84088
83969
|
const pathFile = (0, import_path4.join)(path2, fileName);
|
|
84089
83970
|
try {
|
|
84090
|
-
await import_fs3.promises.writeFile(pathFile,
|
|
83971
|
+
await import_fs3.promises.writeFile(pathFile, toWriteData);
|
|
84091
83972
|
} catch (err) {
|
|
84092
83973
|
throw err;
|
|
84093
83974
|
}
|
|
@@ -84113,7 +83994,7 @@ function getAbsoluteFilePath(filePath) {
|
|
|
84113
83994
|
return (0, import_path4.isAbsolute)(filePath) ? filePath : (0, import_path4.join)(process.cwd(), filePath);
|
|
84114
83995
|
}
|
|
84115
83996
|
|
|
84116
|
-
// src/lib/utils/statistic-utills.
|
|
83997
|
+
// src/lib/utils/statistic-utills.ts
|
|
84117
83998
|
var import_path5 = __toModule(require("path"));
|
|
84118
83999
|
var import_fs4 = __toModule(require("fs"));
|
|
84119
84000
|
function timeConverter(time) {
|
|
@@ -84171,16 +84052,17 @@ async function getTotalFilesSize(dirPath) {
|
|
|
84171
84052
|
return totalFileSize;
|
|
84172
84053
|
}
|
|
84173
84054
|
|
|
84174
|
-
// src/i3s-converter/helpers/geometry-converter.
|
|
84055
|
+
// src/i3s-converter/helpers/geometry-converter.ts
|
|
84175
84056
|
var import_core21 = __toModule(require_es56());
|
|
84176
|
-
var
|
|
84057
|
+
var import_geospatial9 = __toModule(require_es57());
|
|
84177
84058
|
var import_md5 = __toModule(require_md52());
|
|
84178
84059
|
|
|
84179
84060
|
// src/i3s-converter/helpers/geometry-attributes.ts
|
|
84180
84061
|
var VALUES_PER_VERTEX = 3;
|
|
84181
84062
|
var POSITIONS_AND_NORMALS_PER_TRIANGLE = 9;
|
|
84182
84063
|
function generateAttributes(attributes) {
|
|
84183
|
-
const { positions, normals, texCoords, colors, featureIndices
|
|
84064
|
+
const { positions, normals, texCoords, colors, featureIndices } = attributes;
|
|
84065
|
+
const triangleCount = positions.length / POSITIONS_AND_NORMALS_PER_TRIANGLE;
|
|
84184
84066
|
if (!featureIndices.length) {
|
|
84185
84067
|
return {
|
|
84186
84068
|
faceRange: new Uint32Array([0, triangleCount - 1]),
|
|
@@ -84325,14 +84207,14 @@ function groupAttributesAndRangesByFeatureId(unifiedObjects, featureCount) {
|
|
|
84325
84207
|
|
|
84326
84208
|
// src/i3s-converter/helpers/coordinate-converter.ts
|
|
84327
84209
|
var import_core20 = __toModule(require_es56());
|
|
84328
|
-
var
|
|
84210
|
+
var import_geospatial8 = __toModule(require_es57());
|
|
84329
84211
|
var import_culling5 = __toModule(require_es58());
|
|
84330
84212
|
function createBoundingVolumes(tile, geoidHeightModel) {
|
|
84331
84213
|
let radius;
|
|
84332
84214
|
let halfSize;
|
|
84333
84215
|
let quaternion;
|
|
84334
84216
|
const boundingVolume = tile.boundingVolume;
|
|
84335
|
-
const cartographicCenter =
|
|
84217
|
+
const cartographicCenter = import_geospatial8.Ellipsoid.WGS84.cartesianToCartographic(boundingVolume.center, new import_core20.Vector3());
|
|
84336
84218
|
cartographicCenter[2] = cartographicCenter[2] - geoidHeightModel.getHeight(cartographicCenter[1], cartographicCenter[0]);
|
|
84337
84219
|
if (boundingVolume instanceof import_culling5.OrientedBoundingBox) {
|
|
84338
84220
|
halfSize = boundingVolume.halfSize;
|
|
@@ -84356,8 +84238,8 @@ function createBoundingVolumesFromGeometry(cartesianPositions, geoidHeightModel)
|
|
|
84356
84238
|
const positionVectors = convertPositionsToVectors(cartesianPositions);
|
|
84357
84239
|
const geometryObb = (0, import_culling5.makeOrientedBoundingBoxFromPoints)(positionVectors);
|
|
84358
84240
|
const geometryMbs = (0, import_culling5.makeBoundingSphereFromPoints)(positionVectors);
|
|
84359
|
-
let mbsCenter =
|
|
84360
|
-
let obbCenter =
|
|
84241
|
+
let mbsCenter = import_geospatial8.Ellipsoid.WGS84.cartesianToCartographic(geometryMbs.center, new import_core20.Vector3());
|
|
84242
|
+
let obbCenter = import_geospatial8.Ellipsoid.WGS84.cartesianToCartographic(geometryObb.center, new import_core20.Vector3());
|
|
84361
84243
|
mbsCenter[2] = mbsCenter[2] - geoidHeightModel.getHeight(mbsCenter[1], mbsCenter[0]);
|
|
84362
84244
|
obbCenter[2] = obbCenter[2] - geoidHeightModel.getHeight(obbCenter[1], obbCenter[0]);
|
|
84363
84245
|
return {
|
|
@@ -84377,22 +84259,25 @@ function convertPositionsToVectors(positions) {
|
|
|
84377
84259
|
}
|
|
84378
84260
|
return result;
|
|
84379
84261
|
}
|
|
84380
|
-
function
|
|
84381
|
-
|
|
84382
|
-
if (
|
|
84383
|
-
|
|
84262
|
+
function convertBoundingVolumeToI3SFullExtent(boundingVolume) {
|
|
84263
|
+
let sphere;
|
|
84264
|
+
if (boundingVolume instanceof import_culling5.BoundingSphere) {
|
|
84265
|
+
sphere = boundingVolume;
|
|
84266
|
+
} else {
|
|
84267
|
+
sphere = boundingVolume.getBoundingSphere();
|
|
84384
84268
|
}
|
|
84385
|
-
const
|
|
84386
|
-
const
|
|
84387
|
-
const
|
|
84388
|
-
const
|
|
84389
|
-
|
|
84390
|
-
|
|
84391
|
-
|
|
84392
|
-
|
|
84393
|
-
|
|
84394
|
-
|
|
84395
|
-
|
|
84269
|
+
const center = sphere.center;
|
|
84270
|
+
const radius = sphere.radius;
|
|
84271
|
+
const vertexMax = import_geospatial8.Ellipsoid.WGS84.cartesianToCartographic(new import_core20.Vector3(center[0] + radius, center[1] + radius, center[2] + radius), new import_core20.Vector3());
|
|
84272
|
+
const vertexMin = import_geospatial8.Ellipsoid.WGS84.cartesianToCartographic(new import_core20.Vector3(center[0] - radius, center[1] - radius, center[2] - radius), new import_core20.Vector3());
|
|
84273
|
+
return {
|
|
84274
|
+
xmin: vertexMin[0],
|
|
84275
|
+
xmax: vertexMax[0],
|
|
84276
|
+
ymin: vertexMin[1],
|
|
84277
|
+
ymax: vertexMax[1],
|
|
84278
|
+
zmin: vertexMin[2],
|
|
84279
|
+
zmax: vertexMax[2]
|
|
84280
|
+
};
|
|
84396
84281
|
}
|
|
84397
84282
|
function createObbFromMbs(mbs) {
|
|
84398
84283
|
const radius = mbs[3];
|
|
@@ -84401,7 +84286,49 @@ function createObbFromMbs(mbs) {
|
|
|
84401
84286
|
return new import_culling5.OrientedBoundingBox(center, halfAxex);
|
|
84402
84287
|
}
|
|
84403
84288
|
|
|
84404
|
-
// src/i3s-converter/helpers/
|
|
84289
|
+
// src/i3s-converter/helpers/gltf-attributes.ts
|
|
84290
|
+
function getB3DMAttributesWithoutBufferView(attributes) {
|
|
84291
|
+
const attributesWithoutBufferView = {};
|
|
84292
|
+
for (const attributeName in attributes) {
|
|
84293
|
+
attributesWithoutBufferView[attributeName] = {
|
|
84294
|
+
value: attributes[attributeName].value
|
|
84295
|
+
};
|
|
84296
|
+
}
|
|
84297
|
+
return attributesWithoutBufferView;
|
|
84298
|
+
}
|
|
84299
|
+
function prepareDataForAttributesConversion(tileContent) {
|
|
84300
|
+
const gltfMaterials = tileContent.gltf?.materials?.map((material) => ({ id: material.id }));
|
|
84301
|
+
let nodes = tileContent.gltf?.scene?.nodes || tileContent.gltf?.scenes?.[0]?.nodes || tileContent.gltf?.nodes || [];
|
|
84302
|
+
const prepearedNodes = nodes.map((node2) => {
|
|
84303
|
+
if (!node2.mesh) {
|
|
84304
|
+
return node2;
|
|
84305
|
+
}
|
|
84306
|
+
return {
|
|
84307
|
+
...node2,
|
|
84308
|
+
mesh: {
|
|
84309
|
+
...node2.mesh,
|
|
84310
|
+
primitives: node2.mesh?.primitives.map((primitive) => ({
|
|
84311
|
+
...primitive,
|
|
84312
|
+
indices: { value: primitive?.indices?.value },
|
|
84313
|
+
attributes: getB3DMAttributesWithoutBufferView(primitive.attributes),
|
|
84314
|
+
material: {
|
|
84315
|
+
id: primitive?.material?.id
|
|
84316
|
+
}
|
|
84317
|
+
}))
|
|
84318
|
+
}
|
|
84319
|
+
};
|
|
84320
|
+
});
|
|
84321
|
+
const cartographicOrigin = tileContent.cartographicOrigin;
|
|
84322
|
+
const cartesianModelMatrix = tileContent.cartesianModelMatrix;
|
|
84323
|
+
return {
|
|
84324
|
+
gltfMaterials,
|
|
84325
|
+
nodes: prepearedNodes,
|
|
84326
|
+
cartographicOrigin,
|
|
84327
|
+
cartesianModelMatrix
|
|
84328
|
+
};
|
|
84329
|
+
}
|
|
84330
|
+
|
|
84331
|
+
// src/i3s-converter/helpers/geometry-converter.ts
|
|
84405
84332
|
var DEFAULT_ROUGHNESS_FACTOR = 1;
|
|
84406
84333
|
var DEFAULT_METALLIC_FACTOR = 1;
|
|
84407
84334
|
var VALUES_PER_VERTEX2 = 3;
|
|
@@ -84413,10 +84340,11 @@ var DOUBLE_TYPE = "Float64";
|
|
|
84413
84340
|
var OBJECT_ID_TYPE = "Oid32";
|
|
84414
84341
|
var BATCHED_ID_POSSIBLE_ATTRIBUTE_NAMES = ["CUSTOM_ATTRIBUTE_2", "_BATCHID", "BATCHID"];
|
|
84415
84342
|
var scratchVector4 = new import_core21.Vector3();
|
|
84416
|
-
async function convertB3dmToI3sGeometry(tileContent, nodeId, featuresHashArray, attributeStorageInfo, draco, generateBoundingVolumes, geoidHeightModel) {
|
|
84343
|
+
async function convertB3dmToI3sGeometry(tileContent, nodeId, featuresHashArray, attributeStorageInfo, draco, generateBoundingVolumes, geoidHeightModel, workerSource) {
|
|
84417
84344
|
const useCartesianPositions = generateBoundingVolumes;
|
|
84418
|
-
const materialAndTextureList = convertMaterials(tileContent);
|
|
84419
|
-
const
|
|
84345
|
+
const materialAndTextureList = convertMaterials(tileContent.gltf?.materials);
|
|
84346
|
+
const dataForAttributesConversion = prepareDataForAttributesConversion(tileContent);
|
|
84347
|
+
const convertedAttributesMap = await convertAttributes(dataForAttributesConversion, useCartesianPositions);
|
|
84420
84348
|
if (generateBoundingVolumes) {
|
|
84421
84349
|
_generateBoundingVolumesFromGeometry(convertedAttributesMap, geoidHeightModel);
|
|
84422
84350
|
}
|
|
@@ -84427,7 +84355,7 @@ async function convertB3dmToI3sGeometry(tileContent, nodeId, featuresHashArray,
|
|
|
84427
84355
|
}
|
|
84428
84356
|
const result = [];
|
|
84429
84357
|
let nodesCounter = nodeId;
|
|
84430
|
-
let { materials = [] } = tileContent.gltf;
|
|
84358
|
+
let { materials = [] } = tileContent.gltf || { materials: [] };
|
|
84431
84359
|
if (!materials?.length) {
|
|
84432
84360
|
materials.push({ id: "default" });
|
|
84433
84361
|
}
|
|
@@ -84437,6 +84365,9 @@ async function convertB3dmToI3sGeometry(tileContent, nodeId, featuresHashArray,
|
|
|
84437
84365
|
continue;
|
|
84438
84366
|
}
|
|
84439
84367
|
const convertedAttributes = convertedAttributesMap.get(sourceMaterial.id);
|
|
84368
|
+
if (!convertedAttributes) {
|
|
84369
|
+
continue;
|
|
84370
|
+
}
|
|
84440
84371
|
const { material, texture } = materialAndTextureList[i];
|
|
84441
84372
|
result.push(await _makeNodeResources({
|
|
84442
84373
|
convertedAttributes,
|
|
@@ -84446,7 +84377,8 @@ async function convertB3dmToI3sGeometry(tileContent, nodeId, featuresHashArray,
|
|
|
84446
84377
|
nodeId: nodesCounter,
|
|
84447
84378
|
featuresHashArray,
|
|
84448
84379
|
attributeStorageInfo,
|
|
84449
|
-
draco
|
|
84380
|
+
draco,
|
|
84381
|
+
workerSource
|
|
84450
84382
|
}));
|
|
84451
84383
|
nodesCounter++;
|
|
84452
84384
|
}
|
|
@@ -84462,7 +84394,7 @@ function _generateBoundingVolumesFromGeometry(convertedAttributesMap, geoidHeigh
|
|
|
84462
84394
|
const cartographicOrigin = boundingVolumes.obb.center;
|
|
84463
84395
|
for (let index = 0; index < attributes.positions.length; index += VALUES_PER_VERTEX2) {
|
|
84464
84396
|
const vertex = attributes.positions.subarray(index, index + VALUES_PER_VERTEX2);
|
|
84465
|
-
|
|
84397
|
+
import_geospatial9.Ellipsoid.WGS84.cartesianToCartographic(Array.from(vertex), scratchVector4);
|
|
84466
84398
|
scratchVector4[2] = scratchVector4[2] - geoidHeightModel.getHeight(scratchVector4[1], scratchVector4[0]);
|
|
84467
84399
|
scratchVector4 = scratchVector4.subtract(cartographicOrigin);
|
|
84468
84400
|
attributes.positions.set(scratchVector4, index);
|
|
@@ -84477,12 +84409,12 @@ async function _makeNodeResources({
|
|
|
84477
84409
|
nodeId,
|
|
84478
84410
|
featuresHashArray,
|
|
84479
84411
|
attributeStorageInfo,
|
|
84480
|
-
draco
|
|
84412
|
+
draco,
|
|
84413
|
+
workerSource
|
|
84481
84414
|
}) {
|
|
84482
84415
|
const boundingVolumes = convertedAttributes.boundingVolumes;
|
|
84483
84416
|
const vertexCount = convertedAttributes.positions.length / VALUES_PER_VERTEX2;
|
|
84484
|
-
const
|
|
84485
|
-
const { faceRange, featureIds, positions, normals, colors, texCoords, featureCount } = generateAttributes({ triangleCount, ...convertedAttributes });
|
|
84417
|
+
const { faceRange, featureIds, positions, normals, colors, texCoords, featureCount } = generateAttributes(convertedAttributes);
|
|
84486
84418
|
if (tileContent.batchTableJson) {
|
|
84487
84419
|
makeFeatureIdsUnique(featureIds, convertedAttributes.featureIndices, featuresHashArray, tileContent.batchTableJson);
|
|
84488
84420
|
}
|
|
@@ -84490,20 +84422,20 @@ async function _makeNodeResources({
|
|
|
84490
84422
|
const typedFeatureIds = generateBigUint64Array(featureIds);
|
|
84491
84423
|
header.set([vertexCount, featureCount], 0);
|
|
84492
84424
|
const fileBuffer = new Uint8Array(concatenateArrayBuffers(header.buffer, positions.buffer, normals.buffer, texture ? texCoords.buffer : new ArrayBuffer(0), colors.buffer, typedFeatureIds.buffer, faceRange.buffer));
|
|
84493
|
-
const compressedGeometry = draco ?
|
|
84425
|
+
const compressedGeometry = draco ? generateCompressedGeometry(vertexCount, convertedAttributes, {
|
|
84494
84426
|
positions,
|
|
84495
84427
|
normals,
|
|
84496
84428
|
texCoords: texture ? texCoords : new Float32Array(0),
|
|
84497
84429
|
colors,
|
|
84498
84430
|
featureIds,
|
|
84499
84431
|
faceRange
|
|
84500
|
-
}) : null;
|
|
84432
|
+
}, workerSource.draco) : null;
|
|
84501
84433
|
const attributes = convertBatchTableToAttributeBuffers(tileContent.batchTableJson, featureIds, attributeStorageInfo);
|
|
84502
84434
|
return {
|
|
84503
84435
|
geometry: fileBuffer,
|
|
84504
84436
|
compressedGeometry,
|
|
84505
84437
|
texture,
|
|
84506
|
-
sharedResources: getSharedResources(tileContent, nodeId),
|
|
84438
|
+
sharedResources: getSharedResources(tileContent.gltf?.materials || [], nodeId),
|
|
84507
84439
|
meshMaterial: material,
|
|
84508
84440
|
vertexCount,
|
|
84509
84441
|
attributes,
|
|
@@ -84511,34 +84443,41 @@ async function _makeNodeResources({
|
|
|
84511
84443
|
boundingVolumes
|
|
84512
84444
|
};
|
|
84513
84445
|
}
|
|
84514
|
-
function convertAttributes(
|
|
84446
|
+
async function convertAttributes(attributesData, useCartesianPositions) {
|
|
84447
|
+
const { gltfMaterials, nodes, cartographicOrigin, cartesianModelMatrix } = attributesData;
|
|
84515
84448
|
const attributesMap = new Map();
|
|
84516
|
-
for (const material of
|
|
84449
|
+
for (const material of gltfMaterials || [{ id: "default" }]) {
|
|
84517
84450
|
attributesMap.set(material.id, {
|
|
84518
84451
|
positions: new Float32Array(0),
|
|
84519
84452
|
normals: new Float32Array(0),
|
|
84520
84453
|
texCoords: new Float32Array(0),
|
|
84521
84454
|
colors: new Uint8Array(0),
|
|
84455
|
+
featureIndicesGroups: [],
|
|
84522
84456
|
featureIndices: [],
|
|
84523
84457
|
boundingVolumes: null
|
|
84524
84458
|
});
|
|
84525
84459
|
}
|
|
84526
|
-
|
|
84527
|
-
convertNodes(nodes, tileContent, attributesMap, useCartesianPositions);
|
|
84460
|
+
convertNodes(nodes, cartographicOrigin, cartesianModelMatrix, attributesMap, useCartesianPositions);
|
|
84528
84461
|
for (const attrKey of attributesMap.keys()) {
|
|
84529
84462
|
const attributes = attributesMap.get(attrKey);
|
|
84463
|
+
if (!attributes) {
|
|
84464
|
+
continue;
|
|
84465
|
+
}
|
|
84530
84466
|
if (attributes.positions.length === 0) {
|
|
84531
84467
|
attributesMap.delete(attrKey);
|
|
84532
84468
|
continue;
|
|
84533
84469
|
}
|
|
84534
|
-
|
|
84470
|
+
if (attributes.featureIndicesGroups) {
|
|
84471
|
+
attributes.featureIndices = attributes.featureIndicesGroups.reduce((acc, value) => acc.concat(value));
|
|
84472
|
+
delete attributes.featureIndicesGroups;
|
|
84473
|
+
}
|
|
84535
84474
|
}
|
|
84536
84475
|
return attributesMap;
|
|
84537
84476
|
}
|
|
84538
|
-
function convertNodes(nodes,
|
|
84477
|
+
function convertNodes(nodes, cartographicOrigin, cartesianModelMatrix, attributesMap, useCartesianPositions, matrix = new import_core21.Matrix4([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1])) {
|
|
84539
84478
|
if (nodes) {
|
|
84540
84479
|
for (const node2 of nodes) {
|
|
84541
|
-
convertNode(node2,
|
|
84480
|
+
convertNode(node2, cartographicOrigin, cartesianModelMatrix, attributesMap, useCartesianPositions, matrix);
|
|
84542
84481
|
}
|
|
84543
84482
|
}
|
|
84544
84483
|
}
|
|
@@ -84559,15 +84498,15 @@ function getCompositeTransformationMatrix(node2, matrix) {
|
|
|
84559
84498
|
}
|
|
84560
84499
|
return transformationMatrix;
|
|
84561
84500
|
}
|
|
84562
|
-
function convertNode(node2,
|
|
84501
|
+
function convertNode(node2, cartographicOrigin, cartesianModelMatrix, attributesMap, useCartesianPositions, matrix = new import_core21.Matrix4([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1])) {
|
|
84563
84502
|
const transformationMatrix = getCompositeTransformationMatrix(node2, matrix);
|
|
84564
84503
|
const mesh = node2.mesh;
|
|
84565
84504
|
if (mesh) {
|
|
84566
|
-
convertMesh(mesh,
|
|
84505
|
+
convertMesh(mesh, cartographicOrigin, cartesianModelMatrix, attributesMap, useCartesianPositions, transformationMatrix);
|
|
84567
84506
|
}
|
|
84568
|
-
convertNodes(node2.children,
|
|
84507
|
+
convertNodes(node2.children || [], cartographicOrigin, cartesianModelMatrix, attributesMap, useCartesianPositions, transformationMatrix);
|
|
84569
84508
|
}
|
|
84570
|
-
function convertMesh(mesh,
|
|
84509
|
+
function convertMesh(mesh, cartographicOrigin, cartesianModelMatrix, attributesMap, useCartesianPositions = false, matrix = new import_core21.Matrix4([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1])) {
|
|
84571
84510
|
for (const primitive of mesh.primitives) {
|
|
84572
84511
|
let outputAttributes = null;
|
|
84573
84512
|
if (primitive.material) {
|
|
@@ -84577,27 +84516,31 @@ function convertMesh(mesh, content, attributesMap, useCartesianPositions = false
|
|
|
84577
84516
|
}
|
|
84578
84517
|
assert2(outputAttributes !== null, "Primitive - material mapping failed");
|
|
84579
84518
|
const attributes = primitive.attributes;
|
|
84519
|
+
if (!outputAttributes) {
|
|
84520
|
+
continue;
|
|
84521
|
+
}
|
|
84580
84522
|
outputAttributes.positions = concatenateTypedArrays(outputAttributes.positions, transformVertexArray({
|
|
84581
84523
|
vertices: attributes.POSITION.value,
|
|
84582
|
-
cartographicOrigin
|
|
84583
|
-
cartesianModelMatrix
|
|
84524
|
+
cartographicOrigin,
|
|
84525
|
+
cartesianModelMatrix,
|
|
84584
84526
|
nodeMatrix: matrix,
|
|
84585
|
-
indices: primitive.indices
|
|
84527
|
+
indices: primitive.indices?.value,
|
|
84586
84528
|
attributeSpecificTransformation: transformVertexPositions,
|
|
84587
84529
|
useCartesianPositions
|
|
84588
84530
|
}));
|
|
84589
84531
|
outputAttributes.normals = concatenateTypedArrays(outputAttributes.normals, transformVertexArray({
|
|
84590
84532
|
vertices: attributes.NORMAL && attributes.NORMAL.value,
|
|
84591
|
-
cartographicOrigin
|
|
84592
|
-
cartesianModelMatrix
|
|
84533
|
+
cartographicOrigin,
|
|
84534
|
+
cartesianModelMatrix,
|
|
84593
84535
|
nodeMatrix: matrix,
|
|
84594
|
-
indices: primitive.indices
|
|
84536
|
+
indices: primitive.indices?.value,
|
|
84595
84537
|
attributeSpecificTransformation: transformVertexNormals,
|
|
84596
84538
|
useCartesianPositions: false
|
|
84597
84539
|
}));
|
|
84598
|
-
outputAttributes.texCoords = concatenateTypedArrays(outputAttributes.texCoords, flattenTexCoords(attributes.TEXCOORD_0 && attributes.TEXCOORD_0.value, primitive.indices
|
|
84599
|
-
outputAttributes.colors = concatenateTypedArrays(outputAttributes.colors, flattenColors(attributes.COLOR_0, primitive.indices
|
|
84600
|
-
outputAttributes.
|
|
84540
|
+
outputAttributes.texCoords = concatenateTypedArrays(outputAttributes.texCoords, flattenTexCoords(attributes.TEXCOORD_0 && attributes.TEXCOORD_0.value, primitive.indices?.value));
|
|
84541
|
+
outputAttributes.colors = concatenateTypedArrays(outputAttributes.colors, flattenColors(attributes.COLOR_0, primitive.indices?.value));
|
|
84542
|
+
outputAttributes.featureIndicesGroups = outputAttributes.featureIndicesGroups || [];
|
|
84543
|
+
outputAttributes.featureIndicesGroups.push(flattenBatchIds(getBatchIdsByAttributeName(attributes), primitive.indices?.value));
|
|
84601
84544
|
}
|
|
84602
84545
|
}
|
|
84603
84546
|
function transformVertexArray(args) {
|
|
@@ -84626,7 +84569,7 @@ function transformVertexPositions(vertexVector, calleeArgs) {
|
|
|
84626
84569
|
if (useCartesianPositions) {
|
|
84627
84570
|
return vertexVector;
|
|
84628
84571
|
}
|
|
84629
|
-
|
|
84572
|
+
import_geospatial9.Ellipsoid.WGS84.cartesianToCartographic([vertexVector[0], vertexVector[1], vertexVector[2]], vertexVector);
|
|
84630
84573
|
vertexVector = vertexVector.subtract(cartographicOrigin);
|
|
84631
84574
|
return vertexVector;
|
|
84632
84575
|
}
|
|
@@ -84693,9 +84636,8 @@ function getBatchIdsByAttributeName(attributes) {
|
|
|
84693
84636
|
}
|
|
84694
84637
|
return batchIds;
|
|
84695
84638
|
}
|
|
84696
|
-
function convertMaterials(
|
|
84639
|
+
function convertMaterials(sourceMaterials = []) {
|
|
84697
84640
|
const result = [];
|
|
84698
|
-
const sourceMaterials = tileContent.gltf.materials || [];
|
|
84699
84641
|
for (const sourceMaterial of sourceMaterials) {
|
|
84700
84642
|
result.push(convertMaterial(sourceMaterial));
|
|
84701
84643
|
}
|
|
@@ -84704,8 +84646,8 @@ function convertMaterials(tileContent) {
|
|
|
84704
84646
|
function convertMaterial(sourceMaterial) {
|
|
84705
84647
|
const material = {
|
|
84706
84648
|
doubleSided: sourceMaterial.doubleSided,
|
|
84707
|
-
emissiveFactor: sourceMaterial.emissiveFactor
|
|
84708
|
-
alphaMode: (sourceMaterial.alphaMode
|
|
84649
|
+
emissiveFactor: sourceMaterial.emissiveFactor?.map((c) => Math.round(c * 255)),
|
|
84650
|
+
alphaMode: convertAlphaMode(sourceMaterial.alphaMode),
|
|
84709
84651
|
pbrMetallicRoughness: {
|
|
84710
84652
|
roughnessFactor: sourceMaterial?.pbrMetallicRoughness?.roughnessFactor || DEFAULT_ROUGHNESS_FACTOR,
|
|
84711
84653
|
metallicFactor: sourceMaterial?.pbrMetallicRoughness?.metallicFactor || DEFAULT_METALLIC_FACTOR
|
|
@@ -84729,14 +84671,28 @@ function convertMaterial(sourceMaterial) {
|
|
|
84729
84671
|
}
|
|
84730
84672
|
return { material, texture };
|
|
84731
84673
|
}
|
|
84674
|
+
function convertAlphaMode(gltfAlphaMode) {
|
|
84675
|
+
switch (gltfAlphaMode) {
|
|
84676
|
+
case "OPAQUE":
|
|
84677
|
+
return "opaque";
|
|
84678
|
+
case "MASK":
|
|
84679
|
+
return "mask";
|
|
84680
|
+
case "BLEND":
|
|
84681
|
+
return "blend";
|
|
84682
|
+
default:
|
|
84683
|
+
return "opaque";
|
|
84684
|
+
}
|
|
84685
|
+
}
|
|
84732
84686
|
function getDefaultMaterial() {
|
|
84733
84687
|
return {
|
|
84734
84688
|
alphaMode: "opaque",
|
|
84735
|
-
pbrMetallicRoughness: {
|
|
84689
|
+
pbrMetallicRoughness: {
|
|
84690
|
+
metallicFactor: 1,
|
|
84691
|
+
roughnessFactor: 1
|
|
84692
|
+
}
|
|
84736
84693
|
};
|
|
84737
84694
|
}
|
|
84738
|
-
function getSharedResources(
|
|
84739
|
-
const gltfMaterials = tileContent.gltf.materials;
|
|
84695
|
+
function getSharedResources(gltfMaterials, nodeId) {
|
|
84740
84696
|
const i3sResources = {};
|
|
84741
84697
|
if (!gltfMaterials || !gltfMaterials.length) {
|
|
84742
84698
|
return i3sResources;
|
|
@@ -84765,7 +84721,7 @@ function convertGLTFMaterialToI3sSharedResources(gltfMaterial, nodeId) {
|
|
|
84765
84721
|
colorFactor[3] = colorFactor[3] || 1;
|
|
84766
84722
|
}
|
|
84767
84723
|
return {
|
|
84768
|
-
materialDefinitionInfo: extractSharedResourcesMaterialInfo(colorFactor, metallicFactor),
|
|
84724
|
+
materialDefinitionInfo: extractSharedResourcesMaterialInfo(colorFactor || [1, 1, 1, 1], metallicFactor),
|
|
84769
84725
|
textureDefinitionInfo
|
|
84770
84726
|
};
|
|
84771
84727
|
}
|
|
@@ -84780,24 +84736,27 @@ function extractSharedResourcesMaterialInfo(baseColorFactor, metallicFactor = 1)
|
|
|
84780
84736
|
dielectricSpecular[3] = 1;
|
|
84781
84737
|
const specular = dielectricSpecular.lerp(dielectricSpecular, baseColorVector, metallicFactor);
|
|
84782
84738
|
return {
|
|
84783
|
-
|
|
84784
|
-
|
|
84739
|
+
params: {
|
|
84740
|
+
diffuse: diffuse.toArray(),
|
|
84741
|
+
specular: specular.toArray(),
|
|
84742
|
+
renderMode: "solid"
|
|
84743
|
+
}
|
|
84785
84744
|
};
|
|
84786
84745
|
}
|
|
84787
84746
|
function extractSharedResourcesTextureInfo(texture, nodeId) {
|
|
84788
84747
|
return {
|
|
84789
|
-
encoding: [texture.source.mimeType],
|
|
84748
|
+
encoding: texture?.source?.mimeType ? [texture.source.mimeType] : void 0,
|
|
84790
84749
|
images: [
|
|
84791
84750
|
{
|
|
84792
84751
|
id: generateImageId(texture, nodeId),
|
|
84793
|
-
size: texture.source
|
|
84794
|
-
length: [texture.source
|
|
84752
|
+
size: texture.source?.image.width,
|
|
84753
|
+
length: [texture.source?.image.data.length]
|
|
84795
84754
|
}
|
|
84796
84755
|
]
|
|
84797
84756
|
};
|
|
84798
84757
|
}
|
|
84799
84758
|
function generateImageId(texture, nodeId) {
|
|
84800
|
-
const { width, height } = texture.source
|
|
84759
|
+
const { width, height } = texture.source?.image;
|
|
84801
84760
|
const levelCountOfTexture = 1;
|
|
84802
84761
|
const indexOfLevel = 0;
|
|
84803
84762
|
const indexOfTextureInStore = nodeId + 1;
|
|
@@ -84869,7 +84828,9 @@ function convertBatchTableToAttributeBuffers(batchTable, featureIds, attributeSt
|
|
|
84869
84828
|
default:
|
|
84870
84829
|
attributeBuffer = generateStringAttributeBuffer(batchTableWithFeatureIds[key]);
|
|
84871
84830
|
}
|
|
84872
|
-
|
|
84831
|
+
if (attributeBuffer) {
|
|
84832
|
+
attributeBuffers.push(attributeBuffer);
|
|
84833
|
+
}
|
|
84873
84834
|
}
|
|
84874
84835
|
}
|
|
84875
84836
|
return attributeBuffers;
|
|
@@ -84912,7 +84873,7 @@ function generateBigUint64Array(featureIds) {
|
|
|
84912
84873
|
}
|
|
84913
84874
|
return typedFeatureIds;
|
|
84914
84875
|
}
|
|
84915
|
-
async function generateCompressedGeometry(vertexCount, convertedAttributes, attributes) {
|
|
84876
|
+
async function generateCompressedGeometry(vertexCount, convertedAttributes, attributes, dracoWorkerSoure) {
|
|
84916
84877
|
const { positions, normals, texCoords, colors, featureIds, faceRange } = attributes;
|
|
84917
84878
|
const indices = new Uint32Array(vertexCount);
|
|
84918
84879
|
for (let index = 0; index < indices.length; index++) {
|
|
@@ -84935,12 +84896,16 @@ async function generateCompressedGeometry(vertexCount, convertedAttributes, attr
|
|
|
84935
84896
|
"i3s-feature-ids": new Int32Array(featureIds)
|
|
84936
84897
|
}
|
|
84937
84898
|
};
|
|
84938
|
-
return
|
|
84899
|
+
return encode({ attributes: compressedAttributes, indices }, DracoWriterWorker, {
|
|
84900
|
+
...DracoWriterWorker.options,
|
|
84901
|
+
source: dracoWorkerSoure,
|
|
84902
|
+
reuseWorkers: true,
|
|
84903
|
+
_nodeWorkers: true,
|
|
84939
84904
|
draco: {
|
|
84940
84905
|
method: "MESH_SEQUENTIAL_ENCODING",
|
|
84941
84906
|
attributesMetadata
|
|
84942
84907
|
}
|
|
84943
|
-
})
|
|
84908
|
+
});
|
|
84944
84909
|
}
|
|
84945
84910
|
function generateFeatureIndexAttribute(featureIndex, faceRange) {
|
|
84946
84911
|
const orderedFeatureIndices = new Uint32Array(featureIndex.length);
|
|
@@ -85000,7 +84965,7 @@ async function createSceneServerPath(layerName, layers0, rootPath) {
|
|
|
85000
84965
|
await writeFile3(nodePagePath, JSON.stringify(sceneServer));
|
|
85001
84966
|
}
|
|
85002
84967
|
|
|
85003
|
-
// src/lib/utils/lod-conversion-utils.
|
|
84968
|
+
// src/lib/utils/lod-conversion-utils.ts
|
|
85004
84969
|
var DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR = 16;
|
|
85005
84970
|
function convertGeometricErrorToScreenThreshold(tile, coordinates) {
|
|
85006
84971
|
const lodSelection = [];
|
|
@@ -85040,12 +85005,12 @@ function convertScreenThresholdToGeometricError(node2) {
|
|
|
85040
85005
|
|
|
85041
85006
|
// src/pgm-loader.ts
|
|
85042
85007
|
var import_geoid = __toModule(require_es59());
|
|
85043
|
-
var
|
|
85008
|
+
var VERSION10 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
85044
85009
|
var PGMLoader = {
|
|
85045
85010
|
name: "PGM - Netpbm grayscale image format",
|
|
85046
85011
|
id: "pgm",
|
|
85047
85012
|
module: "tile-converter",
|
|
85048
|
-
version:
|
|
85013
|
+
version: VERSION10,
|
|
85049
85014
|
mimeTypes: ["image/x-portable-graymap"],
|
|
85050
85015
|
parse: async (arrayBuffer, options) => (0, import_geoid.parsePGM)(new Uint8Array(arrayBuffer), options),
|
|
85051
85016
|
extensions: ["pgm"],
|
|
@@ -85559,7 +85524,7 @@ function transfromTextureDefinitions(textureDefinitionInfos, thisObject, origina
|
|
|
85559
85524
|
var import_culling6 = __toModule(require_es58());
|
|
85560
85525
|
var import_engine = __toModule(require_es515());
|
|
85561
85526
|
var import_core23 = __toModule(require_es56());
|
|
85562
|
-
var
|
|
85527
|
+
var import_geospatial10 = __toModule(require_es57());
|
|
85563
85528
|
function validateNodeBoundingVolumes(node2) {
|
|
85564
85529
|
if (!node2?.parentNode?.obb || !node2?.parentNode?.mbs) {
|
|
85565
85530
|
return [];
|
|
@@ -85600,7 +85565,7 @@ function getTileObbVertices(node2) {
|
|
|
85600
85565
|
const halfSize = node2.obb.halfSize;
|
|
85601
85566
|
const attributes = geometry.getAttributes();
|
|
85602
85567
|
const positions = new Float32Array(attributes.POSITION.value);
|
|
85603
|
-
const obbCenterCartesian =
|
|
85568
|
+
const obbCenterCartesian = import_geospatial10.Ellipsoid.WGS84.cartographicToCartesian(node2.obb.center);
|
|
85604
85569
|
let vertices = [];
|
|
85605
85570
|
for (let i = 0; i < positions.length; i += 3) {
|
|
85606
85571
|
const positionsVector = new import_core23.Vector3(positions[i] *= halfSize[0], positions[i + 1] *= halfSize[1], positions[i + 2] *= halfSize[2]);
|
|
@@ -85613,7 +85578,7 @@ function isAllVerticesInsideBoundingVolume(boundingVolume, positions) {
|
|
|
85613
85578
|
let isVerticesInsideObb = true;
|
|
85614
85579
|
for (let index = 0; index < positions.length / 3; index += 3) {
|
|
85615
85580
|
const point = [positions[index], positions[index + 1], positions[index + 2]];
|
|
85616
|
-
const cartographicPoint =
|
|
85581
|
+
const cartographicPoint = import_geospatial10.Ellipsoid.WGS84.cartesianToCartographic(point);
|
|
85617
85582
|
const distance = boundingVolume.distanceTo(cartographicPoint);
|
|
85618
85583
|
if (distance > 0) {
|
|
85619
85584
|
isVerticesInsideObb = false;
|
|
@@ -85623,6 +85588,94 @@ function isAllVerticesInsideBoundingVolume(boundingVolume, positions) {
|
|
|
85623
85588
|
return isVerticesInsideObb;
|
|
85624
85589
|
}
|
|
85625
85590
|
|
|
85591
|
+
// src/lib/utils/queue.ts
|
|
85592
|
+
var Queue = class extends Array {
|
|
85593
|
+
enqueue(val) {
|
|
85594
|
+
this.push(val);
|
|
85595
|
+
}
|
|
85596
|
+
dequeue() {
|
|
85597
|
+
return this.shift();
|
|
85598
|
+
}
|
|
85599
|
+
peek() {
|
|
85600
|
+
return this[0];
|
|
85601
|
+
}
|
|
85602
|
+
isEmpty() {
|
|
85603
|
+
return this.length === 0;
|
|
85604
|
+
}
|
|
85605
|
+
};
|
|
85606
|
+
|
|
85607
|
+
// src/lib/utils/write-queue.ts
|
|
85608
|
+
var WriteQueue = class extends Queue {
|
|
85609
|
+
constructor(listeningInterval = 2e3, writeConcurrency = 400) {
|
|
85610
|
+
super();
|
|
85611
|
+
this.writePromise = null;
|
|
85612
|
+
this.fileMap = {};
|
|
85613
|
+
this.listeningInterval = listeningInterval;
|
|
85614
|
+
this.writeConcurrency = writeConcurrency;
|
|
85615
|
+
}
|
|
85616
|
+
startListening() {
|
|
85617
|
+
this.intervalId = setInterval(this.startWrite.bind(this), this.listeningInterval);
|
|
85618
|
+
}
|
|
85619
|
+
stopListening() {
|
|
85620
|
+
if (this.intervalId) {
|
|
85621
|
+
clearInterval(this.intervalId);
|
|
85622
|
+
}
|
|
85623
|
+
}
|
|
85624
|
+
async startWrite() {
|
|
85625
|
+
if (this.writePromise) {
|
|
85626
|
+
await this.writePromise;
|
|
85627
|
+
this.writePromise = null;
|
|
85628
|
+
return;
|
|
85629
|
+
}
|
|
85630
|
+
this.writePromise = this.doWrite();
|
|
85631
|
+
await this.writePromise;
|
|
85632
|
+
this.writePromise = null;
|
|
85633
|
+
}
|
|
85634
|
+
async finalize() {
|
|
85635
|
+
this.stopListening();
|
|
85636
|
+
await this.startWrite();
|
|
85637
|
+
}
|
|
85638
|
+
async doWrite() {
|
|
85639
|
+
while (this.length) {
|
|
85640
|
+
const promises = [];
|
|
85641
|
+
const archiveKeys = [];
|
|
85642
|
+
for (let i = 0; i < this.writeConcurrency; i++) {
|
|
85643
|
+
const item = this.dequeue();
|
|
85644
|
+
if (!item) {
|
|
85645
|
+
break;
|
|
85646
|
+
}
|
|
85647
|
+
const { archiveKey, writePromise } = item;
|
|
85648
|
+
archiveKeys.push(archiveKey);
|
|
85649
|
+
promises.push(writePromise);
|
|
85650
|
+
}
|
|
85651
|
+
const writeResults = await Promise.all(promises);
|
|
85652
|
+
this.updateFileMap(archiveKeys, writeResults);
|
|
85653
|
+
}
|
|
85654
|
+
this.writePromise = null;
|
|
85655
|
+
}
|
|
85656
|
+
updateFileMap(archiveKeys, writeResults) {
|
|
85657
|
+
for (let i = 0; i < archiveKeys.length; i++) {
|
|
85658
|
+
const archiveKey = archiveKeys[i];
|
|
85659
|
+
if (!archiveKey) {
|
|
85660
|
+
continue;
|
|
85661
|
+
}
|
|
85662
|
+
this.fileMap[archiveKey] = writeResults[i];
|
|
85663
|
+
}
|
|
85664
|
+
}
|
|
85665
|
+
};
|
|
85666
|
+
|
|
85667
|
+
// src/i3s-attributes-worker.ts
|
|
85668
|
+
var VERSION11 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
85669
|
+
var I3SAttributesWorker = {
|
|
85670
|
+
id: "i3s-attributes",
|
|
85671
|
+
name: "I3S Attributes Worker",
|
|
85672
|
+
module: "tile-converter",
|
|
85673
|
+
version: VERSION11,
|
|
85674
|
+
options: {
|
|
85675
|
+
useCartesianPositions: false
|
|
85676
|
+
}
|
|
85677
|
+
};
|
|
85678
|
+
|
|
85626
85679
|
// src/i3s-converter/i3s-converter.ts
|
|
85627
85680
|
var ION_DEFAULT_TOKEN = import_process.default.env.IonToken || "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ";
|
|
85628
85681
|
var HARDCODED_NODES_PER_PAGE = 64;
|
|
@@ -85642,8 +85695,9 @@ var I3SConverter = class {
|
|
|
85642
85695
|
this.sourceTileset = null;
|
|
85643
85696
|
this.geoidHeightModel = null;
|
|
85644
85697
|
this.Loader = Tiles3DLoader;
|
|
85698
|
+
this.workerSource = {};
|
|
85699
|
+
this.writeQueue = new WriteQueue();
|
|
85645
85700
|
this.nodePages = new NodePages(writeFile3, HARDCODED_NODES_PER_PAGE);
|
|
85646
|
-
this.fileMap = {};
|
|
85647
85701
|
this.options = {};
|
|
85648
85702
|
this.layers0Path = "";
|
|
85649
85703
|
this.materialMap = new Map();
|
|
@@ -85681,12 +85735,15 @@ var I3SConverter = class {
|
|
|
85681
85735
|
this.Loader = inputUrl.indexOf(CESIUM_DATASET_PREFIX) !== -1 ? CesiumIonLoader : Tiles3DLoader;
|
|
85682
85736
|
this.generateTextures = Boolean(generateTextures);
|
|
85683
85737
|
this.generateBoundingVolumes = Boolean(generateBoundingVolumes);
|
|
85738
|
+
this.writeQueue = new WriteQueue();
|
|
85739
|
+
this.writeQueue.startListening();
|
|
85684
85740
|
console.log("Loading egm file...");
|
|
85685
85741
|
this.geoidHeightModel = await load(egmFilePath, PGMLoader);
|
|
85686
85742
|
console.log("Loading egm file completed!");
|
|
85687
85743
|
if (slpk) {
|
|
85688
85744
|
this.nodePages.useWriteFunction(writeFileForSlpk);
|
|
85689
85745
|
}
|
|
85746
|
+
await this.loadWorkers();
|
|
85690
85747
|
const preloadOptions = await this._fetchPreloadOptions();
|
|
85691
85748
|
const tilesetOptions = { loadOptions: { basis: { format: "rgba32" } } };
|
|
85692
85749
|
if (preloadOptions.headers) {
|
|
@@ -85697,6 +85754,8 @@ var I3SConverter = class {
|
|
|
85697
85754
|
this.sourceTileset = new Tileset3D(sourceTilesetJson, tilesetOptions);
|
|
85698
85755
|
await this._createAndSaveTileset(outputPath, tilesetName);
|
|
85699
85756
|
await this._finishConversion({ slpk: Boolean(slpk), outputPath, tilesetName });
|
|
85757
|
+
const workerFarm = WorkerFarm.getWorkerFarm({});
|
|
85758
|
+
workerFarm.destroy();
|
|
85700
85759
|
return sourceTilesetJson;
|
|
85701
85760
|
}
|
|
85702
85761
|
async _createAndSaveTileset(outputPath, tilesetName) {
|
|
@@ -85727,11 +85786,13 @@ var I3SConverter = class {
|
|
|
85727
85786
|
await this._writeLayers0();
|
|
85728
85787
|
createSceneServerPath(tilesetName, this.layers0, tilesetPath);
|
|
85729
85788
|
await this._writeNodeIndexDocument(root0, "root", (0, import_path7.join)(this.layers0Path, "nodes", "root"));
|
|
85730
|
-
await this.nodePages.save(this.layers0Path, this.
|
|
85789
|
+
await this.nodePages.save(this.layers0Path, this.writeQueue, isCreateSlpk);
|
|
85790
|
+
await this.writeQueue.finalize();
|
|
85731
85791
|
await this._createSlpk(tilesetPath);
|
|
85732
85792
|
}
|
|
85733
85793
|
_formLayers0(tilesetName) {
|
|
85734
|
-
const
|
|
85794
|
+
const fullExtent = convertBoundingVolumeToI3SFullExtent(this.sourceTileset?.boundingVolume || this.sourceTileset?.root?.boundingVolume);
|
|
85795
|
+
const extent = [fullExtent.xmin, fullExtent.ymin, fullExtent.xmax, fullExtent.ymax];
|
|
85735
85796
|
const layers0data = {
|
|
85736
85797
|
version: `{${v4().toUpperCase()}}`,
|
|
85737
85798
|
id: 0,
|
|
@@ -85780,9 +85841,12 @@ var I3SConverter = class {
|
|
|
85780
85841
|
const [child] = await this._createNode(root0, sourceRootTile, parentId, 0);
|
|
85781
85842
|
const childPath = (0, import_path7.join)(this.layers0Path, "nodes", child.path);
|
|
85782
85843
|
if (this.options.slpk) {
|
|
85783
|
-
this.
|
|
85844
|
+
this.writeQueue.enqueue({
|
|
85845
|
+
archiveKey: "nodes/1/3dNodeIndexDocument.json.gz",
|
|
85846
|
+
writePromise: writeFileForSlpk(childPath, JSON.stringify(child), "3dNodeIndexDocument.json")
|
|
85847
|
+
});
|
|
85784
85848
|
} else {
|
|
85785
|
-
|
|
85849
|
+
this.writeQueue.enqueue({ writePromise: writeFile3(childPath, JSON.stringify(child)) });
|
|
85786
85850
|
}
|
|
85787
85851
|
} else {
|
|
85788
85852
|
await this._addChildrenWithNeighborsAndWriteFile({
|
|
@@ -85796,16 +85860,24 @@ var I3SConverter = class {
|
|
|
85796
85860
|
}
|
|
85797
85861
|
async _writeLayers0() {
|
|
85798
85862
|
if (this.options.slpk) {
|
|
85799
|
-
this.
|
|
85863
|
+
this.writeQueue.enqueue({
|
|
85864
|
+
archiveKey: "3dSceneLayer.json.gz",
|
|
85865
|
+
writePromise: writeFileForSlpk(this.layers0Path, JSON.stringify(this.layers0), "3dSceneLayer.json")
|
|
85866
|
+
});
|
|
85800
85867
|
} else {
|
|
85801
|
-
|
|
85868
|
+
this.writeQueue.enqueue({
|
|
85869
|
+
writePromise: writeFile3(this.layers0Path, JSON.stringify(this.layers0))
|
|
85870
|
+
});
|
|
85802
85871
|
}
|
|
85803
85872
|
}
|
|
85804
85873
|
async _writeNodeIndexDocument(root0, nodePath, rootPath) {
|
|
85805
85874
|
if (this.options.slpk) {
|
|
85806
|
-
this.
|
|
85875
|
+
this.writeQueue.enqueue({
|
|
85876
|
+
archiveKey: `nodes/${nodePath}/3dNodeIndexDocument.json.gz`,
|
|
85877
|
+
writePromise: writeFileForSlpk(rootPath, JSON.stringify(root0), "3dNodeIndexDocument.json")
|
|
85878
|
+
});
|
|
85807
85879
|
} else {
|
|
85808
|
-
|
|
85880
|
+
this.writeQueue.enqueue({ writePromise: writeFile3(rootPath, JSON.stringify(root0)) });
|
|
85809
85881
|
}
|
|
85810
85882
|
}
|
|
85811
85883
|
async _createSlpk(tilesetPath) {
|
|
@@ -85945,7 +86017,7 @@ var I3SConverter = class {
|
|
|
85945
86017
|
if (!this.isContentSupported(sourceTile)) {
|
|
85946
86018
|
return null;
|
|
85947
86019
|
}
|
|
85948
|
-
const resourcesData = await convertB3dmToI3sGeometry(sourceTile.content, Number(this.nodePages.nodesCounter), this.featuresHashArray, this.layers0?.attributeStorageInfo, this.options.draco, this.generateBoundingVolumes, this.geoidHeightModel);
|
|
86020
|
+
const resourcesData = await convertB3dmToI3sGeometry(sourceTile.content, Number(this.nodePages.nodesCounter), this.featuresHashArray, this.layers0?.attributeStorageInfo, this.options.draco, this.generateBoundingVolumes, this.geoidHeightModel, this.workerSource);
|
|
85949
86021
|
return resourcesData;
|
|
85950
86022
|
}
|
|
85951
86023
|
_createNodeInNodePages(maxScreenThresholdSQ, boundingVolumes, sourceTile, parentId, resources) {
|
|
@@ -86042,31 +86114,47 @@ var I3SConverter = class {
|
|
|
86042
86114
|
async _writeGeometries(geometryBuffer, compressedGeometry, childPath, slpkChildPath) {
|
|
86043
86115
|
if (this.options.slpk) {
|
|
86044
86116
|
const slpkGeometryPath = (0, import_path7.join)(childPath, "geometries");
|
|
86045
|
-
this.
|
|
86117
|
+
this.writeQueue.enqueue({
|
|
86118
|
+
archiveKey: `${slpkChildPath}/geometries/0.bin.gz`,
|
|
86119
|
+
writePromise: writeFileForSlpk(slpkGeometryPath, geometryBuffer, "0.bin")
|
|
86120
|
+
});
|
|
86046
86121
|
} else {
|
|
86047
86122
|
const geometryPath = (0, import_path7.join)(childPath, "geometries/0/");
|
|
86048
|
-
|
|
86123
|
+
this.writeQueue.enqueue({
|
|
86124
|
+
writePromise: writeFile3(geometryPath, geometryBuffer, "index.bin")
|
|
86125
|
+
});
|
|
86049
86126
|
}
|
|
86050
86127
|
if (this.options.draco) {
|
|
86051
86128
|
if (this.options.slpk) {
|
|
86052
86129
|
const slpkCompressedGeometryPath = (0, import_path7.join)(childPath, "geometries");
|
|
86053
|
-
this.
|
|
86130
|
+
this.writeQueue.enqueue({
|
|
86131
|
+
archiveKey: `${slpkChildPath}/geometries/1.bin.gz`,
|
|
86132
|
+
writePromise: writeFileForSlpk(slpkCompressedGeometryPath, compressedGeometry, "1.bin")
|
|
86133
|
+
});
|
|
86054
86134
|
} else {
|
|
86055
86135
|
const compressedGeometryPath = (0, import_path7.join)(childPath, "geometries/1/");
|
|
86056
|
-
|
|
86136
|
+
this.writeQueue.enqueue({
|
|
86137
|
+
writePromise: writeFile3(compressedGeometryPath, compressedGeometry, "index.bin")
|
|
86138
|
+
});
|
|
86057
86139
|
}
|
|
86058
86140
|
}
|
|
86059
86141
|
}
|
|
86060
86142
|
async _writeShared(sharedResources, childPath, slpkChildPath, nodePath) {
|
|
86143
|
+
if (!sharedResources) {
|
|
86144
|
+
return;
|
|
86145
|
+
}
|
|
86061
86146
|
sharedResources.nodePath = nodePath;
|
|
86062
86147
|
const sharedData = (0, import_json_map_transform6.default)(sharedResources, SHARED_RESOURCES());
|
|
86063
86148
|
const sharedDataStr = JSON.stringify(sharedData);
|
|
86064
86149
|
if (this.options.slpk) {
|
|
86065
86150
|
const slpkSharedPath = (0, import_path7.join)(childPath, "shared");
|
|
86066
|
-
this.
|
|
86151
|
+
this.writeQueue.enqueue({
|
|
86152
|
+
archiveKey: `${slpkChildPath}/shared/sharedResource.json.gz`,
|
|
86153
|
+
writePromise: writeFileForSlpk(slpkSharedPath, sharedDataStr, "sharedResource.json")
|
|
86154
|
+
});
|
|
86067
86155
|
} else {
|
|
86068
86156
|
const sharedPath = (0, import_path7.join)(childPath, "shared/");
|
|
86069
|
-
|
|
86157
|
+
this.writeQueue.enqueue({ writePromise: writeFile3(sharedPath, sharedDataStr) });
|
|
86070
86158
|
}
|
|
86071
86159
|
}
|
|
86072
86160
|
async _writeTexture(texture, childPath, slpkChildPath) {
|
|
@@ -86081,7 +86169,7 @@ var I3SConverter = class {
|
|
|
86081
86169
|
await this.writeTextureFile(textureData, "0", format, childPath, slpkChildPath);
|
|
86082
86170
|
if (this.generateTextures) {
|
|
86083
86171
|
formats2.push({ name: "1", format: "ktx2" });
|
|
86084
|
-
const ktx2TextureData = new Uint8Array(await encode(texture.image,
|
|
86172
|
+
const ktx2TextureData = new Uint8Array(await encode(texture.image, KTX2BasisWriter));
|
|
86085
86173
|
await this.writeTextureFile(ktx2TextureData, "1", "ktx2", childPath, slpkChildPath);
|
|
86086
86174
|
}
|
|
86087
86175
|
break;
|
|
@@ -86105,23 +86193,33 @@ var I3SConverter = class {
|
|
|
86105
86193
|
if (this.options.slpk) {
|
|
86106
86194
|
const slpkTexturePath = (0, import_path7.join)(childPath, "textures");
|
|
86107
86195
|
const compress = false;
|
|
86108
|
-
this.
|
|
86196
|
+
this.writeQueue.enqueue({
|
|
86197
|
+
archiveKey: `${slpkChildPath}/textures/${name8}.${format}`,
|
|
86198
|
+
writePromise: writeFileForSlpk(slpkTexturePath, textureData, `${name8}.${format}`, compress)
|
|
86199
|
+
});
|
|
86109
86200
|
} else {
|
|
86110
86201
|
const texturePath = (0, import_path7.join)(childPath, `textures/${name8}/`);
|
|
86111
|
-
|
|
86202
|
+
this.writeQueue.enqueue({
|
|
86203
|
+
writePromise: writeFile3(texturePath, textureData, `index.${format}`)
|
|
86204
|
+
});
|
|
86112
86205
|
}
|
|
86113
86206
|
}
|
|
86114
|
-
async _writeAttributes(attributes, childPath, slpkChildPath) {
|
|
86115
|
-
if (attributes
|
|
86207
|
+
async _writeAttributes(attributes = [], childPath, slpkChildPath) {
|
|
86208
|
+
if (attributes?.length && this.layers0?.attributeStorageInfo?.length) {
|
|
86116
86209
|
for (let index = 0; index < attributes.length; index++) {
|
|
86117
86210
|
const folderName = this.layers0.attributeStorageInfo[index].key;
|
|
86118
86211
|
const fileBuffer = new Uint8Array(attributes[index]);
|
|
86119
86212
|
if (this.options.slpk) {
|
|
86120
86213
|
const slpkAttributesPath = (0, import_path7.join)(childPath, "attributes", folderName);
|
|
86121
|
-
this.
|
|
86214
|
+
this.writeQueue.enqueue({
|
|
86215
|
+
archiveKey: `${slpkChildPath}/attributes/${folderName}.bin.gz`,
|
|
86216
|
+
writePromise: writeFileForSlpk(slpkAttributesPath, fileBuffer, "0.bin")
|
|
86217
|
+
});
|
|
86122
86218
|
} else {
|
|
86123
86219
|
const attributesPath = (0, import_path7.join)(childPath, `attributes/${folderName}/0`);
|
|
86124
|
-
|
|
86220
|
+
this.writeQueue.enqueue({
|
|
86221
|
+
writePromise: writeFile3(attributesPath, fileBuffer, "index.bin")
|
|
86222
|
+
});
|
|
86125
86223
|
}
|
|
86126
86224
|
}
|
|
86127
86225
|
}
|
|
@@ -86327,6 +86425,20 @@ var I3SConverter = class {
|
|
|
86327
86425
|
isContentSupported(sourceRootTile) {
|
|
86328
86426
|
return ["b3dm", "glTF"].includes(sourceRootTile?.content?.type);
|
|
86329
86427
|
}
|
|
86428
|
+
async loadWorkers() {
|
|
86429
|
+
console.log(`Loading workers source...`);
|
|
86430
|
+
if (this.options.draco) {
|
|
86431
|
+
const url = getWorkerURL(DracoWriterWorker, { ...getGlobalLoaderOptions() });
|
|
86432
|
+
const sourceResponse2 = await fetchFile(url);
|
|
86433
|
+
const source2 = await sourceResponse2.text();
|
|
86434
|
+
this.workerSource.draco = source2;
|
|
86435
|
+
}
|
|
86436
|
+
const i3sAttributesWorkerUrl = getWorkerURL(I3SAttributesWorker, { ...getGlobalLoaderOptions() });
|
|
86437
|
+
const sourceResponse = await fetchFile(i3sAttributesWorkerUrl);
|
|
86438
|
+
const source = await sourceResponse.text();
|
|
86439
|
+
this.workerSource.I3SAttributes = source;
|
|
86440
|
+
console.log(`Loading workers source completed!`);
|
|
86441
|
+
}
|
|
86330
86442
|
};
|
|
86331
86443
|
|
|
86332
86444
|
// src/3d-tiles-converter/3d-tiles-converter.ts
|
|
@@ -86336,7 +86448,7 @@ var import_json_map_transform8 = __toModule(require_json_map_transform());
|
|
|
86336
86448
|
|
|
86337
86449
|
// ../i3s/src/lib/parsers/parse-i3s-tile-content.ts
|
|
86338
86450
|
var import_core26 = __toModule(require_es56());
|
|
86339
|
-
var
|
|
86451
|
+
var import_geospatial11 = __toModule(require_es57());
|
|
86340
86452
|
|
|
86341
86453
|
// ../i3s/src/types.ts
|
|
86342
86454
|
var DATA_TYPE;
|
|
@@ -86682,8 +86794,8 @@ function parsePositions2(attribute, tile) {
|
|
|
86682
86794
|
const enuMatrix = new import_core26.Matrix4();
|
|
86683
86795
|
const cartographicOrigin = new import_core26.Vector3(mbs[0], mbs[1], mbs[2]);
|
|
86684
86796
|
const cartesianOrigin = new import_core26.Vector3();
|
|
86685
|
-
|
|
86686
|
-
|
|
86797
|
+
import_geospatial11.Ellipsoid.WGS84.cartographicToCartesian(cartographicOrigin, cartesianOrigin);
|
|
86798
|
+
import_geospatial11.Ellipsoid.WGS84.eastNorthUpToFixedFrame(cartesianOrigin, enuMatrix);
|
|
86687
86799
|
attribute.value = offsetsToCartesians(value, metadata, cartographicOrigin);
|
|
86688
86800
|
return enuMatrix;
|
|
86689
86801
|
}
|
|
@@ -86697,7 +86809,7 @@ function offsetsToCartesians(vertices, metadata = {}, cartographicOrigin) {
|
|
|
86697
86809
|
positions[i + 2] = vertices[i + 2] + cartographicOrigin.z;
|
|
86698
86810
|
}
|
|
86699
86811
|
for (let i = 0; i < positions.length; i += 3) {
|
|
86700
|
-
|
|
86812
|
+
import_geospatial11.Ellipsoid.WGS84.cartographicToCartesian(positions.subarray(i, i + 3), scratchVector5);
|
|
86701
86813
|
positions[i] = scratchVector5.x;
|
|
86702
86814
|
positions[i + 1] = scratchVector5.y;
|
|
86703
86815
|
positions[i + 2] = scratchVector5.z;
|
|
@@ -86808,13 +86920,13 @@ function getFeatureIdsFromFeatureIndexMetadata(featureIndex) {
|
|
|
86808
86920
|
}
|
|
86809
86921
|
|
|
86810
86922
|
// ../i3s/src/i3s-content-loader.ts
|
|
86811
|
-
var
|
|
86923
|
+
var VERSION12 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
86812
86924
|
var I3SContentLoader = {
|
|
86813
86925
|
name: "I3S Content (Indexed Scene Layers)",
|
|
86814
86926
|
id: "i3s-content",
|
|
86815
86927
|
module: "i3s",
|
|
86816
86928
|
worker: true,
|
|
86817
|
-
version:
|
|
86929
|
+
version: VERSION12,
|
|
86818
86930
|
mimeTypes: ["application/octet-stream"],
|
|
86819
86931
|
parse: parse6,
|
|
86820
86932
|
extensions: ["bin"],
|
|
@@ -86830,10 +86942,10 @@ async function parse6(data, options, context) {
|
|
|
86830
86942
|
|
|
86831
86943
|
// ../i3s/src/lib/parsers/parse-i3s.ts
|
|
86832
86944
|
var import_culling7 = __toModule(require_es58());
|
|
86833
|
-
var
|
|
86945
|
+
var import_geospatial12 = __toModule(require_es57());
|
|
86834
86946
|
|
|
86835
86947
|
// ../i3s/src/i3s-node-page-loader.ts
|
|
86836
|
-
var
|
|
86948
|
+
var VERSION13 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
86837
86949
|
async function parseNodePage(data) {
|
|
86838
86950
|
return JSON.parse(new TextDecoder().decode(data));
|
|
86839
86951
|
}
|
|
@@ -86841,7 +86953,7 @@ var I3SNodePageLoader = {
|
|
|
86841
86953
|
name: "I3S Node Page",
|
|
86842
86954
|
id: "i3s-node-page",
|
|
86843
86955
|
module: "i3s",
|
|
86844
|
-
version:
|
|
86956
|
+
version: VERSION13,
|
|
86845
86957
|
mimeTypes: ["application/json"],
|
|
86846
86958
|
parse: parse7,
|
|
86847
86959
|
extensions: ["json"],
|
|
@@ -86885,10 +86997,14 @@ var I3SNodePagesTiles = class {
|
|
|
86885
86997
|
async formTileFromNodePages(id) {
|
|
86886
86998
|
const node2 = await this.getNodeById(id);
|
|
86887
86999
|
const children = [];
|
|
87000
|
+
const childNodesPromises = [];
|
|
86888
87001
|
for (const child of node2.children || []) {
|
|
86889
|
-
|
|
87002
|
+
childNodesPromises.push(this.getNodeById(child));
|
|
87003
|
+
}
|
|
87004
|
+
const childNodes = await Promise.all(childNodesPromises);
|
|
87005
|
+
for (const childNode of childNodes) {
|
|
86890
87006
|
children.push({
|
|
86891
|
-
id:
|
|
87007
|
+
id: childNode.index.toString(),
|
|
86892
87008
|
obb: childNode.obb
|
|
86893
87009
|
});
|
|
86894
87010
|
}
|
|
@@ -87046,12 +87162,12 @@ function normalizeTileNonUrlData(tile) {
|
|
|
87046
87162
|
if (tile.mbs) {
|
|
87047
87163
|
mbs = tile.mbs;
|
|
87048
87164
|
boundingVolume.sphere = [
|
|
87049
|
-
...
|
|
87165
|
+
...import_geospatial12.Ellipsoid.WGS84.cartographicToCartesian(tile.mbs.slice(0, 3)),
|
|
87050
87166
|
tile.mbs[3]
|
|
87051
87167
|
];
|
|
87052
87168
|
} else if (tile.obb) {
|
|
87053
87169
|
boundingVolume.box = [
|
|
87054
|
-
...
|
|
87170
|
+
...import_geospatial12.Ellipsoid.WGS84.cartographicToCartesian(tile.obb.center),
|
|
87055
87171
|
...tile.obb.halfSize,
|
|
87056
87172
|
...tile.obb.quaternion
|
|
87057
87173
|
];
|
|
@@ -87071,7 +87187,7 @@ async function normalizeTilesetData(tileset, options, context) {
|
|
|
87071
87187
|
tileset.url = context.url;
|
|
87072
87188
|
if (tileset.nodePages) {
|
|
87073
87189
|
tileset.nodePagesTile = new I3SNodePagesTiles(tileset, options);
|
|
87074
|
-
tileset.root =
|
|
87190
|
+
tileset.root = tileset.nodePagesTile.formTileFromNodePages(0);
|
|
87075
87191
|
} else {
|
|
87076
87192
|
const rootNodeUrl = getUrlWithToken(`${tileset.url}/nodes/root`, options.i3s?.token);
|
|
87077
87193
|
tileset.root = await load(rootNodeUrl, tileset.loader, {
|
|
@@ -87091,7 +87207,7 @@ async function normalizeTilesetData(tileset, options, context) {
|
|
|
87091
87207
|
}
|
|
87092
87208
|
|
|
87093
87209
|
// ../i3s/src/i3s-loader.ts
|
|
87094
|
-
var
|
|
87210
|
+
var VERSION14 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
87095
87211
|
var TILESET_REGEX = /layers\/[0-9]+$/;
|
|
87096
87212
|
var TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
|
|
87097
87213
|
var SLPK_HEX = "504b0304";
|
|
@@ -87099,7 +87215,7 @@ var I3SLoader = {
|
|
|
87099
87215
|
name: "I3S (Indexed Scene Layers)",
|
|
87100
87216
|
id: "i3s",
|
|
87101
87217
|
module: "i3s",
|
|
87102
|
-
version:
|
|
87218
|
+
version: VERSION14,
|
|
87103
87219
|
mimeTypes: ["application/octet-stream"],
|
|
87104
87220
|
parse: parseI3S,
|
|
87105
87221
|
extensions: ["bin"],
|
|
@@ -87228,12 +87344,12 @@ function parseStringsAttribute(arrayBuffer) {
|
|
|
87228
87344
|
}
|
|
87229
87345
|
|
|
87230
87346
|
// ../i3s/src/i3s-attribute-loader.ts
|
|
87231
|
-
var
|
|
87347
|
+
var VERSION15 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
87232
87348
|
var I3SAttributeLoader = {
|
|
87233
87349
|
name: "I3S Attribute",
|
|
87234
87350
|
id: "i3s-attribute",
|
|
87235
87351
|
module: "i3s",
|
|
87236
|
-
version:
|
|
87352
|
+
version: VERSION15,
|
|
87237
87353
|
mimeTypes: ["application/binary"],
|
|
87238
87354
|
parse: parse8,
|
|
87239
87355
|
extensions: ["bin"],
|
|
@@ -87247,7 +87363,7 @@ async function parse8(data, options) {
|
|
|
87247
87363
|
|
|
87248
87364
|
// src/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.ts
|
|
87249
87365
|
var import_core30 = __toModule(require_es56());
|
|
87250
|
-
var
|
|
87366
|
+
var import_geospatial13 = __toModule(require_es57());
|
|
87251
87367
|
var import_culling8 = __toModule(require_es58());
|
|
87252
87368
|
function i3sObbTo3dTilesObb(i3SObb, geoidHeightModel) {
|
|
87253
87369
|
const tiles3DCenter = [
|
|
@@ -87255,7 +87371,7 @@ function i3sObbTo3dTilesObb(i3SObb, geoidHeightModel) {
|
|
|
87255
87371
|
i3SObb.center[1],
|
|
87256
87372
|
i3SObb.center[2] + geoidHeightModel.getHeight(i3SObb.center[1], i3SObb.center[0])
|
|
87257
87373
|
];
|
|
87258
|
-
const cartesianCenter =
|
|
87374
|
+
const cartesianCenter = import_geospatial13.Ellipsoid.WGS84.cartographicToCartesian(tiles3DCenter, new import_core30.Vector3());
|
|
87259
87375
|
const tiles3DObb = new import_culling8.OrientedBoundingBox().fromCenterHalfSizeQuaternion(cartesianCenter, i3SObb.halfSize, i3SObb.quaternion);
|
|
87260
87376
|
return [...tiles3DObb.center, ...tiles3DObb.halfAxes.toArray()];
|
|
87261
87377
|
}
|
|
@@ -87300,7 +87416,7 @@ var TILESET = () => ({
|
|
|
87300
87416
|
|
|
87301
87417
|
// src/3d-tiles-converter/helpers/b3dm-converter.ts
|
|
87302
87418
|
var import_core32 = __toModule(require_es56());
|
|
87303
|
-
var
|
|
87419
|
+
var import_geospatial14 = __toModule(require_es57());
|
|
87304
87420
|
|
|
87305
87421
|
// src/3d-tiles-converter/helpers/texture-atlas.ts
|
|
87306
87422
|
function convertTextureAtlas(texCoords, uvRegions) {
|
|
@@ -87337,18 +87453,18 @@ function normalizeRegions(regions) {
|
|
|
87337
87453
|
var Z_UP_TO_Y_UP_MATRIX = new import_core32.Matrix4([1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1]);
|
|
87338
87454
|
var scratchVector6 = new import_core32.Vector3();
|
|
87339
87455
|
var B3dmConverter = class {
|
|
87340
|
-
async convert(
|
|
87341
|
-
|
|
87342
|
-
const gltf = await this.buildGltf(i3sTile);
|
|
87456
|
+
async convert(i3sAttributesData, featureAttributes = null) {
|
|
87457
|
+
const gltf = await this.buildGltf(i3sAttributesData);
|
|
87343
87458
|
const b3dm = encodeSync({
|
|
87344
87459
|
gltfEncoded: new Uint8Array(gltf),
|
|
87345
87460
|
type: "b3dm",
|
|
87346
|
-
featuresLength: this._getFeaturesLength(
|
|
87347
|
-
batchTable:
|
|
87461
|
+
featuresLength: this._getFeaturesLength(featureAttributes),
|
|
87462
|
+
batchTable: featureAttributes
|
|
87348
87463
|
}, Tile3DWriter);
|
|
87349
87464
|
return b3dm;
|
|
87350
87465
|
}
|
|
87351
|
-
async buildGltf(
|
|
87466
|
+
async buildGltf(i3sAttributesData) {
|
|
87467
|
+
const { tileContent, textureFormat } = i3sAttributesData;
|
|
87352
87468
|
const {
|
|
87353
87469
|
material,
|
|
87354
87470
|
attributes,
|
|
@@ -87356,9 +87472,9 @@ var B3dmConverter = class {
|
|
|
87356
87472
|
cartesianOrigin,
|
|
87357
87473
|
cartographicOrigin,
|
|
87358
87474
|
modelMatrix
|
|
87359
|
-
} =
|
|
87475
|
+
} = tileContent;
|
|
87360
87476
|
const gltfBuilder = new GLTFScenegraph();
|
|
87361
|
-
const textureIndex = await this._addI3sTextureToGltf(
|
|
87477
|
+
const textureIndex = await this._addI3sTextureToGltf(tileContent, textureFormat, gltfBuilder);
|
|
87362
87478
|
const pbrMaterialInfo = this._convertI3sMaterialToGltfMaterial(material, textureIndex);
|
|
87363
87479
|
const materialIndex = gltfBuilder.addMaterial(pbrMaterialInfo);
|
|
87364
87480
|
const positions = attributes.positions;
|
|
@@ -87385,11 +87501,8 @@ var B3dmConverter = class {
|
|
|
87385
87501
|
const gltfBuffer = encodeSync(gltfBuilder.gltf, GLTFWriter);
|
|
87386
87502
|
return gltfBuffer;
|
|
87387
87503
|
}
|
|
87388
|
-
async _addI3sTextureToGltf(
|
|
87389
|
-
const {
|
|
87390
|
-
content: { texture, material, attributes },
|
|
87391
|
-
header: { textureFormat }
|
|
87392
|
-
} = i3sTile;
|
|
87504
|
+
async _addI3sTextureToGltf(tileContent, textureFormat, gltfBuilder) {
|
|
87505
|
+
const { texture, material, attributes } = tileContent;
|
|
87393
87506
|
let textureIndex = null;
|
|
87394
87507
|
let selectedTexture = texture;
|
|
87395
87508
|
if (!texture && material) {
|
|
@@ -87409,7 +87522,7 @@ var B3dmConverter = class {
|
|
|
87409
87522
|
const vertex = positionsValue.subarray(index, index + 3);
|
|
87410
87523
|
const cartesianOriginVector = new import_core32.Vector3(cartesianOrigin);
|
|
87411
87524
|
let vertexVector = new import_core32.Vector3(Array.from(vertex)).transform(modelMatrix).add(cartographicOrigin);
|
|
87412
|
-
|
|
87525
|
+
import_geospatial14.Ellipsoid.WGS84.cartographicToCartesian(vertexVector, scratchVector6);
|
|
87413
87526
|
vertexVector = scratchVector6.subtract(cartesianOriginVector);
|
|
87414
87527
|
newPositionsValue.set(vertexVector, index);
|
|
87415
87528
|
}
|
|
@@ -87525,10 +87638,23 @@ var B3dmConverter = class {
|
|
|
87525
87638
|
}
|
|
87526
87639
|
};
|
|
87527
87640
|
|
|
87641
|
+
// src/3d-tiles-attributes-worker.ts
|
|
87642
|
+
var VERSION16 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
87643
|
+
var Tile3dAttributesWorker = {
|
|
87644
|
+
id: "3d-tiles-attributes",
|
|
87645
|
+
name: "3DTiles Attributes Worker",
|
|
87646
|
+
module: "tile-converter",
|
|
87647
|
+
version: VERSION16,
|
|
87648
|
+
options: {
|
|
87649
|
+
attributes: null
|
|
87650
|
+
}
|
|
87651
|
+
};
|
|
87652
|
+
|
|
87528
87653
|
// src/3d-tiles-converter/3d-tiles-converter.ts
|
|
87529
87654
|
var I3S = "I3S";
|
|
87530
87655
|
var Tiles3DConverter = class {
|
|
87531
87656
|
constructor() {
|
|
87657
|
+
this.workerSource = {};
|
|
87532
87658
|
this.options = {};
|
|
87533
87659
|
this.tilesetPath = "";
|
|
87534
87660
|
this.vertexCounter = 0;
|
|
@@ -87536,6 +87662,7 @@ var Tiles3DConverter = class {
|
|
|
87536
87662
|
this.geoidHeightModel = null;
|
|
87537
87663
|
this.sourceTileset = null;
|
|
87538
87664
|
this.attributeStorageInfo = null;
|
|
87665
|
+
this.workerSource = {};
|
|
87539
87666
|
}
|
|
87540
87667
|
async convert(options) {
|
|
87541
87668
|
const { inputUrl, outputPath, tilesetName, maxDepth, egmFilePath } = options;
|
|
@@ -87544,12 +87671,14 @@ var Tiles3DConverter = class {
|
|
|
87544
87671
|
console.log("Loading egm file...");
|
|
87545
87672
|
this.geoidHeightModel = await load(egmFilePath, PGMLoader);
|
|
87546
87673
|
console.log("Loading egm file completed!");
|
|
87674
|
+
await this.loadWorkers();
|
|
87547
87675
|
const sourceTilesetJson = await load(inputUrl, I3SLoader, {});
|
|
87548
87676
|
this.sourceTileset = new Tileset3D(sourceTilesetJson, {
|
|
87549
87677
|
loadOptions: {
|
|
87550
87678
|
i3s: { coordinateSystem: COORDINATE_SYSTEM.LNGLAT_OFFSETS, decodeTextures: false }
|
|
87551
87679
|
}
|
|
87552
87680
|
});
|
|
87681
|
+
await this.sourceTileset.tilesetInitializationPromise;
|
|
87553
87682
|
const rootNode = this.sourceTileset.root;
|
|
87554
87683
|
if (!rootNode.header.obb) {
|
|
87555
87684
|
rootNode.header.obb = createObbFromMbs(rootNode.header.mbs);
|
|
@@ -87571,6 +87700,8 @@ var Tiles3DConverter = class {
|
|
|
87571
87700
|
const tileset = (0, import_json_map_transform8.default)({ root: rootTile }, TILESET());
|
|
87572
87701
|
await writeFile3(this.tilesetPath, JSON.stringify(tileset), "tileset.json");
|
|
87573
87702
|
this._finishConversion({ slpk: false, outputPath, tilesetName });
|
|
87703
|
+
const workerFarm = WorkerFarm.getWorkerFarm({});
|
|
87704
|
+
workerFarm.destroy();
|
|
87574
87705
|
}
|
|
87575
87706
|
async _addChildren(parentSourceNode, parentNode, level) {
|
|
87576
87707
|
if (this.options.maxDepth && level > this.options.maxDepth) {
|
|
@@ -87582,9 +87713,9 @@ var Tiles3DConverter = class {
|
|
|
87582
87713
|
if (sourceChild.contentUrl) {
|
|
87583
87714
|
await this.sourceTileset._loadTile(sourceChild);
|
|
87584
87715
|
this.vertexCounter += sourceChild.content.vertexCount;
|
|
87585
|
-
let
|
|
87716
|
+
let featureAttributes = null;
|
|
87586
87717
|
if (this.attributeStorageInfo) {
|
|
87587
|
-
|
|
87718
|
+
featureAttributes = await this._loadChildAttributes(sourceChild, this.attributeStorageInfo);
|
|
87588
87719
|
}
|
|
87589
87720
|
if (!sourceChild.header.obb) {
|
|
87590
87721
|
sourceChild.header.obb = createObbFromMbs(sourceChild.header.mbs);
|
|
@@ -87597,7 +87728,11 @@ var Tiles3DConverter = class {
|
|
|
87597
87728
|
geometricError: convertScreenThresholdToGeometricError(sourceChild),
|
|
87598
87729
|
children: []
|
|
87599
87730
|
};
|
|
87600
|
-
const
|
|
87731
|
+
const i3sAttributesData = {
|
|
87732
|
+
tileContent: sourceChild.content,
|
|
87733
|
+
textureFormat: sourceChild?.header?.textureFormat
|
|
87734
|
+
};
|
|
87735
|
+
const b3dm = await new B3dmConverter().convert(i3sAttributesData, featureAttributes);
|
|
87601
87736
|
child.content = {
|
|
87602
87737
|
uri: `${sourceChild.id}.b3dm`,
|
|
87603
87738
|
boundingVolume
|
|
@@ -87690,16 +87825,24 @@ var Tiles3DConverter = class {
|
|
|
87690
87825
|
console.log(`File(s) size: `, filesSize, " bytes");
|
|
87691
87826
|
console.log(`------------------------------------------------`);
|
|
87692
87827
|
}
|
|
87828
|
+
async loadWorkers() {
|
|
87829
|
+
console.log(`Loading workers source...`);
|
|
87830
|
+
const tile3dAttributesWorkerUrl = getWorkerURL(Tile3dAttributesWorker, { ...getGlobalLoaderOptions() });
|
|
87831
|
+
const sourceResponse = await fetchFile(tile3dAttributesWorkerUrl);
|
|
87832
|
+
const source = await sourceResponse.text();
|
|
87833
|
+
this.workerSource.tile3dWorkerSource = source;
|
|
87834
|
+
console.log(`Loading workers source completed!`);
|
|
87835
|
+
}
|
|
87693
87836
|
};
|
|
87694
87837
|
|
|
87695
87838
|
// ../zip/src/zip-loader.ts
|
|
87696
87839
|
var import_jszip2 = __toModule(require_lib4());
|
|
87697
|
-
var
|
|
87840
|
+
var VERSION17 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
87698
87841
|
var ZipLoader = {
|
|
87699
87842
|
id: "zip",
|
|
87700
87843
|
module: "zip",
|
|
87701
87844
|
name: "Zip Archive",
|
|
87702
|
-
version:
|
|
87845
|
+
version: VERSION17,
|
|
87703
87846
|
extensions: ["zip"],
|
|
87704
87847
|
mimeTypes: ["application/zip"],
|
|
87705
87848
|
category: "archive",
|
|
@@ -87757,7 +87900,8 @@ var DepsInstaller = class {
|
|
|
87757
87900
|
DepsInstaller,
|
|
87758
87901
|
I3SConverter,
|
|
87759
87902
|
NodePages,
|
|
87760
|
-
Tiles3DConverter
|
|
87903
|
+
Tiles3DConverter,
|
|
87904
|
+
prepareDataForAttributesConversion
|
|
87761
87905
|
});
|
|
87762
87906
|
/*!
|
|
87763
87907
|
* Determine if an object is a Buffer
|