@loaders.gl/i3s 4.0.0-alpha.17 → 4.0.0-alpha.19
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/dist.min.js +155 -98
- package/dist/es5/arcgis-webscene-loader.js +1 -1
- package/dist/es5/i3s-attribute-loader.js +1 -1
- package/dist/es5/i3s-building-scene-layer-loader.js +1 -1
- package/dist/es5/i3s-content-loader.js +1 -1
- package/dist/es5/i3s-loader.js +6 -6
- package/dist/es5/i3s-loader.js.map +1 -1
- package/dist/es5/i3s-node-page-loader.js +1 -1
- package/dist/es5/i3s-slpk-loader.js +1 -1
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/helpers/i3s-nodepages-tiles.js +9 -5
- package/dist/es5/lib/helpers/i3s-nodepages-tiles.js.map +1 -1
- package/dist/es5/lib/parsers/parse-i3s.js +30 -19
- package/dist/es5/lib/parsers/parse-i3s.js.map +1 -1
- package/dist/es5/lib/utils/url-utils.js +3 -3
- package/dist/es5/lib/utils/url-utils.js.map +1 -1
- package/dist/es5/types.js.map +1 -1
- package/dist/esm/arcgis-webscene-loader.js +1 -1
- package/dist/esm/i3s-attribute-loader.js +1 -1
- package/dist/esm/i3s-building-scene-layer-loader.js +1 -1
- package/dist/esm/i3s-content-loader.js +1 -1
- package/dist/esm/i3s-loader.js +3 -4
- package/dist/esm/i3s-loader.js.map +1 -1
- package/dist/esm/i3s-node-page-loader.js +1 -1
- package/dist/esm/i3s-slpk-loader.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/helpers/i3s-nodepages-tiles.js +9 -5
- package/dist/esm/lib/helpers/i3s-nodepages-tiles.js.map +1 -1
- package/dist/esm/lib/parsers/parse-i3s.js +21 -10
- package/dist/esm/lib/parsers/parse-i3s.js.map +1 -1
- package/dist/esm/lib/utils/url-utils.js +2 -3
- package/dist/esm/lib/utils/url-utils.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/i3s-content-worker-node.js +47 -47
- package/dist/i3s-content-worker-node.js.map +3 -3
- package/dist/i3s-content-worker.js +88 -44
- package/dist/i3s-loader.js +2 -4
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/helpers/i3s-nodepages-tiles.d.ts +5 -3
- package/dist/lib/helpers/i3s-nodepages-tiles.d.ts.map +1 -1
- package/dist/lib/helpers/i3s-nodepages-tiles.js +7 -5
- package/dist/lib/parsers/parse-i3s.d.ts +2 -2
- package/dist/lib/parsers/parse-i3s.d.ts.map +1 -1
- package/dist/lib/parsers/parse-i3s.js +22 -12
- package/dist/lib/utils/url-utils.d.ts +5 -4
- package/dist/lib/utils/url-utils.d.ts.map +1 -1
- package/dist/lib/utils/url-utils.js +5 -4
- package/dist/types.d.ts +105 -34
- package/dist/types.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/i3s-loader.ts +2 -4
- package/src/index.ts +4 -0
- package/src/lib/helpers/i3s-nodepages-tiles.ts +16 -9
- package/src/lib/parsers/parse-i3s.ts +26 -16
- package/src/lib/utils/url-utils.ts +6 -5
- package/src/types.ts +102 -35
package/dist/dist.min.js
CHANGED
|
@@ -1250,37 +1250,37 @@
|
|
|
1250
1250
|
});
|
|
1251
1251
|
|
|
1252
1252
|
// ../worker-utils/src/lib/library-utils/library-utils.ts
|
|
1253
|
-
async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
|
|
1253
|
+
async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null) {
|
|
1254
1254
|
if (moduleName) {
|
|
1255
|
-
libraryUrl = getLibraryUrl(libraryUrl, moduleName, options);
|
|
1255
|
+
libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);
|
|
1256
1256
|
}
|
|
1257
1257
|
loadLibraryPromises[libraryUrl] = loadLibraryPromises[libraryUrl] || loadLibraryFromFile(libraryUrl);
|
|
1258
1258
|
return await loadLibraryPromises[libraryUrl];
|
|
1259
1259
|
}
|
|
1260
|
-
function getLibraryUrl(library, moduleName, options) {
|
|
1261
|
-
if (library.startsWith("http")) {
|
|
1260
|
+
function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
|
|
1261
|
+
if (!options.useLocalLibraries && library.startsWith("http")) {
|
|
1262
1262
|
return library;
|
|
1263
1263
|
}
|
|
1264
|
+
libraryName = libraryName || library;
|
|
1264
1265
|
const modules = options.modules || {};
|
|
1265
|
-
if (modules[
|
|
1266
|
-
return modules[
|
|
1266
|
+
if (modules[libraryName]) {
|
|
1267
|
+
return modules[libraryName];
|
|
1267
1268
|
}
|
|
1268
1269
|
if (!isBrowser2) {
|
|
1269
|
-
return `modules/${moduleName}/dist/libs/${
|
|
1270
|
+
return `modules/${moduleName}/dist/libs/${libraryName}`;
|
|
1270
1271
|
}
|
|
1271
1272
|
if (options.CDN) {
|
|
1272
1273
|
assert2(options.CDN.startsWith("http"));
|
|
1273
|
-
return `${options.CDN}/${moduleName}@${VERSION2}/dist/libs/${
|
|
1274
|
+
return `${options.CDN}/${moduleName}@${VERSION2}/dist/libs/${libraryName}`;
|
|
1274
1275
|
}
|
|
1275
1276
|
if (isWorker) {
|
|
1276
|
-
return `../src/libs/${
|
|
1277
|
+
return `../src/libs/${libraryName}`;
|
|
1277
1278
|
}
|
|
1278
|
-
return `modules/${moduleName}/src/libs/${
|
|
1279
|
+
return `modules/${moduleName}/src/libs/${libraryName}`;
|
|
1279
1280
|
}
|
|
1280
1281
|
async function loadLibraryFromFile(libraryUrl) {
|
|
1281
1282
|
if (libraryUrl.endsWith("wasm")) {
|
|
1282
|
-
|
|
1283
|
-
return await response2.arrayBuffer();
|
|
1283
|
+
return await loadAsArrayBuffer(libraryUrl);
|
|
1284
1284
|
}
|
|
1285
1285
|
if (!isBrowser2) {
|
|
1286
1286
|
try {
|
|
@@ -1292,8 +1292,7 @@
|
|
|
1292
1292
|
if (isWorker) {
|
|
1293
1293
|
return importScripts(libraryUrl);
|
|
1294
1294
|
}
|
|
1295
|
-
const
|
|
1296
|
-
const scriptSource = await response.text();
|
|
1295
|
+
const scriptSource = await loadAsText(libraryUrl);
|
|
1297
1296
|
return loadLibraryFromString(scriptSource, libraryUrl);
|
|
1298
1297
|
}
|
|
1299
1298
|
function loadLibraryFromString(scriptSource, id) {
|
|
@@ -1314,6 +1313,20 @@
|
|
|
1314
1313
|
document.body.appendChild(script);
|
|
1315
1314
|
return null;
|
|
1316
1315
|
}
|
|
1316
|
+
async function loadAsArrayBuffer(url) {
|
|
1317
|
+
if (!node.readFileAsArrayBuffer || url.startsWith("http")) {
|
|
1318
|
+
const response = await fetch(url);
|
|
1319
|
+
return await response.arrayBuffer();
|
|
1320
|
+
}
|
|
1321
|
+
return await node.readFileAsArrayBuffer(url);
|
|
1322
|
+
}
|
|
1323
|
+
async function loadAsText(url) {
|
|
1324
|
+
if (!node.readFileAsText || url.startsWith("http")) {
|
|
1325
|
+
const response = await fetch(url);
|
|
1326
|
+
return await response.text();
|
|
1327
|
+
}
|
|
1328
|
+
return await node.readFileAsText(url);
|
|
1329
|
+
}
|
|
1317
1330
|
var node, LATEST, VERSION2, loadLibraryPromises;
|
|
1318
1331
|
var init_library_utils = __esm({
|
|
1319
1332
|
"../worker-utils/src/lib/library-utils/library-utils.ts"() {
|
|
@@ -1965,18 +1978,38 @@
|
|
|
1965
1978
|
}
|
|
1966
1979
|
});
|
|
1967
1980
|
|
|
1981
|
+
// (disabled):../core/src/lib/fetch/fetch-file.node
|
|
1982
|
+
var require_fetch_file = __commonJS({
|
|
1983
|
+
"(disabled):../core/src/lib/fetch/fetch-file.node"() {
|
|
1984
|
+
}
|
|
1985
|
+
});
|
|
1986
|
+
|
|
1968
1987
|
// ../core/src/lib/fetch/fetch-file.ts
|
|
1988
|
+
function isNodePath(url) {
|
|
1989
|
+
return !isRequestURL(url) && !isDataURL(url);
|
|
1990
|
+
}
|
|
1991
|
+
function isRequestURL(url) {
|
|
1992
|
+
return url.startsWith("http:") || url.startsWith("https:");
|
|
1993
|
+
}
|
|
1994
|
+
function isDataURL(url) {
|
|
1995
|
+
return url.startsWith("data:");
|
|
1996
|
+
}
|
|
1969
1997
|
async function fetchFile(urlOrData, fetchOptions) {
|
|
1970
1998
|
if (typeof urlOrData === "string") {
|
|
1971
1999
|
const url = resolvePath(urlOrData);
|
|
2000
|
+
if (isNodePath(url) && node3?.fetchFileNode) {
|
|
2001
|
+
return node3.fetchFileNode(url, fetchOptions);
|
|
2002
|
+
}
|
|
1972
2003
|
return await fetch(url, fetchOptions);
|
|
1973
2004
|
}
|
|
1974
2005
|
return await makeResponse(urlOrData);
|
|
1975
2006
|
}
|
|
2007
|
+
var node3;
|
|
1976
2008
|
var init_fetch_file = __esm({
|
|
1977
2009
|
"../core/src/lib/fetch/fetch-file.ts"() {
|
|
1978
2010
|
init_src2();
|
|
1979
2011
|
init_response_utils();
|
|
2012
|
+
node3 = __toModule(require_fetch_file());
|
|
1980
2013
|
}
|
|
1981
2014
|
});
|
|
1982
2015
|
|
|
@@ -2640,6 +2673,7 @@
|
|
|
2640
2673
|
mimeType: void 0,
|
|
2641
2674
|
nothrow: false,
|
|
2642
2675
|
log: new ConsoleLog(),
|
|
2676
|
+
useLocalLibraries: false,
|
|
2643
2677
|
CDN: "https://unpkg.com/@loaders.gl",
|
|
2644
2678
|
worker: true,
|
|
2645
2679
|
maxConcurrency: 3,
|
|
@@ -7709,13 +7743,13 @@
|
|
|
7709
7743
|
let wasmBinary;
|
|
7710
7744
|
switch (options.draco && options.draco.decoderType) {
|
|
7711
7745
|
case "js":
|
|
7712
|
-
DracoDecoderModule = await loadLibrary(
|
|
7746
|
+
DracoDecoderModule = await loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER], "draco", options, DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER);
|
|
7713
7747
|
break;
|
|
7714
7748
|
case "wasm":
|
|
7715
7749
|
default:
|
|
7716
7750
|
[DracoDecoderModule, wasmBinary] = await Promise.all([
|
|
7717
|
-
await loadLibrary(
|
|
7718
|
-
await loadLibrary(
|
|
7751
|
+
await loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER], "draco", options, DRACO_EXTERNAL_LIBRARIES.DECODER),
|
|
7752
|
+
await loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM], "draco", options, DRACO_EXTERNAL_LIBRARIES.DECODER_WASM)
|
|
7719
7753
|
]);
|
|
7720
7754
|
}
|
|
7721
7755
|
DracoDecoderModule = DracoDecoderModule || globalThis.DracoDecoderModule;
|
|
@@ -7733,17 +7767,25 @@
|
|
|
7733
7767
|
});
|
|
7734
7768
|
});
|
|
7735
7769
|
}
|
|
7736
|
-
var DRACO_DECODER_VERSION, DRACO_ENCODER_VERSION, STATIC_DECODER_URL,
|
|
7770
|
+
var DRACO_DECODER_VERSION, DRACO_ENCODER_VERSION, STATIC_DECODER_URL, DRACO_EXTERNAL_LIBRARIES, DRACO_EXTERNAL_LIBRARY_URLS, loadDecoderPromise;
|
|
7737
7771
|
var init_draco_module_loader = __esm({
|
|
7738
7772
|
"../draco/src/lib/draco-module-loader.ts"() {
|
|
7739
7773
|
init_src();
|
|
7740
7774
|
DRACO_DECODER_VERSION = "1.5.5";
|
|
7741
7775
|
DRACO_ENCODER_VERSION = "1.4.1";
|
|
7742
7776
|
STATIC_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_DECODER_VERSION}`;
|
|
7743
|
-
|
|
7744
|
-
|
|
7745
|
-
|
|
7746
|
-
|
|
7777
|
+
DRACO_EXTERNAL_LIBRARIES = {
|
|
7778
|
+
DECODER: "draco_wasm_wrapper.js",
|
|
7779
|
+
DECODER_WASM: "draco_decoder.wasm",
|
|
7780
|
+
FALLBACK_DECODER: "draco_decoder.js",
|
|
7781
|
+
ENCODER: "draco_encoder.js"
|
|
7782
|
+
};
|
|
7783
|
+
DRACO_EXTERNAL_LIBRARY_URLS = {
|
|
7784
|
+
[DRACO_EXTERNAL_LIBRARIES.DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER}`,
|
|
7785
|
+
[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER_WASM}`,
|
|
7786
|
+
[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER}`,
|
|
7787
|
+
[DRACO_EXTERNAL_LIBRARIES.ENCODER]: `https://raw.githubusercontent.com/google/draco/${DRACO_ENCODER_VERSION}/javascript/${DRACO_EXTERNAL_LIBRARIES.ENCODER}`
|
|
7788
|
+
};
|
|
7747
7789
|
}
|
|
7748
7790
|
});
|
|
7749
7791
|
|
|
@@ -7779,25 +7821,25 @@
|
|
|
7779
7821
|
});
|
|
7780
7822
|
|
|
7781
7823
|
// ../textures/src/lib/parsers/basis-module-loader.ts
|
|
7782
|
-
async function
|
|
7824
|
+
async function loadBasisTranscoderModule(options) {
|
|
7783
7825
|
const modules = options.modules || {};
|
|
7784
7826
|
if (modules.basis) {
|
|
7785
7827
|
return modules.basis;
|
|
7786
7828
|
}
|
|
7787
|
-
loadBasisTranscoderPromise = loadBasisTranscoderPromise ||
|
|
7829
|
+
loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTranscoder(options);
|
|
7788
7830
|
return await loadBasisTranscoderPromise;
|
|
7789
7831
|
}
|
|
7790
|
-
async function
|
|
7832
|
+
async function loadBasisTranscoder(options) {
|
|
7791
7833
|
let BASIS = null;
|
|
7792
7834
|
let wasmBinary = null;
|
|
7793
7835
|
[BASIS, wasmBinary] = await Promise.all([
|
|
7794
|
-
await loadLibrary(
|
|
7795
|
-
await loadLibrary(
|
|
7836
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, "textures", options),
|
|
7837
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, "textures", options)
|
|
7796
7838
|
]);
|
|
7797
7839
|
BASIS = BASIS || globalThis.BASIS;
|
|
7798
|
-
return await
|
|
7840
|
+
return await initializeBasisTranscoderModule(BASIS, wasmBinary);
|
|
7799
7841
|
}
|
|
7800
|
-
function
|
|
7842
|
+
function initializeBasisTranscoderModule(BasisModule, wasmBinary) {
|
|
7801
7843
|
const options = {};
|
|
7802
7844
|
if (wasmBinary) {
|
|
7803
7845
|
options.wasmBinary = wasmBinary;
|
|
@@ -7822,8 +7864,8 @@
|
|
|
7822
7864
|
let BASIS_ENCODER = null;
|
|
7823
7865
|
let wasmBinary = null;
|
|
7824
7866
|
[BASIS_ENCODER, wasmBinary] = await Promise.all([
|
|
7825
|
-
await loadLibrary(
|
|
7826
|
-
await loadLibrary(
|
|
7867
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER, "textures", options),
|
|
7868
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, "textures", options)
|
|
7827
7869
|
]);
|
|
7828
7870
|
BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
|
|
7829
7871
|
return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
|
|
@@ -7841,13 +7883,16 @@
|
|
|
7841
7883
|
});
|
|
7842
7884
|
});
|
|
7843
7885
|
}
|
|
7844
|
-
var
|
|
7886
|
+
var BASIS_EXTERNAL_LIBRARIES, loadBasisTranscoderPromise, loadBasisEncoderPromise;
|
|
7845
7887
|
var init_basis_module_loader = __esm({
|
|
7846
7888
|
"../textures/src/lib/parsers/basis-module-loader.ts"() {
|
|
7847
7889
|
init_src();
|
|
7848
|
-
|
|
7849
|
-
|
|
7850
|
-
|
|
7890
|
+
BASIS_EXTERNAL_LIBRARIES = {
|
|
7891
|
+
TRANSCODER: "basis_transcoder.js",
|
|
7892
|
+
TRANSCODER_WASM: "basis_transcoder.wasm",
|
|
7893
|
+
ENCODER: "basis_encoder.js",
|
|
7894
|
+
ENCODER_WASM: "basis_encoder.wasm"
|
|
7895
|
+
};
|
|
7851
7896
|
}
|
|
7852
7897
|
});
|
|
7853
7898
|
|
|
@@ -8223,7 +8268,7 @@
|
|
|
8223
8268
|
const fileConstructors = await loadBasisEncoderModule(options);
|
|
8224
8269
|
return parseKTX2File(fileConstructors.KTX2File, data, options);
|
|
8225
8270
|
}
|
|
8226
|
-
const { BasisFile } = await
|
|
8271
|
+
const { BasisFile } = await loadBasisTranscoderModule(options);
|
|
8227
8272
|
return parseBasisFile(BasisFile, data, options);
|
|
8228
8273
|
}
|
|
8229
8274
|
switch (options.basis.module) {
|
|
@@ -8238,7 +8283,7 @@
|
|
|
8238
8283
|
}
|
|
8239
8284
|
case "transcoder":
|
|
8240
8285
|
default:
|
|
8241
|
-
const { BasisFile } = await
|
|
8286
|
+
const { BasisFile } = await loadBasisTranscoderModule(options);
|
|
8242
8287
|
return parseBasisFile(BasisFile, data, options);
|
|
8243
8288
|
}
|
|
8244
8289
|
}
|
|
@@ -8830,9 +8875,9 @@
|
|
|
8830
8875
|
}
|
|
8831
8876
|
return attributeUrls;
|
|
8832
8877
|
}
|
|
8833
|
-
function generateTilesetAttributeUrls(tileset, resource) {
|
|
8878
|
+
function generateTilesetAttributeUrls(tileset, url, resource) {
|
|
8834
8879
|
const attributeUrls = [];
|
|
8835
|
-
const { attributeStorageInfo
|
|
8880
|
+
const { attributeStorageInfo = [] } = tileset;
|
|
8836
8881
|
for (let index = 0; index < attributeStorageInfo.length; index++) {
|
|
8837
8882
|
const fileName = attributeStorageInfo[index].key;
|
|
8838
8883
|
attributeUrls.push(`${url}/nodes/${resource}/attributes/${fileName}/0`);
|
|
@@ -8993,20 +9038,20 @@
|
|
|
8993
9038
|
}
|
|
8994
9039
|
return value;
|
|
8995
9040
|
}
|
|
8996
|
-
var
|
|
9041
|
+
var VERSION8, EMPTY_VALUE, REJECTED_STATUS, I3SAttributeLoader;
|
|
8997
9042
|
var init_i3s_attribute_loader = __esm({
|
|
8998
9043
|
"src/i3s-attribute-loader.ts"() {
|
|
8999
9044
|
init_src3();
|
|
9000
9045
|
init_parse_i3s_attribute();
|
|
9001
9046
|
init_url_utils2();
|
|
9002
|
-
|
|
9047
|
+
VERSION8 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
9003
9048
|
EMPTY_VALUE = "";
|
|
9004
9049
|
REJECTED_STATUS = "rejected";
|
|
9005
9050
|
I3SAttributeLoader = {
|
|
9006
9051
|
name: "I3S Attribute",
|
|
9007
9052
|
id: "i3s-attribute",
|
|
9008
9053
|
module: "i3s",
|
|
9009
|
-
version:
|
|
9054
|
+
version: VERSION8,
|
|
9010
9055
|
mimeTypes: ["application/binary"],
|
|
9011
9056
|
parse: async (arrayBuffer, options) => parseI3STileAttribute(arrayBuffer, options),
|
|
9012
9057
|
extensions: ["bin"],
|
|
@@ -9489,17 +9534,17 @@
|
|
|
9489
9534
|
}
|
|
9490
9535
|
return await parseI3STileContent(data, tileOptions, tilesetOptions, options, context);
|
|
9491
9536
|
}
|
|
9492
|
-
var
|
|
9537
|
+
var VERSION9, I3SContentLoader;
|
|
9493
9538
|
var init_i3s_content_loader = __esm({
|
|
9494
9539
|
"src/i3s-content-loader.ts"() {
|
|
9495
9540
|
init_parse_i3s_tile_content();
|
|
9496
|
-
|
|
9541
|
+
VERSION9 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
9497
9542
|
I3SContentLoader = {
|
|
9498
9543
|
name: "I3S Content (Indexed Scene Layers)",
|
|
9499
9544
|
id: "i3s-content",
|
|
9500
9545
|
module: "i3s",
|
|
9501
9546
|
worker: true,
|
|
9502
|
-
version:
|
|
9547
|
+
version: VERSION9,
|
|
9503
9548
|
mimeTypes: ["application/octet-stream"],
|
|
9504
9549
|
parse: parse3,
|
|
9505
9550
|
extensions: ["bin"],
|
|
@@ -10103,15 +10148,15 @@
|
|
|
10103
10148
|
async function parseNodePage(data, options) {
|
|
10104
10149
|
return JSON.parse(new TextDecoder().decode(data));
|
|
10105
10150
|
}
|
|
10106
|
-
var
|
|
10151
|
+
var VERSION10, I3SNodePageLoader;
|
|
10107
10152
|
var init_i3s_node_page_loader = __esm({
|
|
10108
10153
|
"src/i3s-node-page-loader.ts"() {
|
|
10109
|
-
|
|
10154
|
+
VERSION10 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
10110
10155
|
I3SNodePageLoader = {
|
|
10111
10156
|
name: "I3S Node Page",
|
|
10112
10157
|
id: "i3s-node-page",
|
|
10113
10158
|
module: "i3s",
|
|
10114
|
-
version:
|
|
10159
|
+
version: VERSION10,
|
|
10115
10160
|
mimeTypes: ["application/json"],
|
|
10116
10161
|
parse: parseNodePage,
|
|
10117
10162
|
extensions: ["json"],
|
|
@@ -10130,12 +10175,13 @@
|
|
|
10130
10175
|
init_parse_i3s();
|
|
10131
10176
|
init_url_utils2();
|
|
10132
10177
|
I3SNodePagesTiles = class {
|
|
10133
|
-
constructor(tileset, options) {
|
|
10178
|
+
constructor(tileset, url = "", options) {
|
|
10134
10179
|
this.nodePages = [];
|
|
10135
10180
|
this.pendingNodePages = [];
|
|
10136
10181
|
this.textureDefinitionsSelectedFormats = [];
|
|
10137
10182
|
this.textureLoaderOptions = {};
|
|
10138
10183
|
this.tileset = { ...tileset };
|
|
10184
|
+
this.url = url;
|
|
10139
10185
|
this.nodesPerPage = tileset.nodePages?.nodesPerPage || 64;
|
|
10140
10186
|
this.lodSelectionMetricType = tileset.nodePages?.lodSelectionMetricType;
|
|
10141
10187
|
this.options = options;
|
|
@@ -10145,7 +10191,7 @@
|
|
|
10145
10191
|
async getNodeById(id) {
|
|
10146
10192
|
const pageIndex = Math.floor(id / this.nodesPerPage);
|
|
10147
10193
|
if (!this.nodePages[pageIndex] && !this.pendingNodePages[pageIndex]) {
|
|
10148
|
-
const nodePageUrl = getUrlWithToken(`${this.
|
|
10194
|
+
const nodePageUrl = getUrlWithToken(`${this.url}/nodepages/${pageIndex}`, this.options.i3s?.token);
|
|
10149
10195
|
this.pendingNodePages[pageIndex] = {
|
|
10150
10196
|
status: "Pending",
|
|
10151
10197
|
promise: load(nodePageUrl, I3SNodePageLoader, this.options)
|
|
@@ -10161,10 +10207,10 @@
|
|
|
10161
10207
|
return this.nodePages[pageIndex].nodes[nodeIndex];
|
|
10162
10208
|
}
|
|
10163
10209
|
async formTileFromNodePages(id) {
|
|
10164
|
-
const
|
|
10210
|
+
const node4 = await this.getNodeById(id);
|
|
10165
10211
|
const children = [];
|
|
10166
10212
|
const childNodesPromises = [];
|
|
10167
|
-
for (const child of
|
|
10213
|
+
for (const child of node4.children || []) {
|
|
10168
10214
|
childNodesPromises.push(this.getNodeById(child));
|
|
10169
10215
|
}
|
|
10170
10216
|
const childNodes = await Promise.all(childNodesPromises);
|
|
@@ -10180,25 +10226,25 @@
|
|
|
10180
10226
|
let textureFormat = "jpg";
|
|
10181
10227
|
let attributeUrls = [];
|
|
10182
10228
|
let isDracoGeometry = false;
|
|
10183
|
-
if (
|
|
10184
|
-
const { url, isDracoGeometry: isDracoGeometryResult } =
|
|
10229
|
+
if (node4 && node4.mesh) {
|
|
10230
|
+
const { url, isDracoGeometry: isDracoGeometryResult } = node4.mesh.geometry && this.getContentUrl(node4.mesh.geometry) || { isDracoGeometry: false };
|
|
10185
10231
|
contentUrl = url;
|
|
10186
10232
|
isDracoGeometry = isDracoGeometryResult;
|
|
10187
|
-
const { textureData, materialDefinition: nodeMaterialDefinition } = this.getInformationFromMaterial(
|
|
10233
|
+
const { textureData, materialDefinition: nodeMaterialDefinition } = this.getInformationFromMaterial(node4.mesh.material);
|
|
10188
10234
|
materialDefinition = nodeMaterialDefinition;
|
|
10189
10235
|
textureFormat = textureData.format || textureFormat;
|
|
10190
10236
|
if (textureData.name) {
|
|
10191
|
-
textureUrl = `${this.
|
|
10237
|
+
textureUrl = `${this.url}/nodes/${node4.mesh.material.resource}/textures/${textureData.name}`;
|
|
10192
10238
|
}
|
|
10193
10239
|
if (this.tileset.attributeStorageInfo) {
|
|
10194
|
-
attributeUrls = generateTilesetAttributeUrls(this.tileset,
|
|
10240
|
+
attributeUrls = generateTilesetAttributeUrls(this.tileset, this.url, node4.mesh.attribute.resource);
|
|
10195
10241
|
}
|
|
10196
10242
|
}
|
|
10197
|
-
const lodSelection = this.getLodSelection(
|
|
10243
|
+
const lodSelection = this.getLodSelection(node4);
|
|
10198
10244
|
return normalizeTileNonUrlData({
|
|
10199
10245
|
id: id.toString(),
|
|
10200
10246
|
lodSelection,
|
|
10201
|
-
obb:
|
|
10247
|
+
obb: node4.obb,
|
|
10202
10248
|
contentUrl,
|
|
10203
10249
|
textureUrl,
|
|
10204
10250
|
attributeUrls,
|
|
@@ -10222,23 +10268,23 @@
|
|
|
10222
10268
|
if (geometryIndex !== -1) {
|
|
10223
10269
|
const isDracoGeometry = Boolean(geometryDefinition.geometryBuffers[geometryIndex].compressedAttributes);
|
|
10224
10270
|
result = {
|
|
10225
|
-
url: `${this.
|
|
10271
|
+
url: `${this.url}/nodes/${meshGeometryData.resource}/geometries/${geometryIndex}`,
|
|
10226
10272
|
isDracoGeometry
|
|
10227
10273
|
};
|
|
10228
10274
|
}
|
|
10229
10275
|
return result;
|
|
10230
10276
|
}
|
|
10231
|
-
getLodSelection(
|
|
10277
|
+
getLodSelection(node4) {
|
|
10232
10278
|
const lodSelection = [];
|
|
10233
10279
|
if (this.lodSelectionMetricType === "maxScreenThresholdSQ") {
|
|
10234
10280
|
lodSelection.push({
|
|
10235
10281
|
metricType: "maxScreenThreshold",
|
|
10236
|
-
maxError: Math.sqrt(
|
|
10282
|
+
maxError: Math.sqrt(node4.lodThreshold / (Math.PI * 0.25))
|
|
10237
10283
|
});
|
|
10238
10284
|
}
|
|
10239
10285
|
lodSelection.push({
|
|
10240
10286
|
metricType: this.lodSelectionMetricType,
|
|
10241
|
-
maxError:
|
|
10287
|
+
maxError: node4.lodThreshold
|
|
10242
10288
|
});
|
|
10243
10289
|
return lodSelection;
|
|
10244
10290
|
}
|
|
@@ -10315,11 +10361,14 @@
|
|
|
10315
10361
|
if (tile.attributeData) {
|
|
10316
10362
|
attributeUrls = generateTileAttributeUrls(url, tile);
|
|
10317
10363
|
}
|
|
10364
|
+
const children = tile.children || [];
|
|
10318
10365
|
return normalizeTileNonUrlData({
|
|
10319
10366
|
...tile,
|
|
10367
|
+
children,
|
|
10320
10368
|
url,
|
|
10321
10369
|
contentUrl,
|
|
10322
10370
|
textureUrl,
|
|
10371
|
+
textureFormat: "jpg",
|
|
10323
10372
|
attributeUrls,
|
|
10324
10373
|
isDracoGeometry: false
|
|
10325
10374
|
});
|
|
@@ -10346,19 +10395,20 @@
|
|
|
10346
10395
|
}
|
|
10347
10396
|
const lodMetricType = tile.lodSelection?.[0].metricType;
|
|
10348
10397
|
const lodMetricValue = tile.lodSelection?.[0].maxError;
|
|
10349
|
-
const transformMatrix = tile.transform;
|
|
10350
10398
|
const type = TILE_TYPE.MESH;
|
|
10351
10399
|
const refine = TILE_REFINEMENT.REPLACE;
|
|
10352
|
-
return { ...tile, mbs, boundingVolume, lodMetricType, lodMetricValue,
|
|
10400
|
+
return { ...tile, mbs, boundingVolume, lodMetricType, lodMetricValue, type, refine };
|
|
10353
10401
|
}
|
|
10354
10402
|
async function normalizeTilesetData(tileset, options, context) {
|
|
10355
|
-
|
|
10403
|
+
const url = context.url;
|
|
10404
|
+
let nodePagesTile;
|
|
10405
|
+
let root;
|
|
10356
10406
|
if (tileset.nodePages) {
|
|
10357
|
-
|
|
10358
|
-
|
|
10407
|
+
nodePagesTile = new I3SNodePagesTiles(tileset, url, options);
|
|
10408
|
+
root = await nodePagesTile.formTileFromNodePages(0);
|
|
10359
10409
|
} else {
|
|
10360
10410
|
const rootNodeUrl = getUrlWithToken(`${tileset.url}/nodes/root`, options.i3s?.token);
|
|
10361
|
-
|
|
10411
|
+
root = await load(rootNodeUrl, I3SLoader, {
|
|
10362
10412
|
...options,
|
|
10363
10413
|
i3s: {
|
|
10364
10414
|
...options.i3s,
|
|
@@ -10368,10 +10418,17 @@
|
|
|
10368
10418
|
}
|
|
10369
10419
|
});
|
|
10370
10420
|
}
|
|
10371
|
-
|
|
10372
|
-
|
|
10373
|
-
|
|
10374
|
-
|
|
10421
|
+
return {
|
|
10422
|
+
...tileset,
|
|
10423
|
+
loader: I3SLoader,
|
|
10424
|
+
url,
|
|
10425
|
+
basePath: url,
|
|
10426
|
+
type: TILESET_TYPE.I3S,
|
|
10427
|
+
nodePagesTile,
|
|
10428
|
+
root,
|
|
10429
|
+
lodMetricType: root.lodMetricType,
|
|
10430
|
+
lodMetricValue: root.lodMetricValue
|
|
10431
|
+
};
|
|
10375
10432
|
}
|
|
10376
10433
|
var init_parse_i3s = __esm({
|
|
10377
10434
|
"src/lib/parsers/parse-i3s.ts"() {
|
|
@@ -10381,6 +10438,7 @@
|
|
|
10381
10438
|
init_src8();
|
|
10382
10439
|
init_i3s_nodepages_tiles();
|
|
10383
10440
|
init_url_utils2();
|
|
10441
|
+
init_i3s_loader();
|
|
10384
10442
|
}
|
|
10385
10443
|
});
|
|
10386
10444
|
|
|
@@ -10421,9 +10479,8 @@
|
|
|
10421
10479
|
if (tilesetJson?.layerType === POINT_CLOUD) {
|
|
10422
10480
|
throw new Error("Point Cloud layers currently are not supported by I3SLoader");
|
|
10423
10481
|
}
|
|
10424
|
-
|
|
10425
|
-
|
|
10426
|
-
return tilesetJson;
|
|
10482
|
+
const tilesetPostprocessed = await normalizeTilesetData(tilesetJson, options, context);
|
|
10483
|
+
return tilesetPostprocessed;
|
|
10427
10484
|
}
|
|
10428
10485
|
async function parseTile(data, context) {
|
|
10429
10486
|
data = JSON.parse(new TextDecoder().decode(data));
|
|
@@ -10435,14 +10492,14 @@
|
|
|
10435
10492
|
}
|
|
10436
10493
|
return null;
|
|
10437
10494
|
}
|
|
10438
|
-
var
|
|
10495
|
+
var VERSION11, TILESET_REGEX, TILE_HEADER_REGEX, SLPK_HEX, POINT_CLOUD, I3SLoader;
|
|
10439
10496
|
var init_i3s_loader = __esm({
|
|
10440
10497
|
"src/i3s-loader.ts"() {
|
|
10441
10498
|
init_src3();
|
|
10442
10499
|
init_i3s_content_loader();
|
|
10443
10500
|
init_parse_i3s();
|
|
10444
10501
|
init_constants();
|
|
10445
|
-
|
|
10502
|
+
VERSION11 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
10446
10503
|
TILESET_REGEX = /layers\/[0-9]+$/;
|
|
10447
10504
|
TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
|
|
10448
10505
|
SLPK_HEX = "504b0304";
|
|
@@ -10451,7 +10508,7 @@
|
|
|
10451
10508
|
name: "I3S (Indexed Scene Layers)",
|
|
10452
10509
|
id: "i3s",
|
|
10453
10510
|
module: "i3s",
|
|
10454
|
-
version:
|
|
10511
|
+
version: VERSION11,
|
|
10455
10512
|
mimeTypes: ["application/octet-stream"],
|
|
10456
10513
|
parse: parseI3S,
|
|
10457
10514
|
extensions: ["bin"],
|
|
@@ -11361,7 +11418,7 @@
|
|
|
11361
11418
|
var elems = desc.stat_desc.elems;
|
|
11362
11419
|
var n2, m;
|
|
11363
11420
|
var max_code = -1;
|
|
11364
|
-
var
|
|
11421
|
+
var node4;
|
|
11365
11422
|
s2.heap_len = 0;
|
|
11366
11423
|
s2.heap_max = HEAP_SIZE;
|
|
11367
11424
|
for (n2 = 0; n2 < elems; n2++) {
|
|
@@ -11373,19 +11430,19 @@
|
|
|
11373
11430
|
}
|
|
11374
11431
|
}
|
|
11375
11432
|
while (s2.heap_len < 2) {
|
|
11376
|
-
|
|
11377
|
-
tree[
|
|
11378
|
-
s2.depth[
|
|
11433
|
+
node4 = s2.heap[++s2.heap_len] = max_code < 2 ? ++max_code : 0;
|
|
11434
|
+
tree[node4 * 2] = 1;
|
|
11435
|
+
s2.depth[node4] = 0;
|
|
11379
11436
|
s2.opt_len--;
|
|
11380
11437
|
if (has_stree) {
|
|
11381
|
-
s2.static_len -= stree[
|
|
11438
|
+
s2.static_len -= stree[node4 * 2 + 1];
|
|
11382
11439
|
}
|
|
11383
11440
|
}
|
|
11384
11441
|
desc.max_code = max_code;
|
|
11385
11442
|
for (n2 = s2.heap_len >> 1; n2 >= 1; n2--) {
|
|
11386
11443
|
pqdownheap(s2, tree, n2);
|
|
11387
11444
|
}
|
|
11388
|
-
|
|
11445
|
+
node4 = elems;
|
|
11389
11446
|
do {
|
|
11390
11447
|
n2 = s2.heap[1];
|
|
11391
11448
|
s2.heap[1] = s2.heap[s2.heap_len--];
|
|
@@ -11393,10 +11450,10 @@
|
|
|
11393
11450
|
m = s2.heap[1];
|
|
11394
11451
|
s2.heap[--s2.heap_max] = n2;
|
|
11395
11452
|
s2.heap[--s2.heap_max] = m;
|
|
11396
|
-
tree[
|
|
11397
|
-
s2.depth[
|
|
11398
|
-
tree[n2 * 2 + 1] = tree[m * 2 + 1] =
|
|
11399
|
-
s2.heap[1] =
|
|
11453
|
+
tree[node4 * 2] = tree[n2 * 2] + tree[m * 2];
|
|
11454
|
+
s2.depth[node4] = (s2.depth[n2] >= s2.depth[m] ? s2.depth[n2] : s2.depth[m]) + 1;
|
|
11455
|
+
tree[n2 * 2 + 1] = tree[m * 2 + 1] = node4;
|
|
11456
|
+
s2.heap[1] = node4++;
|
|
11400
11457
|
pqdownheap(s2, tree, 1);
|
|
11401
11458
|
} while (s2.heap_len >= 2);
|
|
11402
11459
|
s2.heap[--s2.heap_max] = s2.heap[1];
|
|
@@ -15396,17 +15453,17 @@
|
|
|
15396
15453
|
async function parseSLPK2(data, options = {}) {
|
|
15397
15454
|
return (await parseSLPK(new DataViewFileProvider(new DataView(data)))).getFile(options.slpk?.path ?? "", options.slpk?.pathMode);
|
|
15398
15455
|
}
|
|
15399
|
-
var
|
|
15456
|
+
var VERSION12, SLPKLoader;
|
|
15400
15457
|
var init_i3s_slpk_loader = __esm({
|
|
15401
15458
|
"src/i3s-slpk-loader.ts"() {
|
|
15402
15459
|
init_parse_slpk();
|
|
15403
15460
|
init_data_view_file_provider();
|
|
15404
|
-
|
|
15461
|
+
VERSION12 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
15405
15462
|
SLPKLoader = {
|
|
15406
15463
|
name: "I3S SLPK (Scene Layer Package)",
|
|
15407
15464
|
id: "slpk",
|
|
15408
15465
|
module: "i3s",
|
|
15409
|
-
version:
|
|
15466
|
+
version: VERSION12,
|
|
15410
15467
|
mimeTypes: ["application/octet-stream"],
|
|
15411
15468
|
parse: parseSLPK2,
|
|
15412
15469
|
extensions: ["slpk"],
|
|
@@ -15459,16 +15516,16 @@
|
|
|
15459
15516
|
}
|
|
15460
15517
|
return parseBuildingSceneLayer(data, context.url);
|
|
15461
15518
|
}
|
|
15462
|
-
var
|
|
15519
|
+
var VERSION13, I3SBuildingSceneLayerLoader;
|
|
15463
15520
|
var init_i3s_building_scene_layer_loader = __esm({
|
|
15464
15521
|
"src/i3s-building-scene-layer-loader.ts"() {
|
|
15465
15522
|
init_parse_i3s_building_scene_layer();
|
|
15466
|
-
|
|
15523
|
+
VERSION13 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
15467
15524
|
I3SBuildingSceneLayerLoader = {
|
|
15468
15525
|
name: "I3S Building Scene Layer",
|
|
15469
15526
|
id: "i3s-building-scene-layer",
|
|
15470
15527
|
module: "i3s",
|
|
15471
|
-
version:
|
|
15528
|
+
version: VERSION13,
|
|
15472
15529
|
mimeTypes: ["application/json"],
|
|
15473
15530
|
parse: parse4,
|
|
15474
15531
|
extensions: ["json"],
|
|
@@ -15549,16 +15606,16 @@
|
|
|
15549
15606
|
async function parse5(data) {
|
|
15550
15607
|
return parseWebscene(data);
|
|
15551
15608
|
}
|
|
15552
|
-
var
|
|
15609
|
+
var VERSION14, ArcGisWebSceneLoader;
|
|
15553
15610
|
var init_arcgis_webscene_loader = __esm({
|
|
15554
15611
|
"src/arcgis-webscene-loader.ts"() {
|
|
15555
15612
|
init_parse_arcgis_webscene();
|
|
15556
|
-
|
|
15613
|
+
VERSION14 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
15557
15614
|
ArcGisWebSceneLoader = {
|
|
15558
15615
|
name: "ArcGIS Web Scene Loader",
|
|
15559
15616
|
id: "arcgis-web-scene",
|
|
15560
15617
|
module: "i3s",
|
|
15561
|
-
version:
|
|
15618
|
+
version: VERSION14,
|
|
15562
15619
|
mimeTypes: ["application/json"],
|
|
15563
15620
|
parse: parse5,
|
|
15564
15621
|
extensions: ["json"],
|
|
@@ -8,7 +8,7 @@ exports.ArcGisWebSceneLoader = void 0;
|
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
10
|
var _parseArcgisWebscene = require("./lib/parsers/parse-arcgis-webscene");
|
|
11
|
-
var VERSION = typeof "4.0.0-alpha.
|
|
11
|
+
var VERSION = typeof "4.0.0-alpha.19" !== 'undefined' ? "4.0.0-alpha.19" : 'beta';
|
|
12
12
|
var ArcGisWebSceneLoader = {
|
|
13
13
|
name: 'ArcGIS Web Scene Loader',
|
|
14
14
|
id: 'arcgis-web-scene',
|
|
@@ -15,7 +15,7 @@ var _parseI3sAttribute = require("./lib/parsers/parse-i3s-attribute");
|
|
|
15
15
|
var _urlUtils = require("./lib/utils/url-utils");
|
|
16
16
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
17
17
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
18
|
-
var VERSION = typeof "4.0.0-alpha.
|
|
18
|
+
var VERSION = typeof "4.0.0-alpha.19" !== 'undefined' ? "4.0.0-alpha.19" : 'latest';
|
|
19
19
|
var EMPTY_VALUE = '';
|
|
20
20
|
var REJECTED_STATUS = 'rejected';
|
|
21
21
|
var I3SAttributeLoader = {
|