@loaders.gl/tile-converter 3.2.0-alpha.1 → 3.2.0-alpha.4
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 +5 -1
- package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
- package/dist/3d-tiles-converter/3d-tiles-converter.js +34 -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/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +4 -0
- package/dist/converter-cli.d.ts +2 -0
- package/dist/converter-cli.d.ts.map +1 -0
- package/dist/converter-cli.js +232 -0
- package/dist/converter.min.js +68 -68
- package/dist/deps-installer/deps-installer.d.ts +11 -1
- package/dist/deps-installer/deps-installer.d.ts.map +1 -1
- package/dist/deps-installer/deps-installer.js +10 -0
- package/dist/dist.min.js +910 -790
- 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 +116 -46
- 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/constants.js +9 -0
- package/dist/es5/constants.js.map +1 -0
- package/dist/es5/converter-cli.js +306 -0
- package/dist/es5/converter-cli.js.map +1 -0
- package/dist/es5/deps-installer/deps-installer.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 +271 -182
- 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 +293 -223
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/layers.js +29 -0
- package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -1
- package/dist/es5/index.js +0 -16
- 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 +36 -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/constants.js +2 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/converter-cli.js +230 -0
- package/dist/esm/converter-cli.js.map +1 -0
- package/dist/esm/deps-installer/deps-installer.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 +121 -62
- 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 +157 -52
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/layers.js +25 -0
- package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -1
- package/dist/esm/index.js +0 -2
- 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 +223 -113
- 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 -5
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.js +126 -40
- package/dist/i3s-converter/json-templates/layers.d.ts +4 -0
- package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -1
- package/dist/i3s-converter/json-templates/layers.js +24 -0
- package/dist/i3s-converter/types.d.ts +83 -8
- package/dist/i3s-converter/types.d.ts.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -5
- 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 +23 -18
- package/src/3d-tiles-attributes-worker.ts +43 -0
- package/src/3d-tiles-converter/3d-tiles-converter.ts +50 -5
- package/src/3d-tiles-converter/helpers/b3dm-converter.ts +15 -13
- package/src/constants.ts +2 -0
- package/src/converter-cli.ts +310 -0
- package/src/deps-installer/{deps-installer.js → deps-installer.ts} +11 -1
- 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} +425 -179
- 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 +150 -90
- package/src/i3s-converter/json-templates/layers.ts +25 -0
- package/src/i3s-converter/types.ts +90 -8
- package/src/index.ts +0 -4
- 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/deps-installer/deps-installer.d.ts +0 -10
- 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/deps-installer/deps-installer.d.ts +0 -10
- 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/deps-installer/deps-installer.d.ts +0 -10
- 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 VERSION17 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
|
|
560
|
+
exports.VERSION = VERSION17;
|
|
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 VERSION17 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
|
|
2101
|
+
exports.VERSION = VERSION17;
|
|
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 || ""))
|
|
@@ -17998,7 +17998,7 @@ var require_BufferList = __commonJS({
|
|
|
17998
17998
|
this.head = this.tail = null;
|
|
17999
17999
|
this.length = 0;
|
|
18000
18000
|
};
|
|
18001
|
-
BufferList.prototype.join = function
|
|
18001
|
+
BufferList.prototype.join = function join9(s) {
|
|
18002
18002
|
if (this.length === 0)
|
|
18003
18003
|
return "";
|
|
18004
18004
|
var p = this.head;
|
|
@@ -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
|
}
|
|
@@ -22945,7 +22945,7 @@ var require_buffer_list = __commonJS({
|
|
|
22945
22945
|
}
|
|
22946
22946
|
}, {
|
|
22947
22947
|
key: "join",
|
|
22948
|
-
value: function
|
|
22948
|
+
value: function join9(s) {
|
|
22949
22949
|
if (this.length === 0)
|
|
22950
22950
|
return "";
|
|
22951
22951
|
var p = this.head;
|
|
@@ -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() {
|
|
@@ -26657,7 +26657,7 @@ var require_buffer_list2 = __commonJS({
|
|
|
26657
26657
|
}
|
|
26658
26658
|
}, {
|
|
26659
26659
|
key: "join",
|
|
26660
|
-
value: function
|
|
26660
|
+
value: function join9(s) {
|
|
26661
26661
|
if (this.length === 0)
|
|
26662
26662
|
return "";
|
|
26663
26663
|
var p = this.head;
|
|
@@ -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() {
|
|
@@ -29799,7 +29799,7 @@ var require_buffer_list3 = __commonJS({
|
|
|
29799
29799
|
}
|
|
29800
29800
|
}, {
|
|
29801
29801
|
key: "join",
|
|
29802
|
-
value: function
|
|
29802
|
+
value: function join9(s) {
|
|
29803
29803
|
if (this.length === 0)
|
|
29804
29804
|
return "";
|
|
29805
29805
|
var p = this.head;
|
|
@@ -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() {
|
|
@@ -33171,7 +33171,7 @@ var require_buffer_list4 = __commonJS({
|
|
|
33171
33171
|
}
|
|
33172
33172
|
}, {
|
|
33173
33173
|
key: "join",
|
|
33174
|
-
value: function
|
|
33174
|
+
value: function join9(s) {
|
|
33175
33175
|
if (this.length === 0)
|
|
33176
33176
|
return "";
|
|
33177
33177
|
var p = this.head;
|
|
@@ -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() {
|
|
@@ -36545,7 +36545,7 @@ var require_buffer_list5 = __commonJS({
|
|
|
36545
36545
|
}
|
|
36546
36546
|
}, {
|
|
36547
36547
|
key: "join",
|
|
36548
|
-
value: function
|
|
36548
|
+
value: function join9(s) {
|
|
36549
36549
|
if (this.length === 0)
|
|
36550
36550
|
return "";
|
|
36551
36551
|
var p = this.head;
|
|
@@ -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;
|
|
@@ -46941,9 +46941,9 @@ var require_load = __commonJS({
|
|
|
46941
46941
|
var require_lib4 = __commonJS({
|
|
46942
46942
|
"../../node_modules/jszip/lib/index.js"(exports, module2) {
|
|
46943
46943
|
"use strict";
|
|
46944
|
-
function
|
|
46945
|
-
if (!(this instanceof
|
|
46946
|
-
return new
|
|
46944
|
+
function JSZip2() {
|
|
46945
|
+
if (!(this instanceof JSZip2)) {
|
|
46946
|
+
return new JSZip2();
|
|
46947
46947
|
}
|
|
46948
46948
|
if (arguments.length) {
|
|
46949
46949
|
throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");
|
|
@@ -46952,7 +46952,7 @@ var require_lib4 = __commonJS({
|
|
|
46952
46952
|
this.comment = null;
|
|
46953
46953
|
this.root = "";
|
|
46954
46954
|
this.clone = function() {
|
|
46955
|
-
var newObj = new
|
|
46955
|
+
var newObj = new JSZip2();
|
|
46956
46956
|
for (var i in this) {
|
|
46957
46957
|
if (typeof this[i] !== "function") {
|
|
46958
46958
|
newObj[i] = this[i];
|
|
@@ -46961,16 +46961,16 @@ var require_lib4 = __commonJS({
|
|
|
46961
46961
|
return newObj;
|
|
46962
46962
|
};
|
|
46963
46963
|
}
|
|
46964
|
-
|
|
46965
|
-
|
|
46966
|
-
|
|
46967
|
-
|
|
46968
|
-
|
|
46969
|
-
|
|
46970
|
-
return new
|
|
46964
|
+
JSZip2.prototype = require_object();
|
|
46965
|
+
JSZip2.prototype.loadAsync = require_load();
|
|
46966
|
+
JSZip2.support = require_support();
|
|
46967
|
+
JSZip2.defaults = require_defaults();
|
|
46968
|
+
JSZip2.version = "3.7.0";
|
|
46969
|
+
JSZip2.loadAsync = function(content, options) {
|
|
46970
|
+
return new JSZip2().loadAsync(content, options);
|
|
46971
46971
|
};
|
|
46972
|
-
|
|
46973
|
-
module2.exports =
|
|
46972
|
+
JSZip2.external = require_external();
|
|
46973
|
+
module2.exports = JSZip2;
|
|
46974
46974
|
}
|
|
46975
46975
|
});
|
|
46976
46976
|
|
|
@@ -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 VERSION17 = 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 !== VERSION17) {
|
|
49858
|
+
throw new Error("luma.gl - multiple VERSIONs detected: ".concat(_env.global.luma.VERSION, " vs ").concat(VERSION17));
|
|
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(VERSION17, " - ").concat(STARTUP_MESSAGE))();
|
|
49863
49863
|
}
|
|
49864
49864
|
_env.global.luma = _env.global.luma || {
|
|
49865
|
-
VERSION:
|
|
49866
|
-
version:
|
|
49865
|
+
VERSION: VERSION17,
|
|
49866
|
+
version: VERSION17,
|
|
49867
49867
|
log: _gltools.log,
|
|
49868
49868
|
stats: lumaStats,
|
|
49869
49869
|
globals: {
|
|
@@ -73404,9 +73404,7 @@ var require_es516 = __commonJS({
|
|
|
73404
73404
|
|
|
73405
73405
|
// src/index.ts
|
|
73406
73406
|
__export(exports, {
|
|
73407
|
-
DepsInstaller: () => DepsInstaller,
|
|
73408
73407
|
I3SConverter: () => I3SConverter,
|
|
73409
|
-
NodePages: () => NodePages,
|
|
73410
73408
|
Tiles3DConverter: () => Tiles3DConverter
|
|
73411
73409
|
});
|
|
73412
73410
|
|
|
@@ -73590,7 +73588,7 @@ var WorkerThread = class {
|
|
|
73590
73588
|
this.worker = isBrowser2 ? this._createBrowserWorker() : this._createNodeWorker();
|
|
73591
73589
|
}
|
|
73592
73590
|
static isSupported() {
|
|
73593
|
-
return typeof Worker !== "undefined" && isBrowser2;
|
|
73591
|
+
return typeof Worker !== "undefined" && isBrowser2 || typeof import_worker_threads.Worker !== void 0;
|
|
73594
73592
|
}
|
|
73595
73593
|
destroy() {
|
|
73596
73594
|
this.onMessage = NOOP;
|
|
@@ -73699,9 +73697,9 @@ var WorkerPool = class {
|
|
|
73699
73697
|
this.onDebug = props.onDebug;
|
|
73700
73698
|
}
|
|
73701
73699
|
}
|
|
73702
|
-
async startJob(name8,
|
|
73700
|
+
async startJob(name8, onMessage3 = (job, type, data) => job.done(data), onError = (job, error) => job.error(error)) {
|
|
73703
73701
|
const startPromise = new Promise((onStart) => {
|
|
73704
|
-
this.jobQueue.push({ name: name8, onMessage:
|
|
73702
|
+
this.jobQueue.push({ name: name8, onMessage: onMessage3, onError, onStart });
|
|
73705
73703
|
return this;
|
|
73706
73704
|
});
|
|
73707
73705
|
this._startQueuedJob();
|
|
@@ -73821,8 +73819,34 @@ var WorkerFarm = class {
|
|
|
73821
73819
|
}
|
|
73822
73820
|
};
|
|
73823
73821
|
|
|
73822
|
+
// ../worker-utils/src/lib/worker-utils/remove-nontransferable-options.ts
|
|
73823
|
+
function removeNontransferableOptions(object) {
|
|
73824
|
+
return JSON.parse(stringifyJSON(object));
|
|
73825
|
+
}
|
|
73826
|
+
function stringifyJSON(v) {
|
|
73827
|
+
const cache = new Set();
|
|
73828
|
+
return JSON.stringify(v, (key, value) => {
|
|
73829
|
+
if (typeof value === "object" && value !== null) {
|
|
73830
|
+
if (cache.has(value)) {
|
|
73831
|
+
try {
|
|
73832
|
+
return JSON.parse(JSON.stringify(value));
|
|
73833
|
+
} catch (err) {
|
|
73834
|
+
return void 0;
|
|
73835
|
+
}
|
|
73836
|
+
}
|
|
73837
|
+
cache.add(value);
|
|
73838
|
+
}
|
|
73839
|
+
return value;
|
|
73840
|
+
});
|
|
73841
|
+
}
|
|
73842
|
+
|
|
73824
73843
|
// ../worker-utils/src/lib/worker-api/get-worker-url.ts
|
|
73825
73844
|
var NPM_TAG = "beta";
|
|
73845
|
+
var VERSION2 = typeof VERSION !== "undefined" ? VERSION : NPM_TAG;
|
|
73846
|
+
function getWorkerName(worker) {
|
|
73847
|
+
const warning = worker.version !== VERSION2 ? ` (worker-utils@${VERSION2})` : "";
|
|
73848
|
+
return `${worker.name}@${worker.version}${warning}`;
|
|
73849
|
+
}
|
|
73826
73850
|
function getWorkerURL(worker, options = {}) {
|
|
73827
73851
|
const workerOptions = options[worker.id] || {};
|
|
73828
73852
|
const workerFile = `${worker.id}-worker.js`;
|
|
@@ -73845,6 +73869,50 @@ function getWorkerURL(worker, options = {}) {
|
|
|
73845
73869
|
return url;
|
|
73846
73870
|
}
|
|
73847
73871
|
|
|
73872
|
+
// ../worker-utils/src/lib/worker-api/process-on-worker.ts
|
|
73873
|
+
async function processOnWorker(worker, data, options = {}, context = {}) {
|
|
73874
|
+
const name8 = getWorkerName(worker);
|
|
73875
|
+
const workerFarm = WorkerFarm.getWorkerFarm(options);
|
|
73876
|
+
const { source } = options;
|
|
73877
|
+
const workerPoolProps = { name: name8, source };
|
|
73878
|
+
if (!source) {
|
|
73879
|
+
workerPoolProps.url = getWorkerURL(worker, options);
|
|
73880
|
+
}
|
|
73881
|
+
const workerPool = workerFarm.getWorkerPool(workerPoolProps);
|
|
73882
|
+
const jobName = options.jobName || worker.name;
|
|
73883
|
+
const job = await workerPool.startJob(jobName, onMessage.bind(null, context));
|
|
73884
|
+
const transferableOptions = removeNontransferableOptions(options);
|
|
73885
|
+
job.postMessage("process", { input: data, options: transferableOptions });
|
|
73886
|
+
const result = await job.result;
|
|
73887
|
+
return result.result;
|
|
73888
|
+
}
|
|
73889
|
+
async function onMessage(context, job, type, payload) {
|
|
73890
|
+
switch (type) {
|
|
73891
|
+
case "done":
|
|
73892
|
+
job.done(payload);
|
|
73893
|
+
break;
|
|
73894
|
+
case "error":
|
|
73895
|
+
job.error(new Error(payload.error));
|
|
73896
|
+
break;
|
|
73897
|
+
case "process":
|
|
73898
|
+
const { id, input, options } = payload;
|
|
73899
|
+
try {
|
|
73900
|
+
if (!context.process) {
|
|
73901
|
+
job.postMessage("error", { id, error: "Worker not set up to process on main thread" });
|
|
73902
|
+
return;
|
|
73903
|
+
}
|
|
73904
|
+
const result = await context.process(input, options);
|
|
73905
|
+
job.postMessage("done", { id, result });
|
|
73906
|
+
} catch (error) {
|
|
73907
|
+
const message = error instanceof Error ? error.message : "unknown error";
|
|
73908
|
+
job.postMessage("error", { id, error: message });
|
|
73909
|
+
}
|
|
73910
|
+
break;
|
|
73911
|
+
default:
|
|
73912
|
+
console.warn(`process-on-worker: unknown message ${type}`);
|
|
73913
|
+
}
|
|
73914
|
+
}
|
|
73915
|
+
|
|
73848
73916
|
// ../worker-utils/src/lib/worker-api/validate-worker-version.ts
|
|
73849
73917
|
function validateWorkerVersion(worker, coreVersion = VERSION) {
|
|
73850
73918
|
assert3(worker, "no worker provided");
|
|
@@ -73896,7 +73964,7 @@ function requireFromString(code, filename2 = "", options) {
|
|
|
73896
73964
|
|
|
73897
73965
|
// ../worker-utils/src/lib/library-utils/library-utils.ts
|
|
73898
73966
|
var LATEST = "beta";
|
|
73899
|
-
var
|
|
73967
|
+
var VERSION3 = typeof VERSION !== "undefined" ? VERSION : LATEST;
|
|
73900
73968
|
var loadLibraryPromises = {};
|
|
73901
73969
|
async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
|
|
73902
73970
|
if (moduleName) {
|
|
@@ -73918,7 +73986,7 @@ function getLibraryUrl(library, moduleName, options) {
|
|
|
73918
73986
|
}
|
|
73919
73987
|
if (options.CDN) {
|
|
73920
73988
|
assert3(options.CDN.startsWith("http"));
|
|
73921
|
-
return `${options.CDN}/${moduleName}@${
|
|
73989
|
+
return `${options.CDN}/${moduleName}@${VERSION3}/dist/libs/${library}`;
|
|
73922
73990
|
}
|
|
73923
73991
|
if (isWorker) {
|
|
73924
73992
|
return `../src/libs/${library}`;
|
|
@@ -74099,15 +74167,17 @@ async function parseWithWorker(loader, data, options, context, parseOnMainThread
|
|
|
74099
74167
|
const workerFarm = WorkerFarm.getWorkerFarm(options);
|
|
74100
74168
|
const workerPool = workerFarm.getWorkerPool({ name: name8, url });
|
|
74101
74169
|
options = JSON.parse(JSON.stringify(options));
|
|
74102
|
-
|
|
74170
|
+
context = JSON.parse(JSON.stringify(context || {}));
|
|
74171
|
+
const job = await workerPool.startJob("process-on-worker", onMessage2.bind(null, parseOnMainThread));
|
|
74103
74172
|
job.postMessage("process", {
|
|
74104
74173
|
input: data,
|
|
74105
|
-
options
|
|
74174
|
+
options,
|
|
74175
|
+
context
|
|
74106
74176
|
});
|
|
74107
74177
|
const result = await job.result;
|
|
74108
74178
|
return await result.result;
|
|
74109
74179
|
}
|
|
74110
|
-
async function
|
|
74180
|
+
async function onMessage2(parseOnMainThread, job, type, payload) {
|
|
74111
74181
|
switch (type) {
|
|
74112
74182
|
case "done":
|
|
74113
74183
|
job.done(payload);
|
|
@@ -74130,6 +74200,17 @@ async function onMessage(parseOnMainThread, job, type, payload) {
|
|
|
74130
74200
|
}
|
|
74131
74201
|
}
|
|
74132
74202
|
|
|
74203
|
+
// ../loader-utils/src/lib/worker-loader-utils/encode-with-worker.ts
|
|
74204
|
+
function canEncodeWithWorker(writer, options) {
|
|
74205
|
+
if (!WorkerFarm.isSupported()) {
|
|
74206
|
+
return false;
|
|
74207
|
+
}
|
|
74208
|
+
if (!isBrowser && !options?._nodeWorkers) {
|
|
74209
|
+
return false;
|
|
74210
|
+
}
|
|
74211
|
+
return writer.worker && options?.worker;
|
|
74212
|
+
}
|
|
74213
|
+
|
|
74133
74214
|
// ../loader-utils/src/lib/binary-utils/get-first-characters.ts
|
|
74134
74215
|
function getFirstCharacters(data, length = 5) {
|
|
74135
74216
|
if (typeof data === "string") {
|
|
@@ -74670,7 +74751,7 @@ async function getResponseError(response) {
|
|
|
74670
74751
|
text += ` ${await response.text()}`;
|
|
74671
74752
|
}
|
|
74672
74753
|
message += text;
|
|
74673
|
-
message = message.length > 60 ? `${message.slice(60)}...` : message;
|
|
74754
|
+
message = message.length > 60 ? `${message.slice(0, 60)}...` : message;
|
|
74674
74755
|
} catch (error) {
|
|
74675
74756
|
}
|
|
74676
74757
|
return message;
|
|
@@ -75336,6 +75417,12 @@ async function parse(data, loaders, options, context) {
|
|
|
75336
75417
|
}
|
|
75337
75418
|
async function parseWithLoader(loader, data, options, context) {
|
|
75338
75419
|
validateWorkerVersion(loader);
|
|
75420
|
+
if (isResponse(data)) {
|
|
75421
|
+
const response = data;
|
|
75422
|
+
const { ok, redirected, status, statusText, type, url } = response;
|
|
75423
|
+
const headers = Object.fromEntries(response.headers.entries());
|
|
75424
|
+
context.response = { headers, ok, redirected, status, statusText, type, url };
|
|
75425
|
+
}
|
|
75339
75426
|
data = await getArrayBufferOrStringFromData(data, loader, options);
|
|
75340
75427
|
if (loader.parseTextSync && typeof data === "string") {
|
|
75341
75428
|
options.dataType = "text";
|
|
@@ -75374,6 +75461,11 @@ async function load(url, loaders, options, context) {
|
|
|
75374
75461
|
|
|
75375
75462
|
// ../core/src/lib/api/encode.ts
|
|
75376
75463
|
async function encode(data, writer, options) {
|
|
75464
|
+
const globalOptions = getGlobalLoaderOptions();
|
|
75465
|
+
options = { ...globalOptions, ...options };
|
|
75466
|
+
if (canEncodeWithWorker(writer, options)) {
|
|
75467
|
+
return await processOnWorker(writer, data, options);
|
|
75468
|
+
}
|
|
75377
75469
|
if (writer.encode) {
|
|
75378
75470
|
return await writer.encode(data, options);
|
|
75379
75471
|
}
|
|
@@ -75433,7 +75525,7 @@ function getTemporaryFilename(filename2) {
|
|
|
75433
75525
|
|
|
75434
75526
|
// ../tiles/src/tileset/tileset-3d.ts
|
|
75435
75527
|
var import_core10 = __toModule(require_es56());
|
|
75436
|
-
var
|
|
75528
|
+
var import_geospatial6 = __toModule(require_es57());
|
|
75437
75529
|
var import_stats2 = __toModule(require_es5());
|
|
75438
75530
|
|
|
75439
75531
|
// ../tiles/src/utils/doubly-linked-list-node.ts
|
|
@@ -75700,6 +75792,7 @@ function commonSpacePlanesToWGS84(viewport, viewportCenterCartesian) {
|
|
|
75700
75792
|
// ../tiles/src/tileset/helpers/zoom.ts
|
|
75701
75793
|
var import_core3 = __toModule(require_es56());
|
|
75702
75794
|
var import_culling2 = __toModule(require_es58());
|
|
75795
|
+
var import_geospatial3 = __toModule(require_es57());
|
|
75703
75796
|
var WGS84_RADIUS_X = 6378137;
|
|
75704
75797
|
var WGS84_RADIUS_Y = 6378137;
|
|
75705
75798
|
var WGS84_RADIUS_Z = 6356752314245179e-9;
|
|
@@ -75720,6 +75813,15 @@ function getZoomFromBoundingVolume(boundingVolume, cartorgraphicCenter) {
|
|
|
75720
75813
|
}
|
|
75721
75814
|
return 1;
|
|
75722
75815
|
}
|
|
75816
|
+
function getZoomFromFullExtent(fullExtent, cartorgraphicCenter, cartesianCenter) {
|
|
75817
|
+
const extentVertex = import_geospatial3.Ellipsoid.WGS84.cartographicToCartesian([fullExtent.xmax, fullExtent.ymax, fullExtent.zmax], new import_core3.Vector3());
|
|
75818
|
+
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));
|
|
75819
|
+
return Math.log2(WGS84_RADIUS_Z / (extentSize + cartorgraphicCenter[2]));
|
|
75820
|
+
}
|
|
75821
|
+
function getZoomFromExtent(extent, cartorgraphicCenter, cartesianCenter) {
|
|
75822
|
+
const [xmin, ymin, xmax, ymax] = extent;
|
|
75823
|
+
return getZoomFromFullExtent({ xmin, xmax, ymin, ymax, zmin: 0, zmax: 0 }, cartorgraphicCenter, cartesianCenter);
|
|
75824
|
+
}
|
|
75723
75825
|
function getObbSize(halfAxes) {
|
|
75724
75826
|
halfAxes.getColumn(0, scratchVector2);
|
|
75725
75827
|
const axeY = halfAxes.getColumn(1);
|
|
@@ -75769,7 +75871,7 @@ var TILE3D_OPTIMIZATION_HINT = {
|
|
|
75769
75871
|
// ../tiles/src/tileset/helpers/bounding-volume.ts
|
|
75770
75872
|
var import_core4 = __toModule(require_es56());
|
|
75771
75873
|
var import_culling3 = __toModule(require_es58());
|
|
75772
|
-
var
|
|
75874
|
+
var import_geospatial4 = __toModule(require_es57());
|
|
75773
75875
|
function defined2(x) {
|
|
75774
75876
|
return x !== void 0 && x !== null;
|
|
75775
75877
|
}
|
|
@@ -75783,8 +75885,8 @@ function createBoundingVolume(boundingVolumeHeader, transform9, result) {
|
|
|
75783
75885
|
}
|
|
75784
75886
|
if (boundingVolumeHeader.region) {
|
|
75785
75887
|
const [west, south, east, north, minHeight, maxHeight] = boundingVolumeHeader.region;
|
|
75786
|
-
const northWest =
|
|
75787
|
-
const southEast =
|
|
75888
|
+
const northWest = import_geospatial4.Ellipsoid.WGS84.cartographicToCartesian([(0, import_core4.degrees)(west), (0, import_core4.degrees)(north), minHeight], scratchNorthWest);
|
|
75889
|
+
const southEast = import_geospatial4.Ellipsoid.WGS84.cartographicToCartesian([(0, import_core4.degrees)(east), (0, import_core4.degrees)(south), maxHeight], scratchSouthEast);
|
|
75788
75890
|
const centerInCartesian = new import_core4.Vector3().addVectors(northWest, southEast).multiplyScalar(0.5);
|
|
75789
75891
|
const radius = new import_core4.Vector3().subVectors(northWest, southEast).len() / 2;
|
|
75790
75892
|
return createSphere([centerInCartesian[0], centerInCartesian[1], centerInCartesian[2], radius], new import_core4.Matrix4());
|
|
@@ -75888,7 +75990,7 @@ function getTiles3DScreenSpaceError(tile, frameState, useParentLodMetric) {
|
|
|
75888
75990
|
|
|
75889
75991
|
// ../tiles/src/tileset/helpers/i3s-lod.ts
|
|
75890
75992
|
var import_core6 = __toModule(require_es56());
|
|
75891
|
-
var
|
|
75993
|
+
var import_geospatial5 = __toModule(require_es57());
|
|
75892
75994
|
var cameraPositionCartesian = new import_core6.Vector3();
|
|
75893
75995
|
var toEye = new import_core6.Vector3();
|
|
75894
75996
|
var cameraPositionEnu = new import_core6.Vector3();
|
|
@@ -75919,9 +76021,9 @@ function getProjectedRadius(tile, frameState) {
|
|
|
75919
76021
|
const mbsR = tile.header.mbs[3];
|
|
75920
76022
|
const mbsCenterCartesian = [...tile.boundingVolume.center];
|
|
75921
76023
|
const cameraPositionCartographic = viewport.unprojectPosition(viewport.cameraPosition);
|
|
75922
|
-
|
|
76024
|
+
import_geospatial5.Ellipsoid.WGS84.cartographicToCartesian(cameraPositionCartographic, cameraPositionCartesian);
|
|
75923
76025
|
toEye.copy(cameraPositionCartesian).subtract(mbsCenterCartesian).normalize();
|
|
75924
|
-
|
|
76026
|
+
import_geospatial5.Ellipsoid.WGS84.eastNorthUpToFixedFrame(mbsCenterCartesian, enuToCartesianMatrix);
|
|
75925
76027
|
cartesianToEnuMatrix.copy(enuToCartesianMatrix).invert();
|
|
75926
76028
|
cameraPositionEnu.copy(cameraPositionCartesian).transform(cartesianToEnuMatrix);
|
|
75927
76029
|
const projection = Math.sqrt(cameraPositionEnu[0] * cameraPositionEnu[0] + cameraPositionEnu[1] * cameraPositionEnu[1]);
|
|
@@ -75931,7 +76033,7 @@ function getProjectedRadius(tile, frameState) {
|
|
|
75931
76033
|
const extraVectorCartesian = extraVertexCartesian.subtract(mbsCenterCartesian).normalize();
|
|
75932
76034
|
const radiusVector = toEye.cross(extraVectorCartesian).normalize().scale(mbsR);
|
|
75933
76035
|
const sphereMbsBorderVertexCartesian = radiusVector.add(mbsCenterCartesian);
|
|
75934
|
-
const sphereMbsBorderVertexCartographic =
|
|
76036
|
+
const sphereMbsBorderVertexCartographic = import_geospatial5.Ellipsoid.WGS84.cartesianToCartographic(sphereMbsBorderVertexCartesian);
|
|
75935
76037
|
const projectedOrigin = viewport.project([mbsLon, mbsLat, mbsZ]);
|
|
75936
76038
|
const projectedMbsBorderVertex = viewport.project(sphereMbsBorderVertexCartographic);
|
|
75937
76039
|
const projectedRadius = projectedOriginVector.copy(projectedOrigin).subtract(projectedMbsBorderVertex).magnitude();
|
|
@@ -76041,6 +76143,8 @@ var DEFAULT_PROPS4 = {
|
|
|
76041
76143
|
};
|
|
76042
76144
|
var TilesetTraverser = class {
|
|
76043
76145
|
constructor(options) {
|
|
76146
|
+
this.lastUpdate = new Date().getTime();
|
|
76147
|
+
this.updateDebounceTime = 1e3;
|
|
76044
76148
|
this.options = { ...DEFAULT_PROPS4, ...options };
|
|
76045
76149
|
this._traversalStack = new ManagedArray();
|
|
76046
76150
|
this._emptyTraversalStack = new ManagedArray();
|
|
@@ -76050,6 +76154,9 @@ var TilesetTraverser = class {
|
|
|
76050
76154
|
this.requestedTiles = {};
|
|
76051
76155
|
this.emptyTiles = {};
|
|
76052
76156
|
}
|
|
76157
|
+
get traversalFinished() {
|
|
76158
|
+
return true;
|
|
76159
|
+
}
|
|
76053
76160
|
traverse(root, frameState, options) {
|
|
76054
76161
|
this.root = root;
|
|
76055
76162
|
this.options = { ...this.options, ...options };
|
|
@@ -76097,7 +76204,11 @@ var TilesetTraverser = class {
|
|
|
76097
76204
|
this.touchTile(tile, frameState);
|
|
76098
76205
|
tile._shouldRefine = shouldRefine && parentRefines;
|
|
76099
76206
|
}
|
|
76100
|
-
|
|
76207
|
+
const newTime = new Date().getTime();
|
|
76208
|
+
if (this.traversalFinished || newTime - this.lastUpdate > this.updateDebounceTime) {
|
|
76209
|
+
this.lastUpdate = newTime;
|
|
76210
|
+
this.options.onTraversalEnd(frameState);
|
|
76211
|
+
}
|
|
76101
76212
|
}
|
|
76102
76213
|
updateChildTiles(tile, frameState) {
|
|
76103
76214
|
const children = tile.children;
|
|
@@ -76631,6 +76742,25 @@ var Tileset3DTraverser = class extends TilesetTraverser {
|
|
|
76631
76742
|
}
|
|
76632
76743
|
};
|
|
76633
76744
|
|
|
76745
|
+
// ../tiles/src/tileset/traversers/i3s-frame-counter.ts
|
|
76746
|
+
var I3SPendingTilesRegister = class {
|
|
76747
|
+
constructor() {
|
|
76748
|
+
this.frameNumberMap = new Map();
|
|
76749
|
+
}
|
|
76750
|
+
register(frameNumber) {
|
|
76751
|
+
const oldCount = this.frameNumberMap.get(frameNumber) || 0;
|
|
76752
|
+
this.frameNumberMap.set(frameNumber, (oldCount || 0) + 1);
|
|
76753
|
+
}
|
|
76754
|
+
deregister(frameNumber) {
|
|
76755
|
+
const oldCount = this.frameNumberMap.get(frameNumber) || 1;
|
|
76756
|
+
this.frameNumberMap.set(frameNumber, (oldCount || 0) - 1);
|
|
76757
|
+
}
|
|
76758
|
+
isZero(frameNumber) {
|
|
76759
|
+
const count = this.frameNumberMap.get(frameNumber) || 0;
|
|
76760
|
+
return count === 0;
|
|
76761
|
+
}
|
|
76762
|
+
};
|
|
76763
|
+
|
|
76634
76764
|
// ../tiles/src/tileset/traversers/i3s-tile-manager.ts
|
|
76635
76765
|
var STATUS = {
|
|
76636
76766
|
REQUESTED: "REQUESTED",
|
|
@@ -76639,32 +76769,45 @@ var STATUS = {
|
|
|
76639
76769
|
};
|
|
76640
76770
|
var I3STileManager = class {
|
|
76641
76771
|
constructor() {
|
|
76772
|
+
this.pendingTilesRegister = new I3SPendingTilesRegister();
|
|
76642
76773
|
this._statusMap = {};
|
|
76643
76774
|
}
|
|
76644
76775
|
add(request, key, callback, frameState) {
|
|
76645
76776
|
if (!this._statusMap[key]) {
|
|
76777
|
+
const { frameNumber } = frameState;
|
|
76646
76778
|
this._statusMap[key] = { request, callback, key, frameState, status: STATUS.REQUESTED };
|
|
76779
|
+
this.pendingTilesRegister.register(frameNumber);
|
|
76647
76780
|
request().then((data) => {
|
|
76648
76781
|
this._statusMap[key].status = STATUS.COMPLETED;
|
|
76782
|
+
this.pendingTilesRegister.deregister(frameNumber);
|
|
76649
76783
|
this._statusMap[key].callback(data, frameState);
|
|
76650
76784
|
}).catch((error) => {
|
|
76651
76785
|
this._statusMap[key].status = STATUS.ERROR;
|
|
76786
|
+
this.pendingTilesRegister.deregister(frameNumber);
|
|
76652
76787
|
callback(error);
|
|
76653
76788
|
});
|
|
76654
76789
|
}
|
|
76655
76790
|
}
|
|
76656
76791
|
update(key, frameState) {
|
|
76657
76792
|
if (this._statusMap[key]) {
|
|
76793
|
+
this.pendingTilesRegister.deregister(this._statusMap[key].frameState.frameNumber);
|
|
76794
|
+
this.pendingTilesRegister.register(frameState.frameNumber);
|
|
76658
76795
|
this._statusMap[key].frameState = frameState;
|
|
76659
76796
|
}
|
|
76660
76797
|
}
|
|
76661
76798
|
find(key) {
|
|
76662
76799
|
return this._statusMap[key];
|
|
76663
76800
|
}
|
|
76801
|
+
hasPendingTiles(frameNumber) {
|
|
76802
|
+
return !this.pendingTilesRegister.isZero(frameNumber);
|
|
76803
|
+
}
|
|
76664
76804
|
};
|
|
76665
76805
|
|
|
76666
76806
|
// ../tiles/src/tileset/traversers/i3s-tileset-traverser.ts
|
|
76667
76807
|
var I3STilesetTraverser = class extends TilesetTraverser {
|
|
76808
|
+
get traversalFinished() {
|
|
76809
|
+
return !this._tileManager.hasPendingTiles(this._frameNumber || 0);
|
|
76810
|
+
}
|
|
76668
76811
|
constructor(options) {
|
|
76669
76812
|
super(options);
|
|
76670
76813
|
this._tileManager = new I3STileManager();
|
|
@@ -76715,7 +76858,7 @@ var I3STilesetTraverser = class extends TilesetTraverser {
|
|
|
76715
76858
|
tile.children.push(childTile);
|
|
76716
76859
|
const frameState = this._tileManager.find(childTile.id).frameState;
|
|
76717
76860
|
this.updateTile(childTile, frameState);
|
|
76718
|
-
if (this._frameNumber === frameState.frameNumber) {
|
|
76861
|
+
if (this._frameNumber === frameState.frameNumber && (this.traversalFinished || new Date().getTime() - this.lastUpdate > this.updateDebounceTime)) {
|
|
76719
76862
|
this.executeTraversal(childTile, frameState);
|
|
76720
76863
|
}
|
|
76721
76864
|
}
|
|
@@ -76724,7 +76867,7 @@ var I3STilesetTraverser = class extends TilesetTraverser {
|
|
|
76724
76867
|
// ../tiles/src/tileset/tileset-3d.ts
|
|
76725
76868
|
var DEFAULT_PROPS5 = {
|
|
76726
76869
|
description: "",
|
|
76727
|
-
ellipsoid:
|
|
76870
|
+
ellipsoid: import_geospatial6.Ellipsoid.WGS84,
|
|
76728
76871
|
modelMatrix: new import_core10.Matrix4(),
|
|
76729
76872
|
throttleRequests: true,
|
|
76730
76873
|
maxRequests: 64,
|
|
@@ -76757,7 +76900,7 @@ var TILES_LOADED = "Tiles Loaded";
|
|
|
76757
76900
|
var TILES_LOADING = "Tiles Loading";
|
|
76758
76901
|
var TILES_UNLOADED = "Tiles Unloaded";
|
|
76759
76902
|
var TILES_LOAD_FAILED = "Failed Tile Loads";
|
|
76760
|
-
var POINTS_COUNT = "Points";
|
|
76903
|
+
var POINTS_COUNT = "Points/Vertices";
|
|
76761
76904
|
var TILES_GPU_MEMORY = "Tile Memory Use";
|
|
76762
76905
|
var Tileset3D = class {
|
|
76763
76906
|
constructor(json, options) {
|
|
@@ -76809,13 +76952,13 @@ var Tileset3D = class {
|
|
|
76809
76952
|
this.asset = {};
|
|
76810
76953
|
this.credits = {};
|
|
76811
76954
|
this.description = this.options.description || "";
|
|
76812
|
-
this._initializeTileSet(json);
|
|
76955
|
+
this.tilesetInitializationPromise = this._initializeTileSet(json);
|
|
76813
76956
|
}
|
|
76814
76957
|
destroy() {
|
|
76815
76958
|
this._destroy();
|
|
76816
76959
|
}
|
|
76817
76960
|
isLoaded() {
|
|
76818
|
-
return this._pendingCount === 0 && this._frameNumber !== 0;
|
|
76961
|
+
return this._pendingCount === 0 && this._frameNumber !== 0 && this._requestedTiles.length === 0;
|
|
76819
76962
|
}
|
|
76820
76963
|
get tiles() {
|
|
76821
76964
|
return Object.values(this._tiles);
|
|
@@ -76846,14 +76989,17 @@ var Tileset3D = class {
|
|
|
76846
76989
|
return Boolean(this._extensionsUsed && this._extensionsUsed.indexOf(extensionName) > -1);
|
|
76847
76990
|
}
|
|
76848
76991
|
update(viewports = null) {
|
|
76849
|
-
|
|
76850
|
-
viewports
|
|
76851
|
-
|
|
76852
|
-
|
|
76853
|
-
|
|
76854
|
-
|
|
76992
|
+
this.tilesetInitializationPromise.then(() => {
|
|
76993
|
+
if (!viewports && this.lastUpdatedVieports) {
|
|
76994
|
+
viewports = this.lastUpdatedVieports;
|
|
76995
|
+
} else {
|
|
76996
|
+
this.lastUpdatedVieports = viewports;
|
|
76997
|
+
}
|
|
76998
|
+
this.doUpdate(viewports);
|
|
76999
|
+
});
|
|
76855
77000
|
}
|
|
76856
77001
|
async selectTiles(viewports = null) {
|
|
77002
|
+
await this.tilesetInitializationPromise;
|
|
76857
77003
|
if (viewports) {
|
|
76858
77004
|
this.lastUpdatedVieports = viewports;
|
|
76859
77005
|
}
|
|
@@ -76978,6 +77124,8 @@ var Tileset3D = class {
|
|
|
76978
77124
|
tilesRenderable++;
|
|
76979
77125
|
if (tile.content.pointCount) {
|
|
76980
77126
|
pointsRenderable += tile.content.pointCount;
|
|
77127
|
+
} else {
|
|
77128
|
+
pointsRenderable += tile.content.vertexCount;
|
|
76981
77129
|
}
|
|
76982
77130
|
}
|
|
76983
77131
|
}
|
|
@@ -76985,17 +77133,43 @@ var Tileset3D = class {
|
|
|
76985
77133
|
this.stats.get(TILES_RENDERABLE).count = tilesRenderable;
|
|
76986
77134
|
this.stats.get(POINTS_COUNT).count = pointsRenderable;
|
|
76987
77135
|
}
|
|
76988
|
-
_initializeTileSet(tilesetJson) {
|
|
77136
|
+
async _initializeTileSet(tilesetJson) {
|
|
77137
|
+
if (this.type === TILESET_TYPE.I3S) {
|
|
77138
|
+
this.calculateViewPropsI3S();
|
|
77139
|
+
tilesetJson.root = await tilesetJson.root;
|
|
77140
|
+
}
|
|
76989
77141
|
this.root = this._initializeTileHeaders(tilesetJson, null);
|
|
76990
77142
|
if (this.type === TILESET_TYPE.TILES3D) {
|
|
76991
|
-
this.
|
|
77143
|
+
this._initializeTiles3DTileset(tilesetJson);
|
|
77144
|
+
this.calculateViewPropsTiles3D();
|
|
76992
77145
|
}
|
|
76993
77146
|
if (this.type === TILESET_TYPE.I3S) {
|
|
76994
77147
|
this._initializeI3STileset();
|
|
76995
77148
|
}
|
|
76996
|
-
this._calculateViewProps();
|
|
76997
77149
|
}
|
|
76998
|
-
|
|
77150
|
+
calculateViewPropsI3S() {
|
|
77151
|
+
const fullExtent = this.tileset.fullExtent;
|
|
77152
|
+
if (fullExtent) {
|
|
77153
|
+
const { xmin, xmax, ymin, ymax, zmin, zmax } = fullExtent;
|
|
77154
|
+
this.cartographicCenter = new import_core10.Vector3(xmin + (xmax - xmin) / 2, ymin + (ymax - ymin) / 2, zmin + (zmax - zmin) / 2);
|
|
77155
|
+
this.cartesianCenter = import_geospatial6.Ellipsoid.WGS84.cartographicToCartesian(this.cartographicCenter, new import_core10.Vector3());
|
|
77156
|
+
this.zoom = getZoomFromFullExtent(fullExtent, this.cartographicCenter, this.cartesianCenter);
|
|
77157
|
+
return;
|
|
77158
|
+
}
|
|
77159
|
+
const extent = this.tileset.store?.extent;
|
|
77160
|
+
if (extent) {
|
|
77161
|
+
const [xmin, ymin, xmax, ymax] = extent;
|
|
77162
|
+
this.cartographicCenter = new import_core10.Vector3(xmin + (xmax - xmin) / 2, ymin + (ymax - ymin) / 2, 0);
|
|
77163
|
+
this.cartesianCenter = import_geospatial6.Ellipsoid.WGS84.cartographicToCartesian(this.cartographicCenter, new import_core10.Vector3());
|
|
77164
|
+
this.zoom = getZoomFromExtent(extent, this.cartographicCenter, this.cartesianCenter);
|
|
77165
|
+
return;
|
|
77166
|
+
}
|
|
77167
|
+
console.warn("Extent is not defined in the tileset header");
|
|
77168
|
+
this.cartographicCenter = new import_core10.Vector3();
|
|
77169
|
+
this.zoom = 1;
|
|
77170
|
+
return;
|
|
77171
|
+
}
|
|
77172
|
+
calculateViewPropsTiles3D() {
|
|
76999
77173
|
const root = this.root;
|
|
77000
77174
|
assert2(root);
|
|
77001
77175
|
const { center } = root.boundingVolume;
|
|
@@ -77005,7 +77179,7 @@ var Tileset3D = class {
|
|
|
77005
77179
|
this.zoom = 1;
|
|
77006
77180
|
return;
|
|
77007
77181
|
}
|
|
77008
|
-
this.cartographicCenter =
|
|
77182
|
+
this.cartographicCenter = import_geospatial6.Ellipsoid.WGS84.cartesianToCartographic(center, new import_core10.Vector3());
|
|
77009
77183
|
this.cartesianCenter = center;
|
|
77010
77184
|
this.zoom = getZoomFromBoundingVolume(root.boundingVolume, this.cartographicCenter);
|
|
77011
77185
|
}
|
|
@@ -77088,6 +77262,11 @@ var Tileset3D = class {
|
|
|
77088
77262
|
if (!loaded) {
|
|
77089
77263
|
return;
|
|
77090
77264
|
}
|
|
77265
|
+
if (this.type === TILESET_TYPE.I3S) {
|
|
77266
|
+
const nodesInNodePages = this.tileset?.nodePagesTile?.nodesInNodePages || 0;
|
|
77267
|
+
this.stats.get(TILES_TOTAL).reset();
|
|
77268
|
+
this.stats.get(TILES_TOTAL).addCount(nodesInNodePages);
|
|
77269
|
+
}
|
|
77091
77270
|
if (tile && tile.content) {
|
|
77092
77271
|
calculateTransformProps(tile, tile.content);
|
|
77093
77272
|
}
|
|
@@ -77153,7 +77332,7 @@ var Tileset3D = class {
|
|
|
77153
77332
|
this._unloadTile(tile);
|
|
77154
77333
|
tile.destroy();
|
|
77155
77334
|
}
|
|
77156
|
-
|
|
77335
|
+
_initializeTiles3DTileset(tilesetJson) {
|
|
77157
77336
|
this.asset = tilesetJson.asset;
|
|
77158
77337
|
if (!this.asset) {
|
|
77159
77338
|
throw new Error("Tileset must have an asset property.");
|
|
@@ -77195,7 +77374,7 @@ function getQueryParamString(queryParams) {
|
|
|
77195
77374
|
}
|
|
77196
77375
|
|
|
77197
77376
|
// ../3d-tiles/src/lib/utils/version.ts
|
|
77198
|
-
var
|
|
77377
|
+
var VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
77199
77378
|
|
|
77200
77379
|
// ../3d-tiles/src/lib/constants.ts
|
|
77201
77380
|
var TILE3D_TYPE = {
|
|
@@ -77229,7 +77408,7 @@ function getMagicString3(arrayBuffer, byteOffset = 0) {
|
|
|
77229
77408
|
}
|
|
77230
77409
|
|
|
77231
77410
|
// ../draco/src/lib/utils/version.ts
|
|
77232
|
-
var
|
|
77411
|
+
var VERSION5 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
77233
77412
|
|
|
77234
77413
|
// ../draco/src/draco-loader.ts
|
|
77235
77414
|
var DEFAULT_DRACO_OPTIONS = {
|
|
@@ -77245,7 +77424,7 @@ var DracoLoader = {
|
|
|
77245
77424
|
id: "draco",
|
|
77246
77425
|
module: "draco",
|
|
77247
77426
|
shapes: ["mesh"],
|
|
77248
|
-
version:
|
|
77427
|
+
version: VERSION5,
|
|
77249
77428
|
worker: true,
|
|
77250
77429
|
extensions: ["drc"],
|
|
77251
77430
|
mimeTypes: ["application/octet-stream"],
|
|
@@ -78156,7 +78335,6 @@ var DRACO_WASM_WRAPPER_URL = `https://www.gstatic.com/draco/versioned/decoders/$
|
|
|
78156
78335
|
var DRACO_WASM_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_VERSION}/draco_decoder.wasm`;
|
|
78157
78336
|
var DRACO_ENCODER_URL = `https://raw.githubusercontent.com/google/draco/${DRACO_VERSION}/javascript/draco_encoder.js`;
|
|
78158
78337
|
var loadDecoderPromise;
|
|
78159
|
-
var loadEncoderPromise;
|
|
78160
78338
|
async function loadDracoDecoderModule(options) {
|
|
78161
78339
|
const modules = options.modules || {};
|
|
78162
78340
|
if (modules.draco3d) {
|
|
@@ -78168,17 +78346,6 @@ async function loadDracoDecoderModule(options) {
|
|
|
78168
78346
|
}
|
|
78169
78347
|
return await loadDecoderPromise;
|
|
78170
78348
|
}
|
|
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
78349
|
async function loadDracoDecoder(options) {
|
|
78183
78350
|
let DracoDecoderModule;
|
|
78184
78351
|
let wasmBinary;
|
|
@@ -78208,303 +78375,19 @@ function initializeDracoDecoder(DracoDecoderModule, wasmBinary) {
|
|
|
78208
78375
|
});
|
|
78209
78376
|
});
|
|
78210
78377
|
}
|
|
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
78378
|
|
|
78481
|
-
// ../draco/src/
|
|
78482
|
-
var
|
|
78483
|
-
|
|
78484
|
-
|
|
78485
|
-
};
|
|
78486
|
-
var DracoWriter = {
|
|
78487
|
-
name: "DRACO",
|
|
78488
|
-
id: "draco",
|
|
78379
|
+
// ../draco/src/index.ts
|
|
78380
|
+
var DracoWriterWorker = {
|
|
78381
|
+
id: isBrowser2 ? "draco-writer" : "draco-writer-nodejs",
|
|
78382
|
+
name: "Draco compressed geometry writer",
|
|
78489
78383
|
module: "draco",
|
|
78490
|
-
version:
|
|
78491
|
-
|
|
78492
|
-
encode: encode2,
|
|
78384
|
+
version: VERSION5,
|
|
78385
|
+
worker: true,
|
|
78493
78386
|
options: {
|
|
78494
|
-
draco:
|
|
78387
|
+
draco: {},
|
|
78388
|
+
source: null
|
|
78495
78389
|
}
|
|
78496
78390
|
};
|
|
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
78391
|
var DracoLoader2 = {
|
|
78509
78392
|
...DracoLoader,
|
|
78510
78393
|
parse: parse2
|
|
@@ -79633,15 +79516,15 @@ async function loadDraco(tile, dracoData, options, context) {
|
|
|
79633
79516
|
}
|
|
79634
79517
|
|
|
79635
79518
|
// ../gltf/src/lib/utils/version.ts
|
|
79636
|
-
var
|
|
79519
|
+
var VERSION6 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
79637
79520
|
|
|
79638
79521
|
// ../textures/src/lib/utils/version.ts
|
|
79639
|
-
var
|
|
79522
|
+
var VERSION7 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
79640
79523
|
|
|
79641
79524
|
// ../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@${
|
|
79525
|
+
var VERSION8 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
79526
|
+
var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION8}/dist/libs/basis_encoder.wasm`;
|
|
79527
|
+
var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION8}/dist/libs/basis_encoder.js`;
|
|
79645
79528
|
var loadBasisTranscoderPromise;
|
|
79646
79529
|
async function loadBasisTrascoderModule(options) {
|
|
79647
79530
|
const modules = options.modules || {};
|
|
@@ -80137,7 +80020,7 @@ var BasisWorkerLoader = {
|
|
|
80137
80020
|
name: "Basis",
|
|
80138
80021
|
id: "basis",
|
|
80139
80022
|
module: "textures",
|
|
80140
|
-
version:
|
|
80023
|
+
version: VERSION7,
|
|
80141
80024
|
worker: true,
|
|
80142
80025
|
extensions: ["basis", "ktx2"],
|
|
80143
80026
|
mimeTypes: ["application/octet-stream", "image/ktx2"],
|
|
@@ -80450,7 +80333,7 @@ var CompressedTextureWorkerLoader = {
|
|
|
80450
80333
|
name: "Texture Containers",
|
|
80451
80334
|
id: "compressed-texture",
|
|
80452
80335
|
module: "textures",
|
|
80453
|
-
version:
|
|
80336
|
+
version: VERSION7,
|
|
80454
80337
|
worker: true,
|
|
80455
80338
|
extensions: [
|
|
80456
80339
|
"ktx",
|
|
@@ -80487,51 +80370,8 @@ var CompressedTextureLoader = {
|
|
|
80487
80370
|
}
|
|
80488
80371
|
};
|
|
80489
80372
|
|
|
80490
|
-
// ../textures/src/lib/encoders/encode-ktx2-basis-texture.ts
|
|
80491
|
-
async function encodeKTX2BasisTexture(image, options = {}) {
|
|
80492
|
-
const { useSRGB = false, qualityLevel = 10, encodeUASTC = false, mipmaps = false } = options;
|
|
80493
|
-
const { BasisEncoder } = await loadBasisEncoderModule(options);
|
|
80494
|
-
const basisEncoder = new BasisEncoder();
|
|
80495
|
-
try {
|
|
80496
|
-
const basisFileData = new Uint8Array(image.width * image.height * 4);
|
|
80497
|
-
basisEncoder.setCreateKTX2File(true);
|
|
80498
|
-
basisEncoder.setKTX2UASTCSupercompression(true);
|
|
80499
|
-
basisEncoder.setKTX2SRGBTransferFunc(true);
|
|
80500
|
-
basisEncoder.setSliceSourceImage(0, image.data, image.width, image.height, false);
|
|
80501
|
-
basisEncoder.setPerceptual(useSRGB);
|
|
80502
|
-
basisEncoder.setMipSRGB(useSRGB);
|
|
80503
|
-
basisEncoder.setQualityLevel(qualityLevel);
|
|
80504
|
-
basisEncoder.setUASTC(encodeUASTC);
|
|
80505
|
-
basisEncoder.setMipGen(mipmaps);
|
|
80506
|
-
const numOutputBytes = basisEncoder.encode(basisFileData);
|
|
80507
|
-
const actualKTX2FileData = basisFileData.subarray(0, numOutputBytes).buffer;
|
|
80508
|
-
return actualKTX2FileData;
|
|
80509
|
-
} catch (error) {
|
|
80510
|
-
console.error("Basis Universal Supercompressed GPU Texture encoder Error: ", error);
|
|
80511
|
-
throw error;
|
|
80512
|
-
} finally {
|
|
80513
|
-
basisEncoder.delete();
|
|
80514
|
-
}
|
|
80515
|
-
}
|
|
80516
|
-
|
|
80517
|
-
// ../textures/src/ktx2-basis-universal-texture-writer.ts
|
|
80518
|
-
var KTX2BasisUniversalTextureWriter = {
|
|
80519
|
-
name: "Basis Universal Supercompressed GPU Texture",
|
|
80520
|
-
id: "ktx2-basis-supercompressed-texture",
|
|
80521
|
-
module: "textures",
|
|
80522
|
-
version: VERSION6,
|
|
80523
|
-
extensions: ["ktx2"],
|
|
80524
|
-
options: {
|
|
80525
|
-
useSRGB: false,
|
|
80526
|
-
qualityLevel: 10,
|
|
80527
|
-
encodeUASTC: false,
|
|
80528
|
-
mipmaps: false
|
|
80529
|
-
},
|
|
80530
|
-
encode: encodeKTX2BasisTexture
|
|
80531
|
-
};
|
|
80532
|
-
|
|
80533
80373
|
// ../images/src/lib/utils/version.ts
|
|
80534
|
-
var
|
|
80374
|
+
var VERSION9 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
80535
80375
|
|
|
80536
80376
|
// ../images/src/lib/category-api/image-type.ts
|
|
80537
80377
|
var { _parseImageNode } = globalThis;
|
|
@@ -80873,7 +80713,7 @@ var ImageLoader = {
|
|
|
80873
80713
|
id: "image",
|
|
80874
80714
|
module: "images",
|
|
80875
80715
|
name: "Images",
|
|
80876
|
-
version:
|
|
80716
|
+
version: VERSION9,
|
|
80877
80717
|
mimeTypes: MIME_TYPES,
|
|
80878
80718
|
extensions: EXTENSIONS,
|
|
80879
80719
|
parse: parseImage,
|
|
@@ -80936,7 +80776,7 @@ var ImageWriter = {
|
|
|
80936
80776
|
name: "Images",
|
|
80937
80777
|
id: "image",
|
|
80938
80778
|
module: "images",
|
|
80939
|
-
version:
|
|
80779
|
+
version: VERSION9,
|
|
80940
80780
|
extensions: ["jpeg"],
|
|
80941
80781
|
options: {
|
|
80942
80782
|
image: {
|
|
@@ -80982,6 +80822,22 @@ function checkWebPSupport() {
|
|
|
80982
80822
|
}
|
|
80983
80823
|
}
|
|
80984
80824
|
|
|
80825
|
+
// ../textures/src/index.ts
|
|
80826
|
+
var KTX2BasisWriterWorker = {
|
|
80827
|
+
name: "Basis Universal Supercompressed GPU Texture",
|
|
80828
|
+
id: isBrowser ? "ktx2-basis-writer" : "ktx2-basis-writer-nodejs",
|
|
80829
|
+
module: "textures",
|
|
80830
|
+
version: VERSION7,
|
|
80831
|
+
extensions: ["ktx2"],
|
|
80832
|
+
worker: true,
|
|
80833
|
+
options: {
|
|
80834
|
+
useSRGB: false,
|
|
80835
|
+
qualityLevel: 10,
|
|
80836
|
+
encodeUASTC: false,
|
|
80837
|
+
mipmaps: false
|
|
80838
|
+
}
|
|
80839
|
+
};
|
|
80840
|
+
|
|
80985
80841
|
// ../gltf/src/lib/utils/assert.ts
|
|
80986
80842
|
function assert6(condition, message) {
|
|
80987
80843
|
if (!condition) {
|
|
@@ -81017,8 +80873,7 @@ function getTypedArrayForBufferView(json, buffers, bufferViewIndex) {
|
|
|
81017
80873
|
var EXT_meshopt_compression_exports = {};
|
|
81018
80874
|
__export(EXT_meshopt_compression_exports, {
|
|
81019
80875
|
decode: () => decode2,
|
|
81020
|
-
name: () => name
|
|
81021
|
-
preprocess: () => preprocess
|
|
80876
|
+
name: () => name
|
|
81022
80877
|
});
|
|
81023
80878
|
|
|
81024
80879
|
// ../gltf/src/lib/gltf-utils/gltf-utils.ts
|
|
@@ -81467,7 +81322,6 @@ var GLTFScenegraph = class {
|
|
|
81467
81322
|
};
|
|
81468
81323
|
|
|
81469
81324
|
// ../gltf/src/meshopt/meshopt-decoder.ts
|
|
81470
|
-
var isWebAssemblySupported = typeof WebAssembly !== "object";
|
|
81471
81325
|
var wasm_base = "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";
|
|
81472
81326
|
var wasm_simd = "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";
|
|
81473
81327
|
var detector = new Uint8Array([
|
|
@@ -81603,9 +81457,6 @@ var DECODERS = {
|
|
|
81603
81457
|
TRIANGLES: "meshopt_decodeIndexBuffer",
|
|
81604
81458
|
INDICES: "meshopt_decodeIndexSequence"
|
|
81605
81459
|
};
|
|
81606
|
-
function isMeshoptSupported() {
|
|
81607
|
-
return isWebAssemblySupported;
|
|
81608
|
-
}
|
|
81609
81460
|
async function meshoptDecodeGltfBuffer(target, count, size, source, mode, filter = "NONE") {
|
|
81610
81461
|
const instance = await loadWasmInstance();
|
|
81611
81462
|
decode(instance, instance.exports[DECODERS[mode]], target, count, size, source, instance.exports[FILTERS[filter || "NONE"]]);
|
|
@@ -81660,12 +81511,6 @@ function decode(instance, fun, target, count, size, source, filter) {
|
|
|
81660
81511
|
// ../gltf/src/lib/extensions/EXT_meshopt_compression.ts
|
|
81661
81512
|
var EXT_MESHOPT_COMPRESSION = "EXT_meshopt_compression";
|
|
81662
81513
|
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
81514
|
async function decode2(gltfData, options) {
|
|
81670
81515
|
const scenegraph = new GLTFScenegraph(gltfData);
|
|
81671
81516
|
if (!options?.gltf?.decompressMeshes) {
|
|
@@ -81681,18 +81526,19 @@ async function decode2(gltfData, options) {
|
|
|
81681
81526
|
async function decodeMeshoptBufferView(scenegraph, bufferView) {
|
|
81682
81527
|
const meshoptExtension = scenegraph.getObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);
|
|
81683
81528
|
if (meshoptExtension) {
|
|
81684
|
-
const buffer = bufferView.buffer;
|
|
81685
81529
|
const {
|
|
81686
81530
|
byteOffset = 0,
|
|
81687
81531
|
byteLength = 0,
|
|
81688
81532
|
byteStride,
|
|
81689
81533
|
count,
|
|
81690
81534
|
mode,
|
|
81691
|
-
filter = "NONE"
|
|
81535
|
+
filter = "NONE",
|
|
81536
|
+
buffer: bufferIndex
|
|
81692
81537
|
} = meshoptExtension;
|
|
81693
|
-
const
|
|
81694
|
-
const
|
|
81695
|
-
|
|
81538
|
+
const buffer = scenegraph.gltf.buffers[bufferIndex];
|
|
81539
|
+
const source = new Uint8Array(buffer.arrayBuffer, buffer.byteOffset + byteOffset, byteLength);
|
|
81540
|
+
const result = new Uint8Array(scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer, bufferView.byteOffset, bufferView.byteLength);
|
|
81541
|
+
await meshoptDecodeGltfBuffer(result, count, byteStride, source, mode, filter);
|
|
81696
81542
|
return result;
|
|
81697
81543
|
}
|
|
81698
81544
|
return null;
|
|
@@ -81702,11 +81548,11 @@ async function decodeMeshoptBufferView(scenegraph, bufferView) {
|
|
|
81702
81548
|
var EXT_texture_webp_exports = {};
|
|
81703
81549
|
__export(EXT_texture_webp_exports, {
|
|
81704
81550
|
name: () => name2,
|
|
81705
|
-
preprocess: () =>
|
|
81551
|
+
preprocess: () => preprocess
|
|
81706
81552
|
});
|
|
81707
81553
|
var EXT_TEXTURE_WEBP = "EXT_texture_webp";
|
|
81708
81554
|
var name2 = EXT_TEXTURE_WEBP;
|
|
81709
|
-
function
|
|
81555
|
+
function preprocess(gltfData, options) {
|
|
81710
81556
|
const scenegraph = new GLTFScenegraph(gltfData);
|
|
81711
81557
|
if (!_isImageFormatSupported("image/webp")) {
|
|
81712
81558
|
if (scenegraph.getRequiredExtensions().includes(EXT_TEXTURE_WEBP)) {
|
|
@@ -81729,11 +81575,11 @@ function preprocess2(gltfData, options) {
|
|
|
81729
81575
|
var KHR_texture_basisu_exports = {};
|
|
81730
81576
|
__export(KHR_texture_basisu_exports, {
|
|
81731
81577
|
name: () => name3,
|
|
81732
|
-
preprocess: () =>
|
|
81578
|
+
preprocess: () => preprocess2
|
|
81733
81579
|
});
|
|
81734
81580
|
var KHR_TEXTURE_BASISU = "KHR_texture_basisu";
|
|
81735
81581
|
var name3 = KHR_TEXTURE_BASISU;
|
|
81736
|
-
function
|
|
81582
|
+
function preprocess2(gltfData, options) {
|
|
81737
81583
|
const scene = new GLTFScenegraph(gltfData);
|
|
81738
81584
|
const { json } = scene;
|
|
81739
81585
|
for (const texture of json.textures || []) {
|
|
@@ -81750,9 +81596,9 @@ function preprocess3(gltfData, options) {
|
|
|
81750
81596
|
var KHR_draco_mesh_compression_exports = {};
|
|
81751
81597
|
__export(KHR_draco_mesh_compression_exports, {
|
|
81752
81598
|
decode: () => decode3,
|
|
81753
|
-
encode: () =>
|
|
81599
|
+
encode: () => encode2,
|
|
81754
81600
|
name: () => name4,
|
|
81755
|
-
preprocess: () =>
|
|
81601
|
+
preprocess: () => preprocess3
|
|
81756
81602
|
});
|
|
81757
81603
|
|
|
81758
81604
|
// ../gltf/src/lib/gltf-utils/gltf-attribute-utils.ts
|
|
@@ -81811,7 +81657,7 @@ function toTypedArray(array, ArrayType, convertTypedArrays = false) {
|
|
|
81811
81657
|
// ../gltf/src/lib/extensions/KHR_draco_mesh_compression.ts
|
|
81812
81658
|
var KHR_DRACO_MESH_COMPRESSION = "KHR_draco_mesh_compression";
|
|
81813
81659
|
var name4 = KHR_DRACO_MESH_COMPRESSION;
|
|
81814
|
-
function
|
|
81660
|
+
function preprocess3(gltfData, options, context) {
|
|
81815
81661
|
const scenegraph = new GLTFScenegraph(gltfData);
|
|
81816
81662
|
for (const primitive of makeMeshPrimitiveIterator(scenegraph)) {
|
|
81817
81663
|
if (scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {
|
|
@@ -81832,7 +81678,7 @@ async function decode3(gltfData, options, context) {
|
|
|
81832
81678
|
await Promise.all(promises);
|
|
81833
81679
|
scenegraph.removeExtension(KHR_DRACO_MESH_COMPRESSION);
|
|
81834
81680
|
}
|
|
81835
|
-
function
|
|
81681
|
+
function encode2(gltfData, options = {}) {
|
|
81836
81682
|
const scenegraph = new GLTFScenegraph(gltfData);
|
|
81837
81683
|
for (const mesh of scenegraph.json.meshes || []) {
|
|
81838
81684
|
compressMesh(mesh, options);
|
|
@@ -81908,7 +81754,7 @@ function* makeMeshPrimitiveIterator(scenegraph) {
|
|
|
81908
81754
|
var KHR_lights_punctual_exports = {};
|
|
81909
81755
|
__export(KHR_lights_punctual_exports, {
|
|
81910
81756
|
decode: () => decode4,
|
|
81911
|
-
encode: () =>
|
|
81757
|
+
encode: () => encode3,
|
|
81912
81758
|
name: () => name5
|
|
81913
81759
|
});
|
|
81914
81760
|
var KHR_LIGHTS_PUNCTUAL = "KHR_lights_punctual";
|
|
@@ -81929,7 +81775,7 @@ async function decode4(gltfData) {
|
|
|
81929
81775
|
gltfScenegraph.removeObjectExtension(node2, KHR_LIGHTS_PUNCTUAL);
|
|
81930
81776
|
}
|
|
81931
81777
|
}
|
|
81932
|
-
async function
|
|
81778
|
+
async function encode3(gltfData) {
|
|
81933
81779
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
81934
81780
|
const { json } = gltfScenegraph;
|
|
81935
81781
|
if (json.lights) {
|
|
@@ -81951,7 +81797,7 @@ async function encode4(gltfData) {
|
|
|
81951
81797
|
var KHR_materials_unlit_exports = {};
|
|
81952
81798
|
__export(KHR_materials_unlit_exports, {
|
|
81953
81799
|
decode: () => decode5,
|
|
81954
|
-
encode: () =>
|
|
81800
|
+
encode: () => encode4,
|
|
81955
81801
|
name: () => name6
|
|
81956
81802
|
});
|
|
81957
81803
|
var KHR_MATERIALS_UNLIT = "KHR_materials_unlit";
|
|
@@ -81968,7 +81814,7 @@ async function decode5(gltfData) {
|
|
|
81968
81814
|
gltfScenegraph.removeObjectExtension(material, KHR_MATERIALS_UNLIT);
|
|
81969
81815
|
}
|
|
81970
81816
|
}
|
|
81971
|
-
function
|
|
81817
|
+
function encode4(gltfData) {
|
|
81972
81818
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
81973
81819
|
const { json } = gltfScenegraph;
|
|
81974
81820
|
if (gltfScenegraph.materials) {
|
|
@@ -81986,7 +81832,7 @@ function encode5(gltfData) {
|
|
|
81986
81832
|
var KHR_techniques_webgl_exports = {};
|
|
81987
81833
|
__export(KHR_techniques_webgl_exports, {
|
|
81988
81834
|
decode: () => decode6,
|
|
81989
|
-
encode: () =>
|
|
81835
|
+
encode: () => encode5,
|
|
81990
81836
|
name: () => name7
|
|
81991
81837
|
});
|
|
81992
81838
|
var KHR_TECHNIQUES_WEBGL = "KHR_techniques_webgl";
|
|
@@ -82008,7 +81854,7 @@ async function decode6(gltfData) {
|
|
|
82008
81854
|
gltfScenegraph.removeExtension(KHR_TECHNIQUES_WEBGL);
|
|
82009
81855
|
}
|
|
82010
81856
|
}
|
|
82011
|
-
async function
|
|
81857
|
+
async function encode5(gltfData, options) {
|
|
82012
81858
|
}
|
|
82013
81859
|
function resolveTechniques(techniquesExtension, gltfScenegraph) {
|
|
82014
81860
|
const { programs = [], shaders = [], techniques = [] } = techniquesExtension;
|
|
@@ -82074,7 +81920,7 @@ function useExtension(extensionName, options) {
|
|
|
82074
81920
|
|
|
82075
81921
|
// ../gltf/src/lib/extensions/KHR_binary_gltf.ts
|
|
82076
81922
|
var KHR_BINARY_GLTF = "KHR_binary_glTF";
|
|
82077
|
-
function
|
|
81923
|
+
function preprocess4(gltfData) {
|
|
82078
81924
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
82079
81925
|
const { json } = gltfScenegraph;
|
|
82080
81926
|
for (const image of json.images || []) {
|
|
@@ -82155,7 +82001,7 @@ var GLTFV1Normalizer = class {
|
|
|
82155
82001
|
console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail.");
|
|
82156
82002
|
this._addAsset(json);
|
|
82157
82003
|
this._convertTopLevelObjectsToArrays(json);
|
|
82158
|
-
|
|
82004
|
+
preprocess4(gltf);
|
|
82159
82005
|
this._convertObjectIdsToArrayIndices(json);
|
|
82160
82006
|
this._updateObjects(json);
|
|
82161
82007
|
this._updateMaterial(json);
|
|
@@ -82272,7 +82118,7 @@ var GLTFV1Normalizer = class {
|
|
|
82272
82118
|
metallicFactor: 1,
|
|
82273
82119
|
roughnessFactor: 1
|
|
82274
82120
|
};
|
|
82275
|
-
const textureId = material.values
|
|
82121
|
+
const textureId = material.values?.tex || material.values?.texture2d_0;
|
|
82276
82122
|
const textureIndex = json.textures.findIndex((texture) => texture.id === textureId);
|
|
82277
82123
|
if (textureIndex !== -1) {
|
|
82278
82124
|
material.pbrMetallicRoughness.baseColorTexture = { index: textureIndex };
|
|
@@ -82772,6 +82618,12 @@ async function loadBuffers(gltf, options, context) {
|
|
|
82772
82618
|
byteLength: arrayBuffer.byteLength
|
|
82773
82619
|
};
|
|
82774
82620
|
delete buffer.uri;
|
|
82621
|
+
} else if (gltf.buffers[i] === null) {
|
|
82622
|
+
gltf.buffers[i] = {
|
|
82623
|
+
arrayBuffer: new ArrayBuffer(buffer.byteLength),
|
|
82624
|
+
byteOffset: 0,
|
|
82625
|
+
byteLength: buffer.byteLength
|
|
82626
|
+
};
|
|
82775
82627
|
}
|
|
82776
82628
|
}
|
|
82777
82629
|
}
|
|
@@ -82826,7 +82678,7 @@ var GLTFLoader = {
|
|
|
82826
82678
|
name: "glTF",
|
|
82827
82679
|
id: "gltf",
|
|
82828
82680
|
module: "gltf",
|
|
82829
|
-
version:
|
|
82681
|
+
version: VERSION6,
|
|
82830
82682
|
extensions: ["gltf", "glb"],
|
|
82831
82683
|
mimeTypes: ["model/gltf+json", "model/gltf-binary"],
|
|
82832
82684
|
text: true,
|
|
@@ -82924,7 +82776,7 @@ var GLTFWriter = {
|
|
|
82924
82776
|
name: "glTF",
|
|
82925
82777
|
id: "gltf",
|
|
82926
82778
|
module: "gltf",
|
|
82927
|
-
version:
|
|
82779
|
+
version: VERSION6,
|
|
82928
82780
|
extensions: ["glb"],
|
|
82929
82781
|
mimeTypes: ["model/gltf-binary"],
|
|
82930
82782
|
binary: true,
|
|
@@ -83020,7 +82872,7 @@ function parseBatchedModel(tile, arrayBuffer, byteOffset, options, context) {
|
|
|
83020
82872
|
|
|
83021
82873
|
// ../3d-tiles/src/lib/parsers/parse-3d-tile-instanced-model.ts
|
|
83022
82874
|
var import_core15 = __toModule(require_es56());
|
|
83023
|
-
var
|
|
82875
|
+
var import_geospatial7 = __toModule(require_es57());
|
|
83024
82876
|
async function parseInstancedModel3DTile(tile, arrayBuffer, byteOffset, options, context) {
|
|
83025
82877
|
byteOffset = parseInstancedModel(tile, arrayBuffer, byteOffset, options, context);
|
|
83026
82878
|
await extractGLTF(tile, tile.gltfFormat, options, context);
|
|
@@ -83118,7 +82970,7 @@ function extractInstancedAttributes(tile, featureTable, batchTable, instancesLen
|
|
|
83118
82970
|
}
|
|
83119
82971
|
throw new Error("i3dm: oct-encoded orientation not implemented");
|
|
83120
82972
|
} else if (tile.eastNorthUp) {
|
|
83121
|
-
|
|
82973
|
+
import_geospatial7.Ellipsoid.WGS84.eastNorthUpToFixedFrame(instancePosition, instanceTransform);
|
|
83122
82974
|
instanceTransform.getRotationMatrix3(instanceRotation);
|
|
83123
82975
|
} else {
|
|
83124
82976
|
instanceRotation.identity();
|
|
@@ -83259,7 +83111,7 @@ var Tile3DSubtreeLoader = {
|
|
|
83259
83111
|
id: "3d-tiles-subtree",
|
|
83260
83112
|
name: "3D Tiles Subtree",
|
|
83261
83113
|
module: "3d-tiles",
|
|
83262
|
-
version:
|
|
83114
|
+
version: VERSION4,
|
|
83263
83115
|
extensions: ["subtree"],
|
|
83264
83116
|
mimeTypes: ["application/octet-stream"],
|
|
83265
83117
|
tests: ["subtree"],
|
|
@@ -83563,7 +83415,7 @@ var Tiles3DLoader = {
|
|
|
83563
83415
|
id: "3d-tiles",
|
|
83564
83416
|
name: "3D Tiles",
|
|
83565
83417
|
module: "3d-tiles",
|
|
83566
|
-
version:
|
|
83418
|
+
version: VERSION4,
|
|
83567
83419
|
extensions: ["cmpt", "pnts", "b3dm", "i3dm"],
|
|
83568
83420
|
mimeTypes: ["application/octet-stream"],
|
|
83569
83421
|
tests: ["cmpt", "pnts", "b3dm", "i3dm"],
|
|
@@ -83858,7 +83710,7 @@ var Tile3DWriter = {
|
|
|
83858
83710
|
name: "3D Tile",
|
|
83859
83711
|
id: "3d-tiles",
|
|
83860
83712
|
module: "3d-tiles",
|
|
83861
|
-
version:
|
|
83713
|
+
version: VERSION4,
|
|
83862
83714
|
extensions: ["cmpt", "pnts", "b3dm", "i3dm"],
|
|
83863
83715
|
mimeTypes: ["application/octet-stream"],
|
|
83864
83716
|
encodeSync: encodeSync3,
|
|
@@ -83997,31 +83849,37 @@ var NodePages = class {
|
|
|
83997
83849
|
this.updateResourceInMesh(node2);
|
|
83998
83850
|
return node2.index;
|
|
83999
83851
|
}
|
|
84000
|
-
async save(layers0Path,
|
|
83852
|
+
async save(layers0Path, writeQueue, slpk = false) {
|
|
84001
83853
|
if (slpk) {
|
|
84002
83854
|
for (const [index, nodePage] of this.nodePages.entries()) {
|
|
84003
83855
|
const nodePageStr = JSON.stringify(nodePage);
|
|
84004
83856
|
const slpkPath = (0, import_path2.join)(layers0Path, "nodepages");
|
|
84005
|
-
|
|
83857
|
+
writeQueue.enqueue({
|
|
83858
|
+
archiveKey: `nodePages/${index.toString()}.json.gz`,
|
|
83859
|
+
writePromise: this.writeFile(slpkPath, nodePageStr, `${index.toString()}.json`)
|
|
83860
|
+
});
|
|
84006
83861
|
}
|
|
84007
83862
|
const metadata = (0, import_json_map_transform.default)({ nodeCount: this.nodesCounter }, METADATA());
|
|
84008
83863
|
const compress = false;
|
|
84009
|
-
|
|
83864
|
+
writeQueue.enqueue({
|
|
83865
|
+
archiveKey: "metadata.json",
|
|
83866
|
+
writePromise: this.writeFile(layers0Path, JSON.stringify(metadata), "metadata.json", compress)
|
|
83867
|
+
});
|
|
84010
83868
|
} else {
|
|
84011
83869
|
for (const [index, nodePage] of this.nodePages.entries()) {
|
|
84012
83870
|
const nodePageStr = JSON.stringify(nodePage);
|
|
84013
83871
|
const nodePagePath = (0, import_path2.join)(layers0Path, "nodepages", index.toString());
|
|
84014
|
-
|
|
83872
|
+
writeQueue.enqueue({ writePromise: this.writeFile(nodePagePath, nodePageStr) });
|
|
84015
83873
|
}
|
|
84016
83874
|
}
|
|
84017
83875
|
}
|
|
84018
83876
|
};
|
|
84019
83877
|
|
|
84020
|
-
// src/lib/utils/file-utils.
|
|
83878
|
+
// src/lib/utils/file-utils.ts
|
|
84021
83879
|
var import_fs3 = __toModule(require("fs"));
|
|
84022
83880
|
var import_path4 = __toModule(require("path"));
|
|
84023
83881
|
|
|
84024
|
-
// src/lib/utils/compress-util.
|
|
83882
|
+
// src/lib/utils/compress-util.ts
|
|
84025
83883
|
var import_zlib = __toModule(require("zlib"));
|
|
84026
83884
|
var import_path3 = __toModule(require("path"));
|
|
84027
83885
|
var import_fs2 = __toModule(require("fs"));
|
|
@@ -84045,11 +83903,11 @@ function compressFileWithGzip(pathFile) {
|
|
|
84045
83903
|
input.pipe(gzip).pipe(output);
|
|
84046
83904
|
});
|
|
84047
83905
|
}
|
|
84048
|
-
async function compressWithChildProcess() {
|
|
83906
|
+
async function compressWithChildProcess(inputFolder, outputFile, level, inputFiles, sevenZipExe) {
|
|
84049
83907
|
if (process.platform === "win32") {
|
|
84050
|
-
await compressWithChildProcessWindows(
|
|
83908
|
+
await compressWithChildProcessWindows(inputFolder, outputFile, level, inputFiles, sevenZipExe);
|
|
84051
83909
|
} else {
|
|
84052
|
-
await compressWithChildProcessUnix(
|
|
83910
|
+
await compressWithChildProcessUnix(inputFolder, outputFile, level, inputFiles);
|
|
84053
83911
|
}
|
|
84054
83912
|
}
|
|
84055
83913
|
async function compressWithChildProcessUnix(inputFolder, outputFile, level = 0, inputFiles = ".") {
|
|
@@ -84082,12 +83940,20 @@ async function compressWithChildProcessWindows(inputFolder, outputFile, level =
|
|
|
84082
83940
|
});
|
|
84083
83941
|
}
|
|
84084
83942
|
|
|
84085
|
-
// src/lib/utils/file-utils.
|
|
83943
|
+
// src/lib/utils/file-utils.ts
|
|
84086
83944
|
async function writeFile3(path2, data, fileName = "index.json") {
|
|
83945
|
+
let toWriteData;
|
|
83946
|
+
if (data instanceof Promise) {
|
|
83947
|
+
toWriteData = new Uint8Array(await data);
|
|
83948
|
+
} else if (data instanceof ArrayBuffer) {
|
|
83949
|
+
toWriteData = new Uint8Array(data);
|
|
83950
|
+
} else {
|
|
83951
|
+
toWriteData = data;
|
|
83952
|
+
}
|
|
84087
83953
|
await import_fs3.promises.mkdir(path2, { recursive: true });
|
|
84088
83954
|
const pathFile = (0, import_path4.join)(path2, fileName);
|
|
84089
83955
|
try {
|
|
84090
|
-
await import_fs3.promises.writeFile(pathFile,
|
|
83956
|
+
await import_fs3.promises.writeFile(pathFile, toWriteData);
|
|
84091
83957
|
} catch (err) {
|
|
84092
83958
|
throw err;
|
|
84093
83959
|
}
|
|
@@ -84113,7 +83979,7 @@ function getAbsoluteFilePath(filePath) {
|
|
|
84113
83979
|
return (0, import_path4.isAbsolute)(filePath) ? filePath : (0, import_path4.join)(process.cwd(), filePath);
|
|
84114
83980
|
}
|
|
84115
83981
|
|
|
84116
|
-
// src/lib/utils/statistic-utills.
|
|
83982
|
+
// src/lib/utils/statistic-utills.ts
|
|
84117
83983
|
var import_path5 = __toModule(require("path"));
|
|
84118
83984
|
var import_fs4 = __toModule(require("fs"));
|
|
84119
83985
|
function timeConverter(time) {
|
|
@@ -84171,16 +84037,17 @@ async function getTotalFilesSize(dirPath) {
|
|
|
84171
84037
|
return totalFileSize;
|
|
84172
84038
|
}
|
|
84173
84039
|
|
|
84174
|
-
// src/i3s-converter/helpers/geometry-converter.
|
|
84040
|
+
// src/i3s-converter/helpers/geometry-converter.ts
|
|
84175
84041
|
var import_core21 = __toModule(require_es56());
|
|
84176
|
-
var
|
|
84042
|
+
var import_geospatial9 = __toModule(require_es57());
|
|
84177
84043
|
var import_md5 = __toModule(require_md52());
|
|
84178
84044
|
|
|
84179
84045
|
// src/i3s-converter/helpers/geometry-attributes.ts
|
|
84180
84046
|
var VALUES_PER_VERTEX = 3;
|
|
84181
84047
|
var POSITIONS_AND_NORMALS_PER_TRIANGLE = 9;
|
|
84182
84048
|
function generateAttributes(attributes) {
|
|
84183
|
-
const { positions, normals, texCoords, colors, featureIndices
|
|
84049
|
+
const { positions, normals, texCoords, colors, featureIndices } = attributes;
|
|
84050
|
+
const triangleCount = positions.length / POSITIONS_AND_NORMALS_PER_TRIANGLE;
|
|
84184
84051
|
if (!featureIndices.length) {
|
|
84185
84052
|
return {
|
|
84186
84053
|
faceRange: new Uint32Array([0, triangleCount - 1]),
|
|
@@ -84325,14 +84192,14 @@ function groupAttributesAndRangesByFeatureId(unifiedObjects, featureCount) {
|
|
|
84325
84192
|
|
|
84326
84193
|
// src/i3s-converter/helpers/coordinate-converter.ts
|
|
84327
84194
|
var import_core20 = __toModule(require_es56());
|
|
84328
|
-
var
|
|
84195
|
+
var import_geospatial8 = __toModule(require_es57());
|
|
84329
84196
|
var import_culling5 = __toModule(require_es58());
|
|
84330
84197
|
function createBoundingVolumes(tile, geoidHeightModel) {
|
|
84331
84198
|
let radius;
|
|
84332
84199
|
let halfSize;
|
|
84333
84200
|
let quaternion;
|
|
84334
84201
|
const boundingVolume = tile.boundingVolume;
|
|
84335
|
-
const cartographicCenter =
|
|
84202
|
+
const cartographicCenter = import_geospatial8.Ellipsoid.WGS84.cartesianToCartographic(boundingVolume.center, new import_core20.Vector3());
|
|
84336
84203
|
cartographicCenter[2] = cartographicCenter[2] - geoidHeightModel.getHeight(cartographicCenter[1], cartographicCenter[0]);
|
|
84337
84204
|
if (boundingVolume instanceof import_culling5.OrientedBoundingBox) {
|
|
84338
84205
|
halfSize = boundingVolume.halfSize;
|
|
@@ -84356,8 +84223,8 @@ function createBoundingVolumesFromGeometry(cartesianPositions, geoidHeightModel)
|
|
|
84356
84223
|
const positionVectors = convertPositionsToVectors(cartesianPositions);
|
|
84357
84224
|
const geometryObb = (0, import_culling5.makeOrientedBoundingBoxFromPoints)(positionVectors);
|
|
84358
84225
|
const geometryMbs = (0, import_culling5.makeBoundingSphereFromPoints)(positionVectors);
|
|
84359
|
-
let mbsCenter =
|
|
84360
|
-
let obbCenter =
|
|
84226
|
+
let mbsCenter = import_geospatial8.Ellipsoid.WGS84.cartesianToCartographic(geometryMbs.center, new import_core20.Vector3());
|
|
84227
|
+
let obbCenter = import_geospatial8.Ellipsoid.WGS84.cartesianToCartographic(geometryObb.center, new import_core20.Vector3());
|
|
84361
84228
|
mbsCenter[2] = mbsCenter[2] - geoidHeightModel.getHeight(mbsCenter[1], mbsCenter[0]);
|
|
84362
84229
|
obbCenter[2] = obbCenter[2] - geoidHeightModel.getHeight(obbCenter[1], obbCenter[0]);
|
|
84363
84230
|
return {
|
|
@@ -84377,22 +84244,25 @@ function convertPositionsToVectors(positions) {
|
|
|
84377
84244
|
}
|
|
84378
84245
|
return result;
|
|
84379
84246
|
}
|
|
84380
|
-
function
|
|
84381
|
-
|
|
84382
|
-
if (
|
|
84383
|
-
|
|
84247
|
+
function convertBoundingVolumeToI3SFullExtent(boundingVolume) {
|
|
84248
|
+
let sphere;
|
|
84249
|
+
if (boundingVolume instanceof import_culling5.BoundingSphere) {
|
|
84250
|
+
sphere = boundingVolume;
|
|
84251
|
+
} else {
|
|
84252
|
+
sphere = boundingVolume.getBoundingSphere();
|
|
84384
84253
|
}
|
|
84385
|
-
const
|
|
84386
|
-
const
|
|
84387
|
-
const
|
|
84388
|
-
const
|
|
84389
|
-
|
|
84390
|
-
|
|
84391
|
-
|
|
84392
|
-
|
|
84393
|
-
|
|
84394
|
-
|
|
84395
|
-
|
|
84254
|
+
const center = sphere.center;
|
|
84255
|
+
const radius = sphere.radius;
|
|
84256
|
+
const vertexMax = import_geospatial8.Ellipsoid.WGS84.cartesianToCartographic(new import_core20.Vector3(center[0] + radius, center[1] + radius, center[2] + radius), new import_core20.Vector3());
|
|
84257
|
+
const vertexMin = import_geospatial8.Ellipsoid.WGS84.cartesianToCartographic(new import_core20.Vector3(center[0] - radius, center[1] - radius, center[2] - radius), new import_core20.Vector3());
|
|
84258
|
+
return {
|
|
84259
|
+
xmin: vertexMin[0],
|
|
84260
|
+
xmax: vertexMax[0],
|
|
84261
|
+
ymin: vertexMin[1],
|
|
84262
|
+
ymax: vertexMax[1],
|
|
84263
|
+
zmin: vertexMin[2],
|
|
84264
|
+
zmax: vertexMax[2]
|
|
84265
|
+
};
|
|
84396
84266
|
}
|
|
84397
84267
|
function createObbFromMbs(mbs) {
|
|
84398
84268
|
const radius = mbs[3];
|
|
@@ -84401,7 +84271,49 @@ function createObbFromMbs(mbs) {
|
|
|
84401
84271
|
return new import_culling5.OrientedBoundingBox(center, halfAxex);
|
|
84402
84272
|
}
|
|
84403
84273
|
|
|
84404
|
-
// src/i3s-converter/helpers/
|
|
84274
|
+
// src/i3s-converter/helpers/gltf-attributes.ts
|
|
84275
|
+
function getB3DMAttributesWithoutBufferView(attributes) {
|
|
84276
|
+
const attributesWithoutBufferView = {};
|
|
84277
|
+
for (const attributeName in attributes) {
|
|
84278
|
+
attributesWithoutBufferView[attributeName] = {
|
|
84279
|
+
value: attributes[attributeName].value
|
|
84280
|
+
};
|
|
84281
|
+
}
|
|
84282
|
+
return attributesWithoutBufferView;
|
|
84283
|
+
}
|
|
84284
|
+
function prepareDataForAttributesConversion(tileContent) {
|
|
84285
|
+
const gltfMaterials = tileContent.gltf?.materials?.map((material) => ({ id: material.id }));
|
|
84286
|
+
let nodes = tileContent.gltf?.scene?.nodes || tileContent.gltf?.scenes?.[0]?.nodes || tileContent.gltf?.nodes || [];
|
|
84287
|
+
const prepearedNodes = nodes.map((node2) => {
|
|
84288
|
+
if (!node2.mesh) {
|
|
84289
|
+
return node2;
|
|
84290
|
+
}
|
|
84291
|
+
return {
|
|
84292
|
+
...node2,
|
|
84293
|
+
mesh: {
|
|
84294
|
+
...node2.mesh,
|
|
84295
|
+
primitives: node2.mesh?.primitives.map((primitive) => ({
|
|
84296
|
+
...primitive,
|
|
84297
|
+
indices: { value: primitive?.indices?.value },
|
|
84298
|
+
attributes: getB3DMAttributesWithoutBufferView(primitive.attributes),
|
|
84299
|
+
material: {
|
|
84300
|
+
id: primitive?.material?.id
|
|
84301
|
+
}
|
|
84302
|
+
}))
|
|
84303
|
+
}
|
|
84304
|
+
};
|
|
84305
|
+
});
|
|
84306
|
+
const cartographicOrigin = tileContent.cartographicOrigin;
|
|
84307
|
+
const cartesianModelMatrix = tileContent.cartesianModelMatrix;
|
|
84308
|
+
return {
|
|
84309
|
+
gltfMaterials,
|
|
84310
|
+
nodes: prepearedNodes,
|
|
84311
|
+
cartographicOrigin,
|
|
84312
|
+
cartesianModelMatrix
|
|
84313
|
+
};
|
|
84314
|
+
}
|
|
84315
|
+
|
|
84316
|
+
// src/i3s-converter/helpers/geometry-converter.ts
|
|
84405
84317
|
var DEFAULT_ROUGHNESS_FACTOR = 1;
|
|
84406
84318
|
var DEFAULT_METALLIC_FACTOR = 1;
|
|
84407
84319
|
var VALUES_PER_VERTEX2 = 3;
|
|
@@ -84413,10 +84325,11 @@ var DOUBLE_TYPE = "Float64";
|
|
|
84413
84325
|
var OBJECT_ID_TYPE = "Oid32";
|
|
84414
84326
|
var BATCHED_ID_POSSIBLE_ATTRIBUTE_NAMES = ["CUSTOM_ATTRIBUTE_2", "_BATCHID", "BATCHID"];
|
|
84415
84327
|
var scratchVector4 = new import_core21.Vector3();
|
|
84416
|
-
async function convertB3dmToI3sGeometry(tileContent, nodeId, featuresHashArray, attributeStorageInfo, draco, generateBoundingVolumes, geoidHeightModel) {
|
|
84328
|
+
async function convertB3dmToI3sGeometry(tileContent, nodeId, featuresHashArray, attributeStorageInfo, draco, generateBoundingVolumes, geoidHeightModel, workerSource) {
|
|
84417
84329
|
const useCartesianPositions = generateBoundingVolumes;
|
|
84418
|
-
const materialAndTextureList = convertMaterials(tileContent);
|
|
84419
|
-
const
|
|
84330
|
+
const materialAndTextureList = convertMaterials(tileContent.gltf?.materials);
|
|
84331
|
+
const dataForAttributesConversion = prepareDataForAttributesConversion(tileContent);
|
|
84332
|
+
const convertedAttributesMap = await convertAttributes(dataForAttributesConversion, useCartesianPositions);
|
|
84420
84333
|
if (generateBoundingVolumes) {
|
|
84421
84334
|
_generateBoundingVolumesFromGeometry(convertedAttributesMap, geoidHeightModel);
|
|
84422
84335
|
}
|
|
@@ -84427,7 +84340,7 @@ async function convertB3dmToI3sGeometry(tileContent, nodeId, featuresHashArray,
|
|
|
84427
84340
|
}
|
|
84428
84341
|
const result = [];
|
|
84429
84342
|
let nodesCounter = nodeId;
|
|
84430
|
-
let { materials = [] } = tileContent.gltf;
|
|
84343
|
+
let { materials = [] } = tileContent.gltf || { materials: [] };
|
|
84431
84344
|
if (!materials?.length) {
|
|
84432
84345
|
materials.push({ id: "default" });
|
|
84433
84346
|
}
|
|
@@ -84437,6 +84350,9 @@ async function convertB3dmToI3sGeometry(tileContent, nodeId, featuresHashArray,
|
|
|
84437
84350
|
continue;
|
|
84438
84351
|
}
|
|
84439
84352
|
const convertedAttributes = convertedAttributesMap.get(sourceMaterial.id);
|
|
84353
|
+
if (!convertedAttributes) {
|
|
84354
|
+
continue;
|
|
84355
|
+
}
|
|
84440
84356
|
const { material, texture } = materialAndTextureList[i];
|
|
84441
84357
|
result.push(await _makeNodeResources({
|
|
84442
84358
|
convertedAttributes,
|
|
@@ -84446,7 +84362,8 @@ async function convertB3dmToI3sGeometry(tileContent, nodeId, featuresHashArray,
|
|
|
84446
84362
|
nodeId: nodesCounter,
|
|
84447
84363
|
featuresHashArray,
|
|
84448
84364
|
attributeStorageInfo,
|
|
84449
|
-
draco
|
|
84365
|
+
draco,
|
|
84366
|
+
workerSource
|
|
84450
84367
|
}));
|
|
84451
84368
|
nodesCounter++;
|
|
84452
84369
|
}
|
|
@@ -84462,7 +84379,7 @@ function _generateBoundingVolumesFromGeometry(convertedAttributesMap, geoidHeigh
|
|
|
84462
84379
|
const cartographicOrigin = boundingVolumes.obb.center;
|
|
84463
84380
|
for (let index = 0; index < attributes.positions.length; index += VALUES_PER_VERTEX2) {
|
|
84464
84381
|
const vertex = attributes.positions.subarray(index, index + VALUES_PER_VERTEX2);
|
|
84465
|
-
|
|
84382
|
+
import_geospatial9.Ellipsoid.WGS84.cartesianToCartographic(Array.from(vertex), scratchVector4);
|
|
84466
84383
|
scratchVector4[2] = scratchVector4[2] - geoidHeightModel.getHeight(scratchVector4[1], scratchVector4[0]);
|
|
84467
84384
|
scratchVector4 = scratchVector4.subtract(cartographicOrigin);
|
|
84468
84385
|
attributes.positions.set(scratchVector4, index);
|
|
@@ -84477,12 +84394,12 @@ async function _makeNodeResources({
|
|
|
84477
84394
|
nodeId,
|
|
84478
84395
|
featuresHashArray,
|
|
84479
84396
|
attributeStorageInfo,
|
|
84480
|
-
draco
|
|
84397
|
+
draco,
|
|
84398
|
+
workerSource
|
|
84481
84399
|
}) {
|
|
84482
84400
|
const boundingVolumes = convertedAttributes.boundingVolumes;
|
|
84483
84401
|
const vertexCount = convertedAttributes.positions.length / VALUES_PER_VERTEX2;
|
|
84484
|
-
const
|
|
84485
|
-
const { faceRange, featureIds, positions, normals, colors, texCoords, featureCount } = generateAttributes({ triangleCount, ...convertedAttributes });
|
|
84402
|
+
const { faceRange, featureIds, positions, normals, colors, texCoords, featureCount } = generateAttributes(convertedAttributes);
|
|
84486
84403
|
if (tileContent.batchTableJson) {
|
|
84487
84404
|
makeFeatureIdsUnique(featureIds, convertedAttributes.featureIndices, featuresHashArray, tileContent.batchTableJson);
|
|
84488
84405
|
}
|
|
@@ -84490,20 +84407,20 @@ async function _makeNodeResources({
|
|
|
84490
84407
|
const typedFeatureIds = generateBigUint64Array(featureIds);
|
|
84491
84408
|
header.set([vertexCount, featureCount], 0);
|
|
84492
84409
|
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 ?
|
|
84410
|
+
const compressedGeometry = draco ? generateCompressedGeometry(vertexCount, convertedAttributes, {
|
|
84494
84411
|
positions,
|
|
84495
84412
|
normals,
|
|
84496
84413
|
texCoords: texture ? texCoords : new Float32Array(0),
|
|
84497
84414
|
colors,
|
|
84498
84415
|
featureIds,
|
|
84499
84416
|
faceRange
|
|
84500
|
-
}) : null;
|
|
84417
|
+
}, workerSource.draco) : null;
|
|
84501
84418
|
const attributes = convertBatchTableToAttributeBuffers(tileContent.batchTableJson, featureIds, attributeStorageInfo);
|
|
84502
84419
|
return {
|
|
84503
84420
|
geometry: fileBuffer,
|
|
84504
84421
|
compressedGeometry,
|
|
84505
84422
|
texture,
|
|
84506
|
-
sharedResources: getSharedResources(tileContent, nodeId),
|
|
84423
|
+
sharedResources: getSharedResources(tileContent.gltf?.materials || [], nodeId),
|
|
84507
84424
|
meshMaterial: material,
|
|
84508
84425
|
vertexCount,
|
|
84509
84426
|
attributes,
|
|
@@ -84511,34 +84428,41 @@ async function _makeNodeResources({
|
|
|
84511
84428
|
boundingVolumes
|
|
84512
84429
|
};
|
|
84513
84430
|
}
|
|
84514
|
-
function convertAttributes(
|
|
84431
|
+
async function convertAttributes(attributesData, useCartesianPositions) {
|
|
84432
|
+
const { gltfMaterials, nodes, cartographicOrigin, cartesianModelMatrix } = attributesData;
|
|
84515
84433
|
const attributesMap = new Map();
|
|
84516
|
-
for (const material of
|
|
84434
|
+
for (const material of gltfMaterials || [{ id: "default" }]) {
|
|
84517
84435
|
attributesMap.set(material.id, {
|
|
84518
84436
|
positions: new Float32Array(0),
|
|
84519
84437
|
normals: new Float32Array(0),
|
|
84520
84438
|
texCoords: new Float32Array(0),
|
|
84521
84439
|
colors: new Uint8Array(0),
|
|
84440
|
+
featureIndicesGroups: [],
|
|
84522
84441
|
featureIndices: [],
|
|
84523
84442
|
boundingVolumes: null
|
|
84524
84443
|
});
|
|
84525
84444
|
}
|
|
84526
|
-
|
|
84527
|
-
convertNodes(nodes, tileContent, attributesMap, useCartesianPositions);
|
|
84445
|
+
convertNodes(nodes, cartographicOrigin, cartesianModelMatrix, attributesMap, useCartesianPositions);
|
|
84528
84446
|
for (const attrKey of attributesMap.keys()) {
|
|
84529
84447
|
const attributes = attributesMap.get(attrKey);
|
|
84448
|
+
if (!attributes) {
|
|
84449
|
+
continue;
|
|
84450
|
+
}
|
|
84530
84451
|
if (attributes.positions.length === 0) {
|
|
84531
84452
|
attributesMap.delete(attrKey);
|
|
84532
84453
|
continue;
|
|
84533
84454
|
}
|
|
84534
|
-
|
|
84455
|
+
if (attributes.featureIndicesGroups) {
|
|
84456
|
+
attributes.featureIndices = attributes.featureIndicesGroups.reduce((acc, value) => acc.concat(value));
|
|
84457
|
+
delete attributes.featureIndicesGroups;
|
|
84458
|
+
}
|
|
84535
84459
|
}
|
|
84536
84460
|
return attributesMap;
|
|
84537
84461
|
}
|
|
84538
|
-
function convertNodes(nodes,
|
|
84462
|
+
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
84463
|
if (nodes) {
|
|
84540
84464
|
for (const node2 of nodes) {
|
|
84541
|
-
convertNode(node2,
|
|
84465
|
+
convertNode(node2, cartographicOrigin, cartesianModelMatrix, attributesMap, useCartesianPositions, matrix);
|
|
84542
84466
|
}
|
|
84543
84467
|
}
|
|
84544
84468
|
}
|
|
@@ -84548,26 +84472,26 @@ function getCompositeTransformationMatrix(node2, matrix) {
|
|
|
84548
84472
|
if (nodeMatrix) {
|
|
84549
84473
|
transformationMatrix = matrix.multiplyRight(nodeMatrix);
|
|
84550
84474
|
}
|
|
84475
|
+
if (translation) {
|
|
84476
|
+
transformationMatrix = transformationMatrix.translate(translation);
|
|
84477
|
+
}
|
|
84551
84478
|
if (rotation) {
|
|
84552
84479
|
transformationMatrix = transformationMatrix.rotateXYZ(rotation);
|
|
84553
84480
|
}
|
|
84554
84481
|
if (scale) {
|
|
84555
84482
|
transformationMatrix = transformationMatrix.scale(scale);
|
|
84556
84483
|
}
|
|
84557
|
-
if (translation) {
|
|
84558
|
-
transformationMatrix = transformationMatrix.translate(translation);
|
|
84559
|
-
}
|
|
84560
84484
|
return transformationMatrix;
|
|
84561
84485
|
}
|
|
84562
|
-
function convertNode(node2,
|
|
84486
|
+
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
84487
|
const transformationMatrix = getCompositeTransformationMatrix(node2, matrix);
|
|
84564
84488
|
const mesh = node2.mesh;
|
|
84565
84489
|
if (mesh) {
|
|
84566
|
-
convertMesh(mesh,
|
|
84490
|
+
convertMesh(mesh, cartographicOrigin, cartesianModelMatrix, attributesMap, useCartesianPositions, transformationMatrix);
|
|
84567
84491
|
}
|
|
84568
|
-
convertNodes(node2.children,
|
|
84492
|
+
convertNodes(node2.children || [], cartographicOrigin, cartesianModelMatrix, attributesMap, useCartesianPositions, transformationMatrix);
|
|
84569
84493
|
}
|
|
84570
|
-
function convertMesh(mesh,
|
|
84494
|
+
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
84495
|
for (const primitive of mesh.primitives) {
|
|
84572
84496
|
let outputAttributes = null;
|
|
84573
84497
|
if (primitive.material) {
|
|
@@ -84577,27 +84501,31 @@ function convertMesh(mesh, content, attributesMap, useCartesianPositions = false
|
|
|
84577
84501
|
}
|
|
84578
84502
|
assert2(outputAttributes !== null, "Primitive - material mapping failed");
|
|
84579
84503
|
const attributes = primitive.attributes;
|
|
84504
|
+
if (!outputAttributes) {
|
|
84505
|
+
continue;
|
|
84506
|
+
}
|
|
84580
84507
|
outputAttributes.positions = concatenateTypedArrays(outputAttributes.positions, transformVertexArray({
|
|
84581
84508
|
vertices: attributes.POSITION.value,
|
|
84582
|
-
cartographicOrigin
|
|
84583
|
-
cartesianModelMatrix
|
|
84509
|
+
cartographicOrigin,
|
|
84510
|
+
cartesianModelMatrix,
|
|
84584
84511
|
nodeMatrix: matrix,
|
|
84585
|
-
indices: primitive.indices
|
|
84512
|
+
indices: primitive.indices?.value,
|
|
84586
84513
|
attributeSpecificTransformation: transformVertexPositions,
|
|
84587
84514
|
useCartesianPositions
|
|
84588
84515
|
}));
|
|
84589
84516
|
outputAttributes.normals = concatenateTypedArrays(outputAttributes.normals, transformVertexArray({
|
|
84590
84517
|
vertices: attributes.NORMAL && attributes.NORMAL.value,
|
|
84591
|
-
cartographicOrigin
|
|
84592
|
-
cartesianModelMatrix
|
|
84518
|
+
cartographicOrigin,
|
|
84519
|
+
cartesianModelMatrix,
|
|
84593
84520
|
nodeMatrix: matrix,
|
|
84594
|
-
indices: primitive.indices
|
|
84521
|
+
indices: primitive.indices?.value,
|
|
84595
84522
|
attributeSpecificTransformation: transformVertexNormals,
|
|
84596
84523
|
useCartesianPositions: false
|
|
84597
84524
|
}));
|
|
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.
|
|
84525
|
+
outputAttributes.texCoords = concatenateTypedArrays(outputAttributes.texCoords, flattenTexCoords(attributes.TEXCOORD_0 && attributes.TEXCOORD_0.value, primitive.indices?.value));
|
|
84526
|
+
outputAttributes.colors = concatenateTypedArrays(outputAttributes.colors, flattenColors(attributes.COLOR_0, primitive.indices?.value));
|
|
84527
|
+
outputAttributes.featureIndicesGroups = outputAttributes.featureIndicesGroups || [];
|
|
84528
|
+
outputAttributes.featureIndicesGroups.push(flattenBatchIds(getBatchIdsByAttributeName(attributes), primitive.indices?.value));
|
|
84601
84529
|
}
|
|
84602
84530
|
}
|
|
84603
84531
|
function transformVertexArray(args) {
|
|
@@ -84626,7 +84554,7 @@ function transformVertexPositions(vertexVector, calleeArgs) {
|
|
|
84626
84554
|
if (useCartesianPositions) {
|
|
84627
84555
|
return vertexVector;
|
|
84628
84556
|
}
|
|
84629
|
-
|
|
84557
|
+
import_geospatial9.Ellipsoid.WGS84.cartesianToCartographic([vertexVector[0], vertexVector[1], vertexVector[2]], vertexVector);
|
|
84630
84558
|
vertexVector = vertexVector.subtract(cartographicOrigin);
|
|
84631
84559
|
return vertexVector;
|
|
84632
84560
|
}
|
|
@@ -84693,9 +84621,8 @@ function getBatchIdsByAttributeName(attributes) {
|
|
|
84693
84621
|
}
|
|
84694
84622
|
return batchIds;
|
|
84695
84623
|
}
|
|
84696
|
-
function convertMaterials(
|
|
84624
|
+
function convertMaterials(sourceMaterials = []) {
|
|
84697
84625
|
const result = [];
|
|
84698
|
-
const sourceMaterials = tileContent.gltf.materials || [];
|
|
84699
84626
|
for (const sourceMaterial of sourceMaterials) {
|
|
84700
84627
|
result.push(convertMaterial(sourceMaterial));
|
|
84701
84628
|
}
|
|
@@ -84704,8 +84631,8 @@ function convertMaterials(tileContent) {
|
|
|
84704
84631
|
function convertMaterial(sourceMaterial) {
|
|
84705
84632
|
const material = {
|
|
84706
84633
|
doubleSided: sourceMaterial.doubleSided,
|
|
84707
|
-
emissiveFactor: sourceMaterial.emissiveFactor
|
|
84708
|
-
alphaMode: (sourceMaterial.alphaMode
|
|
84634
|
+
emissiveFactor: sourceMaterial.emissiveFactor?.map((c) => Math.round(c * 255)),
|
|
84635
|
+
alphaMode: convertAlphaMode(sourceMaterial.alphaMode),
|
|
84709
84636
|
pbrMetallicRoughness: {
|
|
84710
84637
|
roughnessFactor: sourceMaterial?.pbrMetallicRoughness?.roughnessFactor || DEFAULT_ROUGHNESS_FACTOR,
|
|
84711
84638
|
metallicFactor: sourceMaterial?.pbrMetallicRoughness?.metallicFactor || DEFAULT_METALLIC_FACTOR
|
|
@@ -84729,14 +84656,28 @@ function convertMaterial(sourceMaterial) {
|
|
|
84729
84656
|
}
|
|
84730
84657
|
return { material, texture };
|
|
84731
84658
|
}
|
|
84659
|
+
function convertAlphaMode(gltfAlphaMode) {
|
|
84660
|
+
switch (gltfAlphaMode) {
|
|
84661
|
+
case "OPAQUE":
|
|
84662
|
+
return "opaque";
|
|
84663
|
+
case "MASK":
|
|
84664
|
+
return "mask";
|
|
84665
|
+
case "BLEND":
|
|
84666
|
+
return "blend";
|
|
84667
|
+
default:
|
|
84668
|
+
return "opaque";
|
|
84669
|
+
}
|
|
84670
|
+
}
|
|
84732
84671
|
function getDefaultMaterial() {
|
|
84733
84672
|
return {
|
|
84734
84673
|
alphaMode: "opaque",
|
|
84735
|
-
pbrMetallicRoughness: {
|
|
84674
|
+
pbrMetallicRoughness: {
|
|
84675
|
+
metallicFactor: 1,
|
|
84676
|
+
roughnessFactor: 1
|
|
84677
|
+
}
|
|
84736
84678
|
};
|
|
84737
84679
|
}
|
|
84738
|
-
function getSharedResources(
|
|
84739
|
-
const gltfMaterials = tileContent.gltf.materials;
|
|
84680
|
+
function getSharedResources(gltfMaterials, nodeId) {
|
|
84740
84681
|
const i3sResources = {};
|
|
84741
84682
|
if (!gltfMaterials || !gltfMaterials.length) {
|
|
84742
84683
|
return i3sResources;
|
|
@@ -84765,7 +84706,7 @@ function convertGLTFMaterialToI3sSharedResources(gltfMaterial, nodeId) {
|
|
|
84765
84706
|
colorFactor[3] = colorFactor[3] || 1;
|
|
84766
84707
|
}
|
|
84767
84708
|
return {
|
|
84768
|
-
materialDefinitionInfo: extractSharedResourcesMaterialInfo(colorFactor, metallicFactor),
|
|
84709
|
+
materialDefinitionInfo: extractSharedResourcesMaterialInfo(colorFactor || [1, 1, 1, 1], metallicFactor),
|
|
84769
84710
|
textureDefinitionInfo
|
|
84770
84711
|
};
|
|
84771
84712
|
}
|
|
@@ -84780,24 +84721,27 @@ function extractSharedResourcesMaterialInfo(baseColorFactor, metallicFactor = 1)
|
|
|
84780
84721
|
dielectricSpecular[3] = 1;
|
|
84781
84722
|
const specular = dielectricSpecular.lerp(dielectricSpecular, baseColorVector, metallicFactor);
|
|
84782
84723
|
return {
|
|
84783
|
-
|
|
84784
|
-
|
|
84724
|
+
params: {
|
|
84725
|
+
diffuse: diffuse.toArray(),
|
|
84726
|
+
specular: specular.toArray(),
|
|
84727
|
+
renderMode: "solid"
|
|
84728
|
+
}
|
|
84785
84729
|
};
|
|
84786
84730
|
}
|
|
84787
84731
|
function extractSharedResourcesTextureInfo(texture, nodeId) {
|
|
84788
84732
|
return {
|
|
84789
|
-
encoding: [texture.source.mimeType],
|
|
84733
|
+
encoding: texture?.source?.mimeType ? [texture.source.mimeType] : void 0,
|
|
84790
84734
|
images: [
|
|
84791
84735
|
{
|
|
84792
84736
|
id: generateImageId(texture, nodeId),
|
|
84793
|
-
size: texture.source
|
|
84794
|
-
length: [texture.source
|
|
84737
|
+
size: texture.source?.image.width,
|
|
84738
|
+
length: [texture.source?.image.data.length]
|
|
84795
84739
|
}
|
|
84796
84740
|
]
|
|
84797
84741
|
};
|
|
84798
84742
|
}
|
|
84799
84743
|
function generateImageId(texture, nodeId) {
|
|
84800
|
-
const { width, height } = texture.source
|
|
84744
|
+
const { width, height } = texture.source?.image;
|
|
84801
84745
|
const levelCountOfTexture = 1;
|
|
84802
84746
|
const indexOfLevel = 0;
|
|
84803
84747
|
const indexOfTextureInStore = nodeId + 1;
|
|
@@ -84869,7 +84813,9 @@ function convertBatchTableToAttributeBuffers(batchTable, featureIds, attributeSt
|
|
|
84869
84813
|
default:
|
|
84870
84814
|
attributeBuffer = generateStringAttributeBuffer(batchTableWithFeatureIds[key]);
|
|
84871
84815
|
}
|
|
84872
|
-
|
|
84816
|
+
if (attributeBuffer) {
|
|
84817
|
+
attributeBuffers.push(attributeBuffer);
|
|
84818
|
+
}
|
|
84873
84819
|
}
|
|
84874
84820
|
}
|
|
84875
84821
|
return attributeBuffers;
|
|
@@ -84912,7 +84858,7 @@ function generateBigUint64Array(featureIds) {
|
|
|
84912
84858
|
}
|
|
84913
84859
|
return typedFeatureIds;
|
|
84914
84860
|
}
|
|
84915
|
-
async function generateCompressedGeometry(vertexCount, convertedAttributes, attributes) {
|
|
84861
|
+
async function generateCompressedGeometry(vertexCount, convertedAttributes, attributes, dracoWorkerSoure) {
|
|
84916
84862
|
const { positions, normals, texCoords, colors, featureIds, faceRange } = attributes;
|
|
84917
84863
|
const indices = new Uint32Array(vertexCount);
|
|
84918
84864
|
for (let index = 0; index < indices.length; index++) {
|
|
@@ -84935,12 +84881,16 @@ async function generateCompressedGeometry(vertexCount, convertedAttributes, attr
|
|
|
84935
84881
|
"i3s-feature-ids": new Int32Array(featureIds)
|
|
84936
84882
|
}
|
|
84937
84883
|
};
|
|
84938
|
-
return
|
|
84884
|
+
return encode({ attributes: compressedAttributes, indices }, DracoWriterWorker, {
|
|
84885
|
+
...DracoWriterWorker.options,
|
|
84886
|
+
source: dracoWorkerSoure,
|
|
84887
|
+
reuseWorkers: true,
|
|
84888
|
+
_nodeWorkers: true,
|
|
84939
84889
|
draco: {
|
|
84940
84890
|
method: "MESH_SEQUENTIAL_ENCODING",
|
|
84941
84891
|
attributesMetadata
|
|
84942
84892
|
}
|
|
84943
|
-
})
|
|
84893
|
+
});
|
|
84944
84894
|
}
|
|
84945
84895
|
function generateFeatureIndexAttribute(featureIndex, faceRange) {
|
|
84946
84896
|
const orderedFeatureIndices = new Uint32Array(featureIndex.length);
|
|
@@ -85000,7 +84950,7 @@ async function createSceneServerPath(layerName, layers0, rootPath) {
|
|
|
85000
84950
|
await writeFile3(nodePagePath, JSON.stringify(sceneServer));
|
|
85001
84951
|
}
|
|
85002
84952
|
|
|
85003
|
-
// src/lib/utils/lod-conversion-utils.
|
|
84953
|
+
// src/lib/utils/lod-conversion-utils.ts
|
|
85004
84954
|
var DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR = 16;
|
|
85005
84955
|
function convertGeometricErrorToScreenThreshold(tile, coordinates) {
|
|
85006
84956
|
const lodSelection = [];
|
|
@@ -85040,12 +84990,12 @@ function convertScreenThresholdToGeometricError(node2) {
|
|
|
85040
84990
|
|
|
85041
84991
|
// src/pgm-loader.ts
|
|
85042
84992
|
var import_geoid = __toModule(require_es59());
|
|
85043
|
-
var
|
|
84993
|
+
var VERSION10 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
85044
84994
|
var PGMLoader = {
|
|
85045
84995
|
name: "PGM - Netpbm grayscale image format",
|
|
85046
84996
|
id: "pgm",
|
|
85047
84997
|
module: "tile-converter",
|
|
85048
|
-
version:
|
|
84998
|
+
version: VERSION10,
|
|
85049
84999
|
mimeTypes: ["image/x-portable-graymap"],
|
|
85050
85000
|
parse: async (arrayBuffer, options) => (0, import_geoid.parsePGM)(new Uint8Array(arrayBuffer), options),
|
|
85051
85001
|
extensions: ["pgm"],
|
|
@@ -85267,6 +85217,26 @@ var NODE_PAGES = () => ({
|
|
|
85267
85217
|
default: "maxScreenThresholdSQ"
|
|
85268
85218
|
}
|
|
85269
85219
|
});
|
|
85220
|
+
var FULL_EXTENT = () => ({
|
|
85221
|
+
xmin: {
|
|
85222
|
+
path: "xmin"
|
|
85223
|
+
},
|
|
85224
|
+
ymin: {
|
|
85225
|
+
path: "ymin"
|
|
85226
|
+
},
|
|
85227
|
+
xmax: {
|
|
85228
|
+
path: "xmax"
|
|
85229
|
+
},
|
|
85230
|
+
ymax: {
|
|
85231
|
+
path: "ymax"
|
|
85232
|
+
},
|
|
85233
|
+
zmin: {
|
|
85234
|
+
path: "zmin"
|
|
85235
|
+
},
|
|
85236
|
+
zmax: {
|
|
85237
|
+
path: "zmax"
|
|
85238
|
+
}
|
|
85239
|
+
});
|
|
85270
85240
|
var LAYERS = () => ({
|
|
85271
85241
|
version: {
|
|
85272
85242
|
path: "version",
|
|
@@ -85299,6 +85269,10 @@ var LAYERS = () => ({
|
|
|
85299
85269
|
path: "store",
|
|
85300
85270
|
transform: (val) => (0, import_json_map_transform3.default)(val, STORE)
|
|
85301
85271
|
},
|
|
85272
|
+
fullExtent: {
|
|
85273
|
+
path: "fullExtent",
|
|
85274
|
+
transform: (val) => (0, import_json_map_transform3.default)(val, FULL_EXTENT())
|
|
85275
|
+
},
|
|
85302
85276
|
heightModelInfo: {
|
|
85303
85277
|
path: "heightModelInfo",
|
|
85304
85278
|
transform: (val) => (0, import_json_map_transform3.default)(val, HEIGHT_MODEL_INFO())
|
|
@@ -85559,7 +85533,7 @@ function transfromTextureDefinitions(textureDefinitionInfos, thisObject, origina
|
|
|
85559
85533
|
var import_culling6 = __toModule(require_es58());
|
|
85560
85534
|
var import_engine = __toModule(require_es515());
|
|
85561
85535
|
var import_core23 = __toModule(require_es56());
|
|
85562
|
-
var
|
|
85536
|
+
var import_geospatial10 = __toModule(require_es57());
|
|
85563
85537
|
function validateNodeBoundingVolumes(node2) {
|
|
85564
85538
|
if (!node2?.parentNode?.obb || !node2?.parentNode?.mbs) {
|
|
85565
85539
|
return [];
|
|
@@ -85600,7 +85574,7 @@ function getTileObbVertices(node2) {
|
|
|
85600
85574
|
const halfSize = node2.obb.halfSize;
|
|
85601
85575
|
const attributes = geometry.getAttributes();
|
|
85602
85576
|
const positions = new Float32Array(attributes.POSITION.value);
|
|
85603
|
-
const obbCenterCartesian =
|
|
85577
|
+
const obbCenterCartesian = import_geospatial10.Ellipsoid.WGS84.cartographicToCartesian(node2.obb.center);
|
|
85604
85578
|
let vertices = [];
|
|
85605
85579
|
for (let i = 0; i < positions.length; i += 3) {
|
|
85606
85580
|
const positionsVector = new import_core23.Vector3(positions[i] *= halfSize[0], positions[i + 1] *= halfSize[1], positions[i + 2] *= halfSize[2]);
|
|
@@ -85613,7 +85587,7 @@ function isAllVerticesInsideBoundingVolume(boundingVolume, positions) {
|
|
|
85613
85587
|
let isVerticesInsideObb = true;
|
|
85614
85588
|
for (let index = 0; index < positions.length / 3; index += 3) {
|
|
85615
85589
|
const point = [positions[index], positions[index + 1], positions[index + 2]];
|
|
85616
|
-
const cartographicPoint =
|
|
85590
|
+
const cartographicPoint = import_geospatial10.Ellipsoid.WGS84.cartesianToCartographic(point);
|
|
85617
85591
|
const distance = boundingVolume.distanceTo(cartographicPoint);
|
|
85618
85592
|
if (distance > 0) {
|
|
85619
85593
|
isVerticesInsideObb = false;
|
|
@@ -85623,8 +85597,99 @@ function isAllVerticesInsideBoundingVolume(boundingVolume, positions) {
|
|
|
85623
85597
|
return isVerticesInsideObb;
|
|
85624
85598
|
}
|
|
85625
85599
|
|
|
85600
|
+
// src/lib/utils/queue.ts
|
|
85601
|
+
var Queue = class extends Array {
|
|
85602
|
+
enqueue(val) {
|
|
85603
|
+
this.push(val);
|
|
85604
|
+
}
|
|
85605
|
+
dequeue() {
|
|
85606
|
+
return this.shift();
|
|
85607
|
+
}
|
|
85608
|
+
peek() {
|
|
85609
|
+
return this[0];
|
|
85610
|
+
}
|
|
85611
|
+
isEmpty() {
|
|
85612
|
+
return this.length === 0;
|
|
85613
|
+
}
|
|
85614
|
+
};
|
|
85615
|
+
|
|
85616
|
+
// src/lib/utils/write-queue.ts
|
|
85617
|
+
var WriteQueue = class extends Queue {
|
|
85618
|
+
constructor(listeningInterval = 2e3, writeConcurrency = 400) {
|
|
85619
|
+
super();
|
|
85620
|
+
this.writePromise = null;
|
|
85621
|
+
this.fileMap = {};
|
|
85622
|
+
this.listeningInterval = listeningInterval;
|
|
85623
|
+
this.writeConcurrency = writeConcurrency;
|
|
85624
|
+
}
|
|
85625
|
+
startListening() {
|
|
85626
|
+
this.intervalId = setInterval(this.startWrite.bind(this), this.listeningInterval);
|
|
85627
|
+
}
|
|
85628
|
+
stopListening() {
|
|
85629
|
+
if (this.intervalId) {
|
|
85630
|
+
clearInterval(this.intervalId);
|
|
85631
|
+
}
|
|
85632
|
+
}
|
|
85633
|
+
async startWrite() {
|
|
85634
|
+
if (this.writePromise) {
|
|
85635
|
+
await this.writePromise;
|
|
85636
|
+
this.writePromise = null;
|
|
85637
|
+
return;
|
|
85638
|
+
}
|
|
85639
|
+
this.writePromise = this.doWrite();
|
|
85640
|
+
await this.writePromise;
|
|
85641
|
+
this.writePromise = null;
|
|
85642
|
+
}
|
|
85643
|
+
async finalize() {
|
|
85644
|
+
this.stopListening();
|
|
85645
|
+
await this.startWrite();
|
|
85646
|
+
}
|
|
85647
|
+
async doWrite() {
|
|
85648
|
+
while (this.length) {
|
|
85649
|
+
const promises = [];
|
|
85650
|
+
const archiveKeys = [];
|
|
85651
|
+
for (let i = 0; i < this.writeConcurrency; i++) {
|
|
85652
|
+
const item = this.dequeue();
|
|
85653
|
+
if (!item) {
|
|
85654
|
+
break;
|
|
85655
|
+
}
|
|
85656
|
+
const { archiveKey, writePromise } = item;
|
|
85657
|
+
archiveKeys.push(archiveKey);
|
|
85658
|
+
promises.push(writePromise);
|
|
85659
|
+
}
|
|
85660
|
+
const writeResults = await Promise.all(promises);
|
|
85661
|
+
this.updateFileMap(archiveKeys, writeResults);
|
|
85662
|
+
}
|
|
85663
|
+
this.writePromise = null;
|
|
85664
|
+
}
|
|
85665
|
+
updateFileMap(archiveKeys, writeResults) {
|
|
85666
|
+
for (let i = 0; i < archiveKeys.length; i++) {
|
|
85667
|
+
const archiveKey = archiveKeys[i];
|
|
85668
|
+
if (!archiveKey) {
|
|
85669
|
+
continue;
|
|
85670
|
+
}
|
|
85671
|
+
this.fileMap[archiveKey] = writeResults[i];
|
|
85672
|
+
}
|
|
85673
|
+
}
|
|
85674
|
+
};
|
|
85675
|
+
|
|
85676
|
+
// src/i3s-attributes-worker.ts
|
|
85677
|
+
var VERSION11 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
85678
|
+
var I3SAttributesWorker = {
|
|
85679
|
+
id: "i3s-attributes",
|
|
85680
|
+
name: "I3S Attributes Worker",
|
|
85681
|
+
module: "tile-converter",
|
|
85682
|
+
version: VERSION11,
|
|
85683
|
+
options: {
|
|
85684
|
+
useCartesianPositions: false
|
|
85685
|
+
}
|
|
85686
|
+
};
|
|
85687
|
+
|
|
85688
|
+
// src/constants.ts
|
|
85689
|
+
var BROWSER_ERROR_MESSAGE = "Tile converter does not work in browser, only in node js environment";
|
|
85690
|
+
|
|
85626
85691
|
// src/i3s-converter/i3s-converter.ts
|
|
85627
|
-
var ION_DEFAULT_TOKEN = import_process.default.env
|
|
85692
|
+
var ION_DEFAULT_TOKEN = import_process.default.env?.IonToken || "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ";
|
|
85628
85693
|
var HARDCODED_NODES_PER_PAGE = 64;
|
|
85629
85694
|
var _3D_TILES = "3DTILES";
|
|
85630
85695
|
var _3D_OBJECT_LAYER_TYPE = "3DObject";
|
|
@@ -85642,8 +85707,9 @@ var I3SConverter = class {
|
|
|
85642
85707
|
this.sourceTileset = null;
|
|
85643
85708
|
this.geoidHeightModel = null;
|
|
85644
85709
|
this.Loader = Tiles3DLoader;
|
|
85710
|
+
this.workerSource = {};
|
|
85711
|
+
this.writeQueue = new WriteQueue();
|
|
85645
85712
|
this.nodePages = new NodePages(writeFile3, HARDCODED_NODES_PER_PAGE);
|
|
85646
|
-
this.fileMap = {};
|
|
85647
85713
|
this.options = {};
|
|
85648
85714
|
this.layers0Path = "";
|
|
85649
85715
|
this.materialMap = new Map();
|
|
@@ -85661,6 +85727,10 @@ var I3SConverter = class {
|
|
|
85661
85727
|
this.layersHasTexture = false;
|
|
85662
85728
|
}
|
|
85663
85729
|
async convert(options) {
|
|
85730
|
+
if (isBrowser) {
|
|
85731
|
+
console.log(BROWSER_ERROR_MESSAGE);
|
|
85732
|
+
return BROWSER_ERROR_MESSAGE;
|
|
85733
|
+
}
|
|
85664
85734
|
this.conversionStartTime = import_process.default.hrtime();
|
|
85665
85735
|
const {
|
|
85666
85736
|
tilesetName,
|
|
@@ -85681,23 +85751,33 @@ var I3SConverter = class {
|
|
|
85681
85751
|
this.Loader = inputUrl.indexOf(CESIUM_DATASET_PREFIX) !== -1 ? CesiumIonLoader : Tiles3DLoader;
|
|
85682
85752
|
this.generateTextures = Boolean(generateTextures);
|
|
85683
85753
|
this.generateBoundingVolumes = Boolean(generateBoundingVolumes);
|
|
85754
|
+
this.writeQueue = new WriteQueue();
|
|
85755
|
+
this.writeQueue.startListening();
|
|
85684
85756
|
console.log("Loading egm file...");
|
|
85685
85757
|
this.geoidHeightModel = await load(egmFilePath, PGMLoader);
|
|
85686
85758
|
console.log("Loading egm file completed!");
|
|
85687
85759
|
if (slpk) {
|
|
85688
85760
|
this.nodePages.useWriteFunction(writeFileForSlpk);
|
|
85689
85761
|
}
|
|
85690
|
-
|
|
85691
|
-
|
|
85692
|
-
|
|
85693
|
-
tilesetOptions
|
|
85762
|
+
await this.loadWorkers();
|
|
85763
|
+
try {
|
|
85764
|
+
const preloadOptions = await this._fetchPreloadOptions();
|
|
85765
|
+
const tilesetOptions = { loadOptions: { basis: { format: "rgba32" } } };
|
|
85766
|
+
if (preloadOptions.headers) {
|
|
85767
|
+
tilesetOptions.loadOptions.fetch = { headers: preloadOptions.headers };
|
|
85768
|
+
}
|
|
85769
|
+
Object.assign(tilesetOptions, preloadOptions);
|
|
85770
|
+
const sourceTilesetJson = await load(inputUrl, this.Loader, tilesetOptions.loadOptions);
|
|
85771
|
+
this.sourceTileset = new Tileset3D(sourceTilesetJson, tilesetOptions);
|
|
85772
|
+
await this._createAndSaveTileset(outputPath, tilesetName);
|
|
85773
|
+
await this._finishConversion({ slpk: Boolean(slpk), outputPath, tilesetName });
|
|
85774
|
+
return sourceTilesetJson;
|
|
85775
|
+
} catch (error) {
|
|
85776
|
+
throw error;
|
|
85777
|
+
} finally {
|
|
85778
|
+
const workerFarm = WorkerFarm.getWorkerFarm({});
|
|
85779
|
+
workerFarm.destroy();
|
|
85694
85780
|
}
|
|
85695
|
-
Object.assign(tilesetOptions, preloadOptions);
|
|
85696
|
-
const sourceTilesetJson = await load(inputUrl, this.Loader, tilesetOptions.loadOptions);
|
|
85697
|
-
this.sourceTileset = new Tileset3D(sourceTilesetJson, tilesetOptions);
|
|
85698
|
-
await this._createAndSaveTileset(outputPath, tilesetName);
|
|
85699
|
-
await this._finishConversion({ slpk: Boolean(slpk), outputPath, tilesetName });
|
|
85700
|
-
return sourceTilesetJson;
|
|
85701
85781
|
}
|
|
85702
85782
|
async _createAndSaveTileset(outputPath, tilesetName) {
|
|
85703
85783
|
const tilesetPath = (0, import_path7.join)(`${outputPath}`, `${tilesetName}`);
|
|
@@ -85727,11 +85807,13 @@ var I3SConverter = class {
|
|
|
85727
85807
|
await this._writeLayers0();
|
|
85728
85808
|
createSceneServerPath(tilesetName, this.layers0, tilesetPath);
|
|
85729
85809
|
await this._writeNodeIndexDocument(root0, "root", (0, import_path7.join)(this.layers0Path, "nodes", "root"));
|
|
85730
|
-
await this.nodePages.save(this.layers0Path, this.
|
|
85810
|
+
await this.nodePages.save(this.layers0Path, this.writeQueue, isCreateSlpk);
|
|
85811
|
+
await this.writeQueue.finalize();
|
|
85731
85812
|
await this._createSlpk(tilesetPath);
|
|
85732
85813
|
}
|
|
85733
85814
|
_formLayers0(tilesetName) {
|
|
85734
|
-
const
|
|
85815
|
+
const fullExtent = convertBoundingVolumeToI3SFullExtent(this.sourceTileset?.boundingVolume || this.sourceTileset?.root?.boundingVolume);
|
|
85816
|
+
const extent = [fullExtent.xmin, fullExtent.ymin, fullExtent.xmax, fullExtent.ymax];
|
|
85735
85817
|
const layers0data = {
|
|
85736
85818
|
version: `{${v4().toUpperCase()}}`,
|
|
85737
85819
|
id: 0,
|
|
@@ -85744,7 +85826,8 @@ var I3SConverter = class {
|
|
|
85744
85826
|
nodePages: {
|
|
85745
85827
|
nodesPerPage: HARDCODED_NODES_PER_PAGE
|
|
85746
85828
|
},
|
|
85747
|
-
compressGeometry: this.options.draco
|
|
85829
|
+
compressGeometry: this.options.draco,
|
|
85830
|
+
fullExtent
|
|
85748
85831
|
};
|
|
85749
85832
|
this.layers0 = (0, import_json_map_transform6.default)(layers0data, LAYERS());
|
|
85750
85833
|
}
|
|
@@ -85780,9 +85863,12 @@ var I3SConverter = class {
|
|
|
85780
85863
|
const [child] = await this._createNode(root0, sourceRootTile, parentId, 0);
|
|
85781
85864
|
const childPath = (0, import_path7.join)(this.layers0Path, "nodes", child.path);
|
|
85782
85865
|
if (this.options.slpk) {
|
|
85783
|
-
this.
|
|
85866
|
+
this.writeQueue.enqueue({
|
|
85867
|
+
archiveKey: "nodes/1/3dNodeIndexDocument.json.gz",
|
|
85868
|
+
writePromise: writeFileForSlpk(childPath, JSON.stringify(child), "3dNodeIndexDocument.json")
|
|
85869
|
+
});
|
|
85784
85870
|
} else {
|
|
85785
|
-
|
|
85871
|
+
this.writeQueue.enqueue({ writePromise: writeFile3(childPath, JSON.stringify(child)) });
|
|
85786
85872
|
}
|
|
85787
85873
|
} else {
|
|
85788
85874
|
await this._addChildrenWithNeighborsAndWriteFile({
|
|
@@ -85796,16 +85882,24 @@ var I3SConverter = class {
|
|
|
85796
85882
|
}
|
|
85797
85883
|
async _writeLayers0() {
|
|
85798
85884
|
if (this.options.slpk) {
|
|
85799
|
-
this.
|
|
85885
|
+
this.writeQueue.enqueue({
|
|
85886
|
+
archiveKey: "3dSceneLayer.json.gz",
|
|
85887
|
+
writePromise: writeFileForSlpk(this.layers0Path, JSON.stringify(this.layers0), "3dSceneLayer.json")
|
|
85888
|
+
});
|
|
85800
85889
|
} else {
|
|
85801
|
-
|
|
85890
|
+
this.writeQueue.enqueue({
|
|
85891
|
+
writePromise: writeFile3(this.layers0Path, JSON.stringify(this.layers0))
|
|
85892
|
+
});
|
|
85802
85893
|
}
|
|
85803
85894
|
}
|
|
85804
85895
|
async _writeNodeIndexDocument(root0, nodePath, rootPath) {
|
|
85805
85896
|
if (this.options.slpk) {
|
|
85806
|
-
this.
|
|
85897
|
+
this.writeQueue.enqueue({
|
|
85898
|
+
archiveKey: `nodes/${nodePath}/3dNodeIndexDocument.json.gz`,
|
|
85899
|
+
writePromise: writeFileForSlpk(rootPath, JSON.stringify(root0), "3dNodeIndexDocument.json")
|
|
85900
|
+
});
|
|
85807
85901
|
} else {
|
|
85808
|
-
|
|
85902
|
+
this.writeQueue.enqueue({ writePromise: writeFile3(rootPath, JSON.stringify(root0)) });
|
|
85809
85903
|
}
|
|
85810
85904
|
}
|
|
85811
85905
|
async _createSlpk(tilesetPath) {
|
|
@@ -85945,7 +86039,7 @@ var I3SConverter = class {
|
|
|
85945
86039
|
if (!this.isContentSupported(sourceTile)) {
|
|
85946
86040
|
return null;
|
|
85947
86041
|
}
|
|
85948
|
-
const resourcesData = await convertB3dmToI3sGeometry(sourceTile.content, Number(this.nodePages.nodesCounter), this.featuresHashArray, this.layers0?.attributeStorageInfo, this.options.draco, this.generateBoundingVolumes, this.geoidHeightModel);
|
|
86042
|
+
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
86043
|
return resourcesData;
|
|
85950
86044
|
}
|
|
85951
86045
|
_createNodeInNodePages(maxScreenThresholdSQ, boundingVolumes, sourceTile, parentId, resources) {
|
|
@@ -86042,31 +86136,47 @@ var I3SConverter = class {
|
|
|
86042
86136
|
async _writeGeometries(geometryBuffer, compressedGeometry, childPath, slpkChildPath) {
|
|
86043
86137
|
if (this.options.slpk) {
|
|
86044
86138
|
const slpkGeometryPath = (0, import_path7.join)(childPath, "geometries");
|
|
86045
|
-
this.
|
|
86139
|
+
this.writeQueue.enqueue({
|
|
86140
|
+
archiveKey: `${slpkChildPath}/geometries/0.bin.gz`,
|
|
86141
|
+
writePromise: writeFileForSlpk(slpkGeometryPath, geometryBuffer, "0.bin")
|
|
86142
|
+
});
|
|
86046
86143
|
} else {
|
|
86047
86144
|
const geometryPath = (0, import_path7.join)(childPath, "geometries/0/");
|
|
86048
|
-
|
|
86145
|
+
this.writeQueue.enqueue({
|
|
86146
|
+
writePromise: writeFile3(geometryPath, geometryBuffer, "index.bin")
|
|
86147
|
+
});
|
|
86049
86148
|
}
|
|
86050
86149
|
if (this.options.draco) {
|
|
86051
86150
|
if (this.options.slpk) {
|
|
86052
86151
|
const slpkCompressedGeometryPath = (0, import_path7.join)(childPath, "geometries");
|
|
86053
|
-
this.
|
|
86152
|
+
this.writeQueue.enqueue({
|
|
86153
|
+
archiveKey: `${slpkChildPath}/geometries/1.bin.gz`,
|
|
86154
|
+
writePromise: writeFileForSlpk(slpkCompressedGeometryPath, compressedGeometry, "1.bin")
|
|
86155
|
+
});
|
|
86054
86156
|
} else {
|
|
86055
86157
|
const compressedGeometryPath = (0, import_path7.join)(childPath, "geometries/1/");
|
|
86056
|
-
|
|
86158
|
+
this.writeQueue.enqueue({
|
|
86159
|
+
writePromise: writeFile3(compressedGeometryPath, compressedGeometry, "index.bin")
|
|
86160
|
+
});
|
|
86057
86161
|
}
|
|
86058
86162
|
}
|
|
86059
86163
|
}
|
|
86060
86164
|
async _writeShared(sharedResources, childPath, slpkChildPath, nodePath) {
|
|
86165
|
+
if (!sharedResources) {
|
|
86166
|
+
return;
|
|
86167
|
+
}
|
|
86061
86168
|
sharedResources.nodePath = nodePath;
|
|
86062
86169
|
const sharedData = (0, import_json_map_transform6.default)(sharedResources, SHARED_RESOURCES());
|
|
86063
86170
|
const sharedDataStr = JSON.stringify(sharedData);
|
|
86064
86171
|
if (this.options.slpk) {
|
|
86065
86172
|
const slpkSharedPath = (0, import_path7.join)(childPath, "shared");
|
|
86066
|
-
this.
|
|
86173
|
+
this.writeQueue.enqueue({
|
|
86174
|
+
archiveKey: `${slpkChildPath}/shared/sharedResource.json.gz`,
|
|
86175
|
+
writePromise: writeFileForSlpk(slpkSharedPath, sharedDataStr, "sharedResource.json")
|
|
86176
|
+
});
|
|
86067
86177
|
} else {
|
|
86068
86178
|
const sharedPath = (0, import_path7.join)(childPath, "shared/");
|
|
86069
|
-
|
|
86179
|
+
this.writeQueue.enqueue({ writePromise: writeFile3(sharedPath, sharedDataStr) });
|
|
86070
86180
|
}
|
|
86071
86181
|
}
|
|
86072
86182
|
async _writeTexture(texture, childPath, slpkChildPath) {
|
|
@@ -86081,7 +86191,12 @@ var I3SConverter = class {
|
|
|
86081
86191
|
await this.writeTextureFile(textureData, "0", format, childPath, slpkChildPath);
|
|
86082
86192
|
if (this.generateTextures) {
|
|
86083
86193
|
formats2.push({ name: "1", format: "ktx2" });
|
|
86084
|
-
const ktx2TextureData =
|
|
86194
|
+
const ktx2TextureData = encode(texture.image, KTX2BasisWriterWorker, {
|
|
86195
|
+
...KTX2BasisWriterWorker.options,
|
|
86196
|
+
source: this.workerSource.ktx2,
|
|
86197
|
+
reuseWorkers: true,
|
|
86198
|
+
_nodeWorkers: true
|
|
86199
|
+
});
|
|
86085
86200
|
await this.writeTextureFile(ktx2TextureData, "1", "ktx2", childPath, slpkChildPath);
|
|
86086
86201
|
}
|
|
86087
86202
|
break;
|
|
@@ -86091,7 +86206,7 @@ var I3SConverter = class {
|
|
|
86091
86206
|
await this.writeTextureFile(textureData, "1", format, childPath, slpkChildPath);
|
|
86092
86207
|
if (this.generateTextures) {
|
|
86093
86208
|
formats2.push({ name: "0", format: "jpg" });
|
|
86094
|
-
const decodedFromKTX2TextureData =
|
|
86209
|
+
const decodedFromKTX2TextureData = encode(texture.image.data[0], ImageWriter);
|
|
86095
86210
|
await this.writeTextureFile(decodedFromKTX2TextureData, "0", "jpg", childPath, slpkChildPath);
|
|
86096
86211
|
}
|
|
86097
86212
|
}
|
|
@@ -86105,23 +86220,33 @@ var I3SConverter = class {
|
|
|
86105
86220
|
if (this.options.slpk) {
|
|
86106
86221
|
const slpkTexturePath = (0, import_path7.join)(childPath, "textures");
|
|
86107
86222
|
const compress = false;
|
|
86108
|
-
this.
|
|
86223
|
+
this.writeQueue.enqueue({
|
|
86224
|
+
archiveKey: `${slpkChildPath}/textures/${name8}.${format}`,
|
|
86225
|
+
writePromise: writeFileForSlpk(slpkTexturePath, textureData, `${name8}.${format}`, compress)
|
|
86226
|
+
});
|
|
86109
86227
|
} else {
|
|
86110
86228
|
const texturePath = (0, import_path7.join)(childPath, `textures/${name8}/`);
|
|
86111
|
-
|
|
86229
|
+
this.writeQueue.enqueue({
|
|
86230
|
+
writePromise: writeFile3(texturePath, textureData, `index.${format}`)
|
|
86231
|
+
});
|
|
86112
86232
|
}
|
|
86113
86233
|
}
|
|
86114
|
-
async _writeAttributes(attributes, childPath, slpkChildPath) {
|
|
86115
|
-
if (attributes
|
|
86234
|
+
async _writeAttributes(attributes = [], childPath, slpkChildPath) {
|
|
86235
|
+
if (attributes?.length && this.layers0?.attributeStorageInfo?.length) {
|
|
86116
86236
|
for (let index = 0; index < attributes.length; index++) {
|
|
86117
86237
|
const folderName = this.layers0.attributeStorageInfo[index].key;
|
|
86118
86238
|
const fileBuffer = new Uint8Array(attributes[index]);
|
|
86119
86239
|
if (this.options.slpk) {
|
|
86120
86240
|
const slpkAttributesPath = (0, import_path7.join)(childPath, "attributes", folderName);
|
|
86121
|
-
this.
|
|
86241
|
+
this.writeQueue.enqueue({
|
|
86242
|
+
archiveKey: `${slpkChildPath}/attributes/${folderName}.bin.gz`,
|
|
86243
|
+
writePromise: writeFileForSlpk(slpkAttributesPath, fileBuffer, "0.bin")
|
|
86244
|
+
});
|
|
86122
86245
|
} else {
|
|
86123
86246
|
const attributesPath = (0, import_path7.join)(childPath, `attributes/${folderName}/0`);
|
|
86124
|
-
|
|
86247
|
+
this.writeQueue.enqueue({
|
|
86248
|
+
writePromise: writeFile3(attributesPath, fileBuffer, "index.bin")
|
|
86249
|
+
});
|
|
86125
86250
|
}
|
|
86126
86251
|
}
|
|
86127
86252
|
}
|
|
@@ -86327,6 +86452,26 @@ var I3SConverter = class {
|
|
|
86327
86452
|
isContentSupported(sourceRootTile) {
|
|
86328
86453
|
return ["b3dm", "glTF"].includes(sourceRootTile?.content?.type);
|
|
86329
86454
|
}
|
|
86455
|
+
async loadWorkers() {
|
|
86456
|
+
console.log(`Loading workers source...`);
|
|
86457
|
+
if (this.options.draco) {
|
|
86458
|
+
const url = getWorkerURL(DracoWriterWorker, { ...getGlobalLoaderOptions() });
|
|
86459
|
+
const sourceResponse2 = await fetchFile(url);
|
|
86460
|
+
const source2 = await sourceResponse2.text();
|
|
86461
|
+
this.workerSource.draco = source2;
|
|
86462
|
+
}
|
|
86463
|
+
if (this.generateTextures) {
|
|
86464
|
+
const url = getWorkerURL(KTX2BasisWriterWorker, { ...getGlobalLoaderOptions() });
|
|
86465
|
+
const sourceResponse2 = await fetchFile(url);
|
|
86466
|
+
const source2 = await sourceResponse2.text();
|
|
86467
|
+
this.workerSource.ktx2 = source2;
|
|
86468
|
+
}
|
|
86469
|
+
const i3sAttributesWorkerUrl = getWorkerURL(I3SAttributesWorker, { ...getGlobalLoaderOptions() });
|
|
86470
|
+
const sourceResponse = await fetchFile(i3sAttributesWorkerUrl);
|
|
86471
|
+
const source = await sourceResponse.text();
|
|
86472
|
+
this.workerSource.I3SAttributes = source;
|
|
86473
|
+
console.log(`Loading workers source completed!`);
|
|
86474
|
+
}
|
|
86330
86475
|
};
|
|
86331
86476
|
|
|
86332
86477
|
// src/3d-tiles-converter/3d-tiles-converter.ts
|
|
@@ -86336,7 +86481,7 @@ var import_json_map_transform8 = __toModule(require_json_map_transform());
|
|
|
86336
86481
|
|
|
86337
86482
|
// ../i3s/src/lib/parsers/parse-i3s-tile-content.ts
|
|
86338
86483
|
var import_core26 = __toModule(require_es56());
|
|
86339
|
-
var
|
|
86484
|
+
var import_geospatial11 = __toModule(require_es57());
|
|
86340
86485
|
|
|
86341
86486
|
// ../i3s/src/types.ts
|
|
86342
86487
|
var DATA_TYPE;
|
|
@@ -86381,7 +86526,7 @@ function generateTilesetAttributeUrls(tileset, resource) {
|
|
|
86381
86526
|
}
|
|
86382
86527
|
|
|
86383
86528
|
// ../i3s/src/lib/parsers/constants.ts
|
|
86384
|
-
var
|
|
86529
|
+
var import_constants15 = __toModule(require_es516());
|
|
86385
86530
|
function getConstructorForDataFormat(dataType) {
|
|
86386
86531
|
switch (dataType) {
|
|
86387
86532
|
case DATA_TYPE.UInt8:
|
|
@@ -86399,11 +86544,11 @@ function getConstructorForDataFormat(dataType) {
|
|
|
86399
86544
|
}
|
|
86400
86545
|
}
|
|
86401
86546
|
var GL_TYPE_MAP = {
|
|
86402
|
-
UInt8:
|
|
86403
|
-
UInt16:
|
|
86404
|
-
Float32:
|
|
86405
|
-
UInt32:
|
|
86406
|
-
UInt64:
|
|
86547
|
+
UInt8: import_constants15.default.UNSIGNED_BYTE,
|
|
86548
|
+
UInt16: import_constants15.default.UNSIGNED_INT,
|
|
86549
|
+
Float32: import_constants15.default.FLOAT,
|
|
86550
|
+
UInt32: import_constants15.default.UNSIGNED_INT,
|
|
86551
|
+
UInt64: import_constants15.default.DOUBLE
|
|
86407
86552
|
};
|
|
86408
86553
|
function sizeOf(dataType) {
|
|
86409
86554
|
switch (dataType) {
|
|
@@ -86498,6 +86643,7 @@ async function parseI3SNodeGeometry(arrayBuffer, tile, tileset, options) {
|
|
|
86498
86643
|
return tile;
|
|
86499
86644
|
}
|
|
86500
86645
|
const content = tile.content;
|
|
86646
|
+
const contentByteLength = arrayBuffer.byteLength;
|
|
86501
86647
|
let attributes;
|
|
86502
86648
|
let vertexCount;
|
|
86503
86649
|
let byteOffset = 0;
|
|
@@ -86573,7 +86719,7 @@ async function parseI3SNodeGeometry(arrayBuffer, tile, tileset, options) {
|
|
|
86573
86719
|
}
|
|
86574
86720
|
}
|
|
86575
86721
|
content.vertexCount = vertexCount;
|
|
86576
|
-
content.byteLength =
|
|
86722
|
+
content.byteLength = contentByteLength;
|
|
86577
86723
|
return tile;
|
|
86578
86724
|
}
|
|
86579
86725
|
function updateAttributesMetadata(attributes, decompressedGeometry) {
|
|
@@ -86682,8 +86828,8 @@ function parsePositions2(attribute, tile) {
|
|
|
86682
86828
|
const enuMatrix = new import_core26.Matrix4();
|
|
86683
86829
|
const cartographicOrigin = new import_core26.Vector3(mbs[0], mbs[1], mbs[2]);
|
|
86684
86830
|
const cartesianOrigin = new import_core26.Vector3();
|
|
86685
|
-
|
|
86686
|
-
|
|
86831
|
+
import_geospatial11.Ellipsoid.WGS84.cartographicToCartesian(cartographicOrigin, cartesianOrigin);
|
|
86832
|
+
import_geospatial11.Ellipsoid.WGS84.eastNorthUpToFixedFrame(cartesianOrigin, enuMatrix);
|
|
86687
86833
|
attribute.value = offsetsToCartesians(value, metadata, cartographicOrigin);
|
|
86688
86834
|
return enuMatrix;
|
|
86689
86835
|
}
|
|
@@ -86697,7 +86843,7 @@ function offsetsToCartesians(vertices, metadata = {}, cartographicOrigin) {
|
|
|
86697
86843
|
positions[i + 2] = vertices[i + 2] + cartographicOrigin.z;
|
|
86698
86844
|
}
|
|
86699
86845
|
for (let i = 0; i < positions.length; i += 3) {
|
|
86700
|
-
|
|
86846
|
+
import_geospatial11.Ellipsoid.WGS84.cartographicToCartesian(positions.subarray(i, i + 3), scratchVector5);
|
|
86701
86847
|
positions[i] = scratchVector5.x;
|
|
86702
86848
|
positions[i + 1] = scratchVector5.y;
|
|
86703
86849
|
positions[i + 2] = scratchVector5.z;
|
|
@@ -86808,13 +86954,13 @@ function getFeatureIdsFromFeatureIndexMetadata(featureIndex) {
|
|
|
86808
86954
|
}
|
|
86809
86955
|
|
|
86810
86956
|
// ../i3s/src/i3s-content-loader.ts
|
|
86811
|
-
var
|
|
86957
|
+
var VERSION12 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
86812
86958
|
var I3SContentLoader = {
|
|
86813
86959
|
name: "I3S Content (Indexed Scene Layers)",
|
|
86814
86960
|
id: "i3s-content",
|
|
86815
86961
|
module: "i3s",
|
|
86816
86962
|
worker: true,
|
|
86817
|
-
version:
|
|
86963
|
+
version: VERSION12,
|
|
86818
86964
|
mimeTypes: ["application/octet-stream"],
|
|
86819
86965
|
parse: parse6,
|
|
86820
86966
|
extensions: ["bin"],
|
|
@@ -86830,10 +86976,10 @@ async function parse6(data, options, context) {
|
|
|
86830
86976
|
|
|
86831
86977
|
// ../i3s/src/lib/parsers/parse-i3s.ts
|
|
86832
86978
|
var import_culling7 = __toModule(require_es58());
|
|
86833
|
-
var
|
|
86979
|
+
var import_geospatial12 = __toModule(require_es57());
|
|
86834
86980
|
|
|
86835
86981
|
// ../i3s/src/i3s-node-page-loader.ts
|
|
86836
|
-
var
|
|
86982
|
+
var VERSION13 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
86837
86983
|
async function parseNodePage(data) {
|
|
86838
86984
|
return JSON.parse(new TextDecoder().decode(data));
|
|
86839
86985
|
}
|
|
@@ -86841,7 +86987,7 @@ var I3SNodePageLoader = {
|
|
|
86841
86987
|
name: "I3S Node Page",
|
|
86842
86988
|
id: "i3s-node-page",
|
|
86843
86989
|
module: "i3s",
|
|
86844
|
-
version:
|
|
86990
|
+
version: VERSION13,
|
|
86845
86991
|
mimeTypes: ["application/json"],
|
|
86846
86992
|
parse: parse7,
|
|
86847
86993
|
extensions: ["json"],
|
|
@@ -86863,6 +87009,7 @@ var I3SNodePagesTiles = class {
|
|
|
86863
87009
|
this.nodesPerPage = tileset.nodePages?.nodesPerPage || 64;
|
|
86864
87010
|
this.lodSelectionMetricType = tileset.nodePages?.lodSelectionMetricType;
|
|
86865
87011
|
this.options = options;
|
|
87012
|
+
this.nodesInNodePages = 0;
|
|
86866
87013
|
this.initSelectedFormatsForTextureDefinitions(tileset);
|
|
86867
87014
|
}
|
|
86868
87015
|
async getNodeById(id) {
|
|
@@ -86874,6 +87021,7 @@ var I3SNodePagesTiles = class {
|
|
|
86874
87021
|
promise: load(nodePageUrl, I3SNodePageLoader, this.options)
|
|
86875
87022
|
};
|
|
86876
87023
|
this.nodePages[pageIndex] = await this.pendingNodePages[pageIndex].promise;
|
|
87024
|
+
this.nodesInNodePages += this.nodePages[pageIndex].nodes.length;
|
|
86877
87025
|
this.pendingNodePages[pageIndex].status = "Done";
|
|
86878
87026
|
}
|
|
86879
87027
|
if (this.pendingNodePages[pageIndex].status === "Pending") {
|
|
@@ -86885,10 +87033,14 @@ var I3SNodePagesTiles = class {
|
|
|
86885
87033
|
async formTileFromNodePages(id) {
|
|
86886
87034
|
const node2 = await this.getNodeById(id);
|
|
86887
87035
|
const children = [];
|
|
87036
|
+
const childNodesPromises = [];
|
|
86888
87037
|
for (const child of node2.children || []) {
|
|
86889
|
-
|
|
87038
|
+
childNodesPromises.push(this.getNodeById(child));
|
|
87039
|
+
}
|
|
87040
|
+
const childNodes = await Promise.all(childNodesPromises);
|
|
87041
|
+
for (const childNode of childNodes) {
|
|
86890
87042
|
children.push({
|
|
86891
|
-
id:
|
|
87043
|
+
id: childNode.index.toString(),
|
|
86892
87044
|
obb: childNode.obb
|
|
86893
87045
|
});
|
|
86894
87046
|
}
|
|
@@ -87046,12 +87198,12 @@ function normalizeTileNonUrlData(tile) {
|
|
|
87046
87198
|
if (tile.mbs) {
|
|
87047
87199
|
mbs = tile.mbs;
|
|
87048
87200
|
boundingVolume.sphere = [
|
|
87049
|
-
...
|
|
87201
|
+
...import_geospatial12.Ellipsoid.WGS84.cartographicToCartesian(tile.mbs.slice(0, 3)),
|
|
87050
87202
|
tile.mbs[3]
|
|
87051
87203
|
];
|
|
87052
87204
|
} else if (tile.obb) {
|
|
87053
87205
|
boundingVolume.box = [
|
|
87054
|
-
...
|
|
87206
|
+
...import_geospatial12.Ellipsoid.WGS84.cartographicToCartesian(tile.obb.center),
|
|
87055
87207
|
...tile.obb.halfSize,
|
|
87056
87208
|
...tile.obb.quaternion
|
|
87057
87209
|
];
|
|
@@ -87071,7 +87223,7 @@ async function normalizeTilesetData(tileset, options, context) {
|
|
|
87071
87223
|
tileset.url = context.url;
|
|
87072
87224
|
if (tileset.nodePages) {
|
|
87073
87225
|
tileset.nodePagesTile = new I3SNodePagesTiles(tileset, options);
|
|
87074
|
-
tileset.root =
|
|
87226
|
+
tileset.root = tileset.nodePagesTile.formTileFromNodePages(0);
|
|
87075
87227
|
} else {
|
|
87076
87228
|
const rootNodeUrl = getUrlWithToken(`${tileset.url}/nodes/root`, options.i3s?.token);
|
|
87077
87229
|
tileset.root = await load(rootNodeUrl, tileset.loader, {
|
|
@@ -87091,7 +87243,7 @@ async function normalizeTilesetData(tileset, options, context) {
|
|
|
87091
87243
|
}
|
|
87092
87244
|
|
|
87093
87245
|
// ../i3s/src/i3s-loader.ts
|
|
87094
|
-
var
|
|
87246
|
+
var VERSION14 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
87095
87247
|
var TILESET_REGEX = /layers\/[0-9]+$/;
|
|
87096
87248
|
var TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
|
|
87097
87249
|
var SLPK_HEX = "504b0304";
|
|
@@ -87099,7 +87251,7 @@ var I3SLoader = {
|
|
|
87099
87251
|
name: "I3S (Indexed Scene Layers)",
|
|
87100
87252
|
id: "i3s",
|
|
87101
87253
|
module: "i3s",
|
|
87102
|
-
version:
|
|
87254
|
+
version: VERSION14,
|
|
87103
87255
|
mimeTypes: ["application/octet-stream"],
|
|
87104
87256
|
parse: parseI3S,
|
|
87105
87257
|
extensions: ["bin"],
|
|
@@ -87228,12 +87380,12 @@ function parseStringsAttribute(arrayBuffer) {
|
|
|
87228
87380
|
}
|
|
87229
87381
|
|
|
87230
87382
|
// ../i3s/src/i3s-attribute-loader.ts
|
|
87231
|
-
var
|
|
87383
|
+
var VERSION15 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
87232
87384
|
var I3SAttributeLoader = {
|
|
87233
87385
|
name: "I3S Attribute",
|
|
87234
87386
|
id: "i3s-attribute",
|
|
87235
87387
|
module: "i3s",
|
|
87236
|
-
version:
|
|
87388
|
+
version: VERSION15,
|
|
87237
87389
|
mimeTypes: ["application/binary"],
|
|
87238
87390
|
parse: parse8,
|
|
87239
87391
|
extensions: ["bin"],
|
|
@@ -87247,7 +87399,7 @@ async function parse8(data, options) {
|
|
|
87247
87399
|
|
|
87248
87400
|
// src/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.ts
|
|
87249
87401
|
var import_core30 = __toModule(require_es56());
|
|
87250
|
-
var
|
|
87402
|
+
var import_geospatial13 = __toModule(require_es57());
|
|
87251
87403
|
var import_culling8 = __toModule(require_es58());
|
|
87252
87404
|
function i3sObbTo3dTilesObb(i3SObb, geoidHeightModel) {
|
|
87253
87405
|
const tiles3DCenter = [
|
|
@@ -87255,7 +87407,7 @@ function i3sObbTo3dTilesObb(i3SObb, geoidHeightModel) {
|
|
|
87255
87407
|
i3SObb.center[1],
|
|
87256
87408
|
i3SObb.center[2] + geoidHeightModel.getHeight(i3SObb.center[1], i3SObb.center[0])
|
|
87257
87409
|
];
|
|
87258
|
-
const cartesianCenter =
|
|
87410
|
+
const cartesianCenter = import_geospatial13.Ellipsoid.WGS84.cartographicToCartesian(tiles3DCenter, new import_core30.Vector3());
|
|
87259
87411
|
const tiles3DObb = new import_culling8.OrientedBoundingBox().fromCenterHalfSizeQuaternion(cartesianCenter, i3SObb.halfSize, i3SObb.quaternion);
|
|
87260
87412
|
return [...tiles3DObb.center, ...tiles3DObb.halfAxes.toArray()];
|
|
87261
87413
|
}
|
|
@@ -87300,7 +87452,7 @@ var TILESET = () => ({
|
|
|
87300
87452
|
|
|
87301
87453
|
// src/3d-tiles-converter/helpers/b3dm-converter.ts
|
|
87302
87454
|
var import_core32 = __toModule(require_es56());
|
|
87303
|
-
var
|
|
87455
|
+
var import_geospatial14 = __toModule(require_es57());
|
|
87304
87456
|
|
|
87305
87457
|
// src/3d-tiles-converter/helpers/texture-atlas.ts
|
|
87306
87458
|
function convertTextureAtlas(texCoords, uvRegions) {
|
|
@@ -87337,18 +87489,18 @@ function normalizeRegions(regions) {
|
|
|
87337
87489
|
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
87490
|
var scratchVector6 = new import_core32.Vector3();
|
|
87339
87491
|
var B3dmConverter = class {
|
|
87340
|
-
async convert(
|
|
87341
|
-
|
|
87342
|
-
const gltf = await this.buildGltf(i3sTile);
|
|
87492
|
+
async convert(i3sAttributesData, featureAttributes = null) {
|
|
87493
|
+
const gltf = await this.buildGltf(i3sAttributesData);
|
|
87343
87494
|
const b3dm = encodeSync({
|
|
87344
87495
|
gltfEncoded: new Uint8Array(gltf),
|
|
87345
87496
|
type: "b3dm",
|
|
87346
|
-
featuresLength: this._getFeaturesLength(
|
|
87347
|
-
batchTable:
|
|
87497
|
+
featuresLength: this._getFeaturesLength(featureAttributes),
|
|
87498
|
+
batchTable: featureAttributes
|
|
87348
87499
|
}, Tile3DWriter);
|
|
87349
87500
|
return b3dm;
|
|
87350
87501
|
}
|
|
87351
|
-
async buildGltf(
|
|
87502
|
+
async buildGltf(i3sAttributesData) {
|
|
87503
|
+
const { tileContent, textureFormat } = i3sAttributesData;
|
|
87352
87504
|
const {
|
|
87353
87505
|
material,
|
|
87354
87506
|
attributes,
|
|
@@ -87356,9 +87508,9 @@ var B3dmConverter = class {
|
|
|
87356
87508
|
cartesianOrigin,
|
|
87357
87509
|
cartographicOrigin,
|
|
87358
87510
|
modelMatrix
|
|
87359
|
-
} =
|
|
87511
|
+
} = tileContent;
|
|
87360
87512
|
const gltfBuilder = new GLTFScenegraph();
|
|
87361
|
-
const textureIndex = await this._addI3sTextureToGltf(
|
|
87513
|
+
const textureIndex = await this._addI3sTextureToGltf(tileContent, textureFormat, gltfBuilder);
|
|
87362
87514
|
const pbrMaterialInfo = this._convertI3sMaterialToGltfMaterial(material, textureIndex);
|
|
87363
87515
|
const materialIndex = gltfBuilder.addMaterial(pbrMaterialInfo);
|
|
87364
87516
|
const positions = attributes.positions;
|
|
@@ -87385,11 +87537,8 @@ var B3dmConverter = class {
|
|
|
87385
87537
|
const gltfBuffer = encodeSync(gltfBuilder.gltf, GLTFWriter);
|
|
87386
87538
|
return gltfBuffer;
|
|
87387
87539
|
}
|
|
87388
|
-
async _addI3sTextureToGltf(
|
|
87389
|
-
const {
|
|
87390
|
-
content: { texture, material, attributes },
|
|
87391
|
-
header: { textureFormat }
|
|
87392
|
-
} = i3sTile;
|
|
87540
|
+
async _addI3sTextureToGltf(tileContent, textureFormat, gltfBuilder) {
|
|
87541
|
+
const { texture, material, attributes } = tileContent;
|
|
87393
87542
|
let textureIndex = null;
|
|
87394
87543
|
let selectedTexture = texture;
|
|
87395
87544
|
if (!texture && material) {
|
|
@@ -87409,7 +87558,7 @@ var B3dmConverter = class {
|
|
|
87409
87558
|
const vertex = positionsValue.subarray(index, index + 3);
|
|
87410
87559
|
const cartesianOriginVector = new import_core32.Vector3(cartesianOrigin);
|
|
87411
87560
|
let vertexVector = new import_core32.Vector3(Array.from(vertex)).transform(modelMatrix).add(cartographicOrigin);
|
|
87412
|
-
|
|
87561
|
+
import_geospatial14.Ellipsoid.WGS84.cartographicToCartesian(vertexVector, scratchVector6);
|
|
87413
87562
|
vertexVector = scratchVector6.subtract(cartesianOriginVector);
|
|
87414
87563
|
newPositionsValue.set(vertexVector, index);
|
|
87415
87564
|
}
|
|
@@ -87525,10 +87674,23 @@ var B3dmConverter = class {
|
|
|
87525
87674
|
}
|
|
87526
87675
|
};
|
|
87527
87676
|
|
|
87677
|
+
// src/3d-tiles-attributes-worker.ts
|
|
87678
|
+
var VERSION16 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
87679
|
+
var Tile3dAttributesWorker = {
|
|
87680
|
+
id: "3d-tiles-attributes",
|
|
87681
|
+
name: "3DTiles Attributes Worker",
|
|
87682
|
+
module: "tile-converter",
|
|
87683
|
+
version: VERSION16,
|
|
87684
|
+
options: {
|
|
87685
|
+
attributes: null
|
|
87686
|
+
}
|
|
87687
|
+
};
|
|
87688
|
+
|
|
87528
87689
|
// src/3d-tiles-converter/3d-tiles-converter.ts
|
|
87529
87690
|
var I3S = "I3S";
|
|
87530
87691
|
var Tiles3DConverter = class {
|
|
87531
87692
|
constructor() {
|
|
87693
|
+
this.workerSource = {};
|
|
87532
87694
|
this.options = {};
|
|
87533
87695
|
this.tilesetPath = "";
|
|
87534
87696
|
this.vertexCounter = 0;
|
|
@@ -87536,20 +87698,27 @@ var Tiles3DConverter = class {
|
|
|
87536
87698
|
this.geoidHeightModel = null;
|
|
87537
87699
|
this.sourceTileset = null;
|
|
87538
87700
|
this.attributeStorageInfo = null;
|
|
87701
|
+
this.workerSource = {};
|
|
87539
87702
|
}
|
|
87540
87703
|
async convert(options) {
|
|
87704
|
+
if (isBrowser) {
|
|
87705
|
+
console.log(BROWSER_ERROR_MESSAGE);
|
|
87706
|
+
return BROWSER_ERROR_MESSAGE;
|
|
87707
|
+
}
|
|
87541
87708
|
const { inputUrl, outputPath, tilesetName, maxDepth, egmFilePath } = options;
|
|
87542
87709
|
this.conversionStartTime = import_process2.default.hrtime();
|
|
87543
87710
|
this.options = { maxDepth };
|
|
87544
87711
|
console.log("Loading egm file...");
|
|
87545
87712
|
this.geoidHeightModel = await load(egmFilePath, PGMLoader);
|
|
87546
87713
|
console.log("Loading egm file completed!");
|
|
87714
|
+
await this.loadWorkers();
|
|
87547
87715
|
const sourceTilesetJson = await load(inputUrl, I3SLoader, {});
|
|
87548
87716
|
this.sourceTileset = new Tileset3D(sourceTilesetJson, {
|
|
87549
87717
|
loadOptions: {
|
|
87550
87718
|
i3s: { coordinateSystem: COORDINATE_SYSTEM.LNGLAT_OFFSETS, decodeTextures: false }
|
|
87551
87719
|
}
|
|
87552
87720
|
});
|
|
87721
|
+
await this.sourceTileset.tilesetInitializationPromise;
|
|
87553
87722
|
const rootNode = this.sourceTileset.root;
|
|
87554
87723
|
if (!rootNode.header.obb) {
|
|
87555
87724
|
rootNode.header.obb = createObbFromMbs(rootNode.header.mbs);
|
|
@@ -87571,6 +87740,8 @@ var Tiles3DConverter = class {
|
|
|
87571
87740
|
const tileset = (0, import_json_map_transform8.default)({ root: rootTile }, TILESET());
|
|
87572
87741
|
await writeFile3(this.tilesetPath, JSON.stringify(tileset), "tileset.json");
|
|
87573
87742
|
this._finishConversion({ slpk: false, outputPath, tilesetName });
|
|
87743
|
+
const workerFarm = WorkerFarm.getWorkerFarm({});
|
|
87744
|
+
workerFarm.destroy();
|
|
87574
87745
|
}
|
|
87575
87746
|
async _addChildren(parentSourceNode, parentNode, level) {
|
|
87576
87747
|
if (this.options.maxDepth && level > this.options.maxDepth) {
|
|
@@ -87582,9 +87753,9 @@ var Tiles3DConverter = class {
|
|
|
87582
87753
|
if (sourceChild.contentUrl) {
|
|
87583
87754
|
await this.sourceTileset._loadTile(sourceChild);
|
|
87584
87755
|
this.vertexCounter += sourceChild.content.vertexCount;
|
|
87585
|
-
let
|
|
87756
|
+
let featureAttributes = null;
|
|
87586
87757
|
if (this.attributeStorageInfo) {
|
|
87587
|
-
|
|
87758
|
+
featureAttributes = await this._loadChildAttributes(sourceChild, this.attributeStorageInfo);
|
|
87588
87759
|
}
|
|
87589
87760
|
if (!sourceChild.header.obb) {
|
|
87590
87761
|
sourceChild.header.obb = createObbFromMbs(sourceChild.header.mbs);
|
|
@@ -87597,7 +87768,11 @@ var Tiles3DConverter = class {
|
|
|
87597
87768
|
geometricError: convertScreenThresholdToGeometricError(sourceChild),
|
|
87598
87769
|
children: []
|
|
87599
87770
|
};
|
|
87600
|
-
const
|
|
87771
|
+
const i3sAttributesData = {
|
|
87772
|
+
tileContent: sourceChild.content,
|
|
87773
|
+
textureFormat: sourceChild?.header?.textureFormat
|
|
87774
|
+
};
|
|
87775
|
+
const b3dm = await new B3dmConverter().convert(i3sAttributesData, featureAttributes);
|
|
87601
87776
|
child.content = {
|
|
87602
87777
|
uri: `${sourceChild.id}.b3dm`,
|
|
87603
87778
|
boundingVolume
|
|
@@ -87690,73 +87865,18 @@ var Tiles3DConverter = class {
|
|
|
87690
87865
|
console.log(`File(s) size: `, filesSize, " bytes");
|
|
87691
87866
|
console.log(`------------------------------------------------`);
|
|
87692
87867
|
}
|
|
87693
|
-
|
|
87694
|
-
|
|
87695
|
-
|
|
87696
|
-
|
|
87697
|
-
|
|
87698
|
-
|
|
87699
|
-
|
|
87700
|
-
module: "zip",
|
|
87701
|
-
name: "Zip Archive",
|
|
87702
|
-
version: VERSION14,
|
|
87703
|
-
extensions: ["zip"],
|
|
87704
|
-
mimeTypes: ["application/zip"],
|
|
87705
|
-
category: "archive",
|
|
87706
|
-
tests: ["PK"],
|
|
87707
|
-
options: {},
|
|
87708
|
-
parse: parseZipAsync
|
|
87709
|
-
};
|
|
87710
|
-
async function parseZipAsync(data, options = {}) {
|
|
87711
|
-
const promises = [];
|
|
87712
|
-
const fileMap = {};
|
|
87713
|
-
try {
|
|
87714
|
-
const jsZip = new import_jszip2.default();
|
|
87715
|
-
const zip = await jsZip.loadAsync(data, options);
|
|
87716
|
-
zip.forEach((relativePath, zipEntry) => {
|
|
87717
|
-
const subFilename = zipEntry.name;
|
|
87718
|
-
const promise = loadZipEntry(jsZip, subFilename, options).then((arrayBufferOrError) => {
|
|
87719
|
-
fileMap[relativePath] = arrayBufferOrError;
|
|
87720
|
-
});
|
|
87721
|
-
promises.push(promise);
|
|
87722
|
-
});
|
|
87723
|
-
await Promise.all(promises);
|
|
87724
|
-
return fileMap;
|
|
87725
|
-
} catch (error) {
|
|
87726
|
-
options.log.error(`Unable to read zip archive: ${error}`);
|
|
87727
|
-
throw error;
|
|
87728
|
-
}
|
|
87729
|
-
}
|
|
87730
|
-
async function loadZipEntry(jsZip, subFilename, options = {}) {
|
|
87731
|
-
try {
|
|
87732
|
-
const arrayBuffer = await jsZip.file(subFilename).async(options.dataType || "arraybuffer");
|
|
87733
|
-
return arrayBuffer;
|
|
87734
|
-
} catch (error) {
|
|
87735
|
-
options.log.error(`Unable to read ${subFilename} from zip archive: ${error}`);
|
|
87736
|
-
return error;
|
|
87737
|
-
}
|
|
87738
|
-
}
|
|
87739
|
-
|
|
87740
|
-
// src/deps-installer/deps-installer.js
|
|
87741
|
-
var import_path9 = __toModule(require("path"));
|
|
87742
|
-
var PGM_LINK = "https://raw.githubusercontent.com/visgl/deck.gl-data/master/egm/egm2008-5.zip";
|
|
87743
|
-
var DepsInstaller = class {
|
|
87744
|
-
async install(path2 = "") {
|
|
87745
|
-
console.log('Installing "EGM2008-5" model...');
|
|
87746
|
-
const fileMap = await load(PGM_LINK, ZipLoader, {});
|
|
87747
|
-
let depsPath = process.cwd();
|
|
87748
|
-
if (path2) {
|
|
87749
|
-
depsPath = (0, import_path9.join)(depsPath, path2);
|
|
87750
|
-
}
|
|
87751
|
-
await writeFile3(depsPath, new Uint8Array(fileMap["geoids/egm2008-5.pgm"]), "egm2008-5.pgm");
|
|
87752
|
-
console.log("All dependencies were installed succesfully.");
|
|
87868
|
+
async loadWorkers() {
|
|
87869
|
+
console.log(`Loading workers source...`);
|
|
87870
|
+
const tile3dAttributesWorkerUrl = getWorkerURL(Tile3dAttributesWorker, { ...getGlobalLoaderOptions() });
|
|
87871
|
+
const sourceResponse = await fetchFile(tile3dAttributesWorkerUrl);
|
|
87872
|
+
const source = await sourceResponse.text();
|
|
87873
|
+
this.workerSource.tile3dWorkerSource = source;
|
|
87874
|
+
console.log(`Loading workers source completed!`);
|
|
87753
87875
|
}
|
|
87754
87876
|
};
|
|
87755
87877
|
// Annotate the CommonJS export names for ESM import in node:
|
|
87756
87878
|
0 && (module.exports = {
|
|
87757
|
-
DepsInstaller,
|
|
87758
87879
|
I3SConverter,
|
|
87759
|
-
NodePages,
|
|
87760
87880
|
Tiles3DConverter
|
|
87761
87881
|
});
|
|
87762
87882
|
/*!
|