@loaders.gl/i3s 4.0.0-alpha.16 → 4.0.0-alpha.18
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 +97 -58
- 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 +29 -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 +20 -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 +53 -26
- 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 +21 -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 +102 -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 +25 -16
- package/src/lib/utils/url-utils.ts +6 -5
- package/src/types.ts +99 -35
|
@@ -32,6 +32,12 @@
|
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
+
// (disabled):../core/src/lib/fetch/fetch-file.node
|
|
36
|
+
var require_fetch_file = __commonJS({
|
|
37
|
+
"(disabled):../core/src/lib/fetch/fetch-file.node"() {
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
|
|
35
41
|
// ../loader-utils/src/lib/env-utils/assert.ts
|
|
36
42
|
function assert(condition, message) {
|
|
37
43
|
if (!condition) {
|
|
@@ -55,7 +61,7 @@
|
|
|
55
61
|
var nodeVersion = matches && parseFloat(matches[1]) || 0;
|
|
56
62
|
|
|
57
63
|
// ../worker-utils/src/lib/env-utils/version.ts
|
|
58
|
-
var VERSION = true ? "4.0.0-alpha.
|
|
64
|
+
var VERSION = true ? "4.0.0-alpha.18" : DEFAULT_VERSION;
|
|
59
65
|
if (false) {
|
|
60
66
|
console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
|
|
61
67
|
}
|
|
@@ -587,8 +593,7 @@
|
|
|
587
593
|
}
|
|
588
594
|
async function loadLibraryFromFile(libraryUrl) {
|
|
589
595
|
if (libraryUrl.endsWith("wasm")) {
|
|
590
|
-
|
|
591
|
-
return await response2.arrayBuffer();
|
|
596
|
+
return await loadAsArrayBuffer(libraryUrl);
|
|
592
597
|
}
|
|
593
598
|
if (!isBrowser2) {
|
|
594
599
|
try {
|
|
@@ -600,8 +605,7 @@
|
|
|
600
605
|
if (isWorker) {
|
|
601
606
|
return importScripts(libraryUrl);
|
|
602
607
|
}
|
|
603
|
-
const
|
|
604
|
-
const scriptSource = await response.text();
|
|
608
|
+
const scriptSource = await loadAsText(libraryUrl);
|
|
605
609
|
return loadLibraryFromString(scriptSource, libraryUrl);
|
|
606
610
|
}
|
|
607
611
|
function loadLibraryFromString(scriptSource, id) {
|
|
@@ -622,6 +626,20 @@
|
|
|
622
626
|
document.body.appendChild(script);
|
|
623
627
|
return null;
|
|
624
628
|
}
|
|
629
|
+
async function loadAsArrayBuffer(url) {
|
|
630
|
+
if (!node.readFileAsArrayBuffer || url.startsWith("http")) {
|
|
631
|
+
const response = await fetch(url);
|
|
632
|
+
return await response.arrayBuffer();
|
|
633
|
+
}
|
|
634
|
+
return await node.readFileAsArrayBuffer(url);
|
|
635
|
+
}
|
|
636
|
+
async function loadAsText(url) {
|
|
637
|
+
if (!node.readFileAsText || url.startsWith("http")) {
|
|
638
|
+
const response = await fetch(url);
|
|
639
|
+
return await response.text();
|
|
640
|
+
}
|
|
641
|
+
return await node.readFileAsText(url);
|
|
642
|
+
}
|
|
625
643
|
|
|
626
644
|
// ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
|
|
627
645
|
var requestId = 0;
|
|
@@ -1191,16 +1209,25 @@
|
|
|
1191
1209
|
}
|
|
1192
1210
|
|
|
1193
1211
|
// ../core/src/lib/fetch/fetch-file.ts
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1212
|
+
var node3 = __toModule(require_fetch_file());
|
|
1213
|
+
function isNodePath(url) {
|
|
1214
|
+
return !isRequestURL(url) && !isDataURL(url);
|
|
1215
|
+
}
|
|
1216
|
+
function isRequestURL(url) {
|
|
1217
|
+
return url.startsWith("http:") || url.startsWith("https:");
|
|
1218
|
+
}
|
|
1219
|
+
function isDataURL(url) {
|
|
1220
|
+
return url.startsWith("data:");
|
|
1221
|
+
}
|
|
1222
|
+
async function fetchFile(urlOrData, fetchOptions) {
|
|
1223
|
+
if (typeof urlOrData === "string") {
|
|
1224
|
+
const url = resolvePath(urlOrData);
|
|
1225
|
+
if (isNodePath(url) && node3?.fetchFileNode) {
|
|
1226
|
+
return node3.fetchFileNode(url, fetchOptions);
|
|
1200
1227
|
}
|
|
1201
1228
|
return await fetch(url, fetchOptions);
|
|
1202
1229
|
}
|
|
1203
|
-
return await makeResponse(
|
|
1230
|
+
return await makeResponse(urlOrData);
|
|
1204
1231
|
}
|
|
1205
1232
|
|
|
1206
1233
|
// ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/is-electron.js
|
|
@@ -1234,7 +1261,7 @@
|
|
|
1234
1261
|
var navigator_ = globalThis.navigator || {};
|
|
1235
1262
|
|
|
1236
1263
|
// ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/utils/globals.js
|
|
1237
|
-
var VERSION3 = true ? "4.0.0-alpha.
|
|
1264
|
+
var VERSION3 = true ? "4.0.0-alpha.18" : "untranspiled source";
|
|
1238
1265
|
var isBrowser4 = isBrowser3();
|
|
1239
1266
|
|
|
1240
1267
|
// ../../node_modules/@probe.gl/log/dist/utils/local-storage.js
|
|
@@ -4582,7 +4609,7 @@
|
|
|
4582
4609
|
_defineProperty(Ellipsoid, "WGS84", new Ellipsoid(WGS84_RADIUS_X, WGS84_RADIUS_Y, WGS84_RADIUS_Z));
|
|
4583
4610
|
|
|
4584
4611
|
// ../images/src/lib/utils/version.ts
|
|
4585
|
-
var VERSION4 = true ? "4.0.0-alpha.
|
|
4612
|
+
var VERSION4 = true ? "4.0.0-alpha.18" : "latest";
|
|
4586
4613
|
|
|
4587
4614
|
// ../images/src/lib/category-api/image-type.ts
|
|
4588
4615
|
var { _parseImageNode } = globalThis;
|
|
@@ -4979,7 +5006,7 @@
|
|
|
4979
5006
|
};
|
|
4980
5007
|
|
|
4981
5008
|
// ../draco/src/lib/utils/version.ts
|
|
4982
|
-
var VERSION5 = true ? "4.0.0-alpha.
|
|
5009
|
+
var VERSION5 = true ? "4.0.0-alpha.18" : "latest";
|
|
4983
5010
|
|
|
4984
5011
|
// ../draco/src/draco-loader.ts
|
|
4985
5012
|
var DEFAULT_DRACO_OPTIONS = {
|
|
@@ -5524,22 +5551,22 @@
|
|
|
5524
5551
|
}
|
|
5525
5552
|
|
|
5526
5553
|
// ../textures/src/lib/utils/version.ts
|
|
5527
|
-
var VERSION6 = true ? "4.0.0-alpha.
|
|
5554
|
+
var VERSION6 = true ? "4.0.0-alpha.18" : "beta";
|
|
5528
5555
|
|
|
5529
5556
|
// ../textures/src/lib/parsers/basis-module-loader.ts
|
|
5530
|
-
var VERSION7 = true ? "4.0.0-alpha.
|
|
5557
|
+
var VERSION7 = true ? "4.0.0-alpha.18" : "beta";
|
|
5531
5558
|
var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION7}/dist/libs/basis_encoder.wasm`;
|
|
5532
5559
|
var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION7}/dist/libs/basis_encoder.js`;
|
|
5533
5560
|
var loadBasisTranscoderPromise;
|
|
5534
|
-
async function
|
|
5561
|
+
async function loadBasisTranscoderModule(options) {
|
|
5535
5562
|
const modules = options.modules || {};
|
|
5536
5563
|
if (modules.basis) {
|
|
5537
5564
|
return modules.basis;
|
|
5538
5565
|
}
|
|
5539
|
-
loadBasisTranscoderPromise = loadBasisTranscoderPromise ||
|
|
5566
|
+
loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTranscoder(options);
|
|
5540
5567
|
return await loadBasisTranscoderPromise;
|
|
5541
5568
|
}
|
|
5542
|
-
async function
|
|
5569
|
+
async function loadBasisTranscoder(options) {
|
|
5543
5570
|
let BASIS = null;
|
|
5544
5571
|
let wasmBinary = null;
|
|
5545
5572
|
[BASIS, wasmBinary] = await Promise.all([
|
|
@@ -5547,9 +5574,9 @@
|
|
|
5547
5574
|
await loadLibrary("basis_transcoder.wasm", "textures", options)
|
|
5548
5575
|
]);
|
|
5549
5576
|
BASIS = BASIS || globalThis.BASIS;
|
|
5550
|
-
return await
|
|
5577
|
+
return await initializeBasisTranscoderModule(BASIS, wasmBinary);
|
|
5551
5578
|
}
|
|
5552
|
-
function
|
|
5579
|
+
function initializeBasisTranscoderModule(BasisModule, wasmBinary) {
|
|
5553
5580
|
const options = {};
|
|
5554
5581
|
if (wasmBinary) {
|
|
5555
5582
|
options.wasmBinary = wasmBinary;
|
|
@@ -5985,7 +6012,7 @@
|
|
|
5985
6012
|
const fileConstructors = await loadBasisEncoderModule(options);
|
|
5986
6013
|
return parseKTX2File(fileConstructors.KTX2File, data, options);
|
|
5987
6014
|
}
|
|
5988
|
-
const { BasisFile } = await
|
|
6015
|
+
const { BasisFile } = await loadBasisTranscoderModule(options);
|
|
5989
6016
|
return parseBasisFile(BasisFile, data, options);
|
|
5990
6017
|
}
|
|
5991
6018
|
switch (options.basis.module) {
|
|
@@ -6000,7 +6027,7 @@
|
|
|
6000
6027
|
}
|
|
6001
6028
|
case "transcoder":
|
|
6002
6029
|
default:
|
|
6003
|
-
const { BasisFile } = await
|
|
6030
|
+
const { BasisFile } = await loadBasisTranscoderModule(options);
|
|
6004
6031
|
return parseBasisFile(BasisFile, data, options);
|
|
6005
6032
|
}
|
|
6006
6033
|
}
|
|
@@ -7213,7 +7240,7 @@
|
|
|
7213
7240
|
}
|
|
7214
7241
|
|
|
7215
7242
|
// src/i3s-attribute-loader.ts
|
|
7216
|
-
var VERSION8 = true ? "4.0.0-alpha.
|
|
7243
|
+
var VERSION8 = true ? "4.0.0-alpha.18" : "latest";
|
|
7217
7244
|
var I3SAttributeLoader = {
|
|
7218
7245
|
name: "I3S Attribute",
|
|
7219
7246
|
id: "i3s-attribute",
|
|
@@ -7676,7 +7703,7 @@
|
|
|
7676
7703
|
}
|
|
7677
7704
|
|
|
7678
7705
|
// src/i3s-content-loader.ts
|
|
7679
|
-
var VERSION9 = true ? "4.0.0-alpha.
|
|
7706
|
+
var VERSION9 = true ? "4.0.0-alpha.18" : "beta";
|
|
7680
7707
|
var I3SContentLoader = {
|
|
7681
7708
|
name: "I3S Content (Indexed Scene Layers)",
|
|
7682
7709
|
id: "i3s-content",
|
package/dist/i3s-loader.js
CHANGED
|
@@ -82,10 +82,8 @@ async function parseTileset(data, options, context) {
|
|
|
82
82
|
if (tilesetJson?.layerType === POINT_CLOUD) {
|
|
83
83
|
throw new Error('Point Cloud layers currently are not supported by I3SLoader');
|
|
84
84
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
await (0, parse_i3s_1.normalizeTilesetData)(tilesetJson, options, context);
|
|
88
|
-
return tilesetJson;
|
|
85
|
+
const tilesetPostprocessed = await (0, parse_i3s_1.normalizeTilesetData)(tilesetJson, options, context);
|
|
86
|
+
return tilesetPostprocessed;
|
|
89
87
|
}
|
|
90
88
|
async function parseTile(data, context) {
|
|
91
89
|
data = JSON.parse(new TextDecoder().decode(data));
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export type { BoundingVolumes, Mbs, Obb, SceneLayer3D, AttributeStorageInfo, Field, ESRIField, PopupInfo, Node3DIndexDocument, LodSelection, NodeReference, Resource, MaxScreenThresholdSQ, NodeInPage, SharedResources, Attribute, Extent, FeatureAttribute, FieldInfo, I3SMaterialDefinition, TextureDefinitionInfo, MaterialDefinitionInfo, FullExtent, StatisticsInfo, StatsInfo, Histogram, ValueCount, BuildingSceneSublayer, OperationalLayer, TextureSetDefinitionFormats } from './types';
|
|
1
|
+
export type { BoundingVolumes, Mbs, Obb, I3STilesetHeader, I3STileContent, I3STileHeader, SceneLayer3D, AttributeStorageInfo, Field, ESRIField, PopupInfo, Node3DIndexDocument, LodSelection, NodeReference, Resource, MaxScreenThresholdSQ, NodeInPage, SharedResources, Attribute, Extent, FeatureAttribute, FieldInfo, I3SMaterialDefinition, TextureDefinitionInfo, MaterialDefinitionInfo, FullExtent, StatisticsInfo, StatsInfo, Histogram, ValueCount, BuildingSceneSublayer, OperationalLayer, TextureSetDefinitionFormats } from './types';
|
|
2
2
|
export type { FileProvider } from './lib/parsers/parse-zip/file-provider';
|
|
3
|
+
export type { I3SLoaderOptions } from './i3s-loader';
|
|
3
4
|
export { COORDINATE_SYSTEM } from './lib/parsers/constants';
|
|
4
5
|
export { I3SLoader } from './i3s-loader';
|
|
5
6
|
export { SLPKLoader } from './i3s-slpk-loader';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,eAAe,EACf,GAAG,EACH,GAAG,EACH,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AACjB,YAAY,EAAC,YAAY,EAAC,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,eAAe,EACf,GAAG,EACH,GAAG,EACH,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AACjB,YAAY,EAAC,YAAY,EAAC,MAAM,uCAAuC,CAAC;AACxE,YAAY,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAE,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAC,uBAAuB,EAAC,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAC,SAAS,EAAC,MAAM,qCAAqC,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { LoaderOptions } from '@loaders.gl/loader-utils';
|
|
2
|
-
import {
|
|
2
|
+
import { NodePage, NodeInPage, I3STextureFormat, I3STileHeader, SceneLayer3D } from '../../types';
|
|
3
3
|
/**
|
|
4
4
|
* class I3SNodePagesTiles - loads nodePages and form i3s tiles from them
|
|
5
5
|
*/
|
|
6
6
|
export default class I3SNodePagesTiles {
|
|
7
|
-
tileset:
|
|
7
|
+
tileset: SceneLayer3D;
|
|
8
8
|
nodePages: NodePage[];
|
|
9
9
|
pendingNodePages: {
|
|
10
10
|
promise: Promise<NodePage>;
|
|
@@ -18,14 +18,16 @@ export default class I3SNodePagesTiles {
|
|
|
18
18
|
name: string;
|
|
19
19
|
} | null)[];
|
|
20
20
|
nodesInNodePages: number;
|
|
21
|
+
url: string;
|
|
21
22
|
private textureLoaderOptions;
|
|
22
23
|
/**
|
|
23
24
|
* @constructs
|
|
24
25
|
* Create a I3SNodePagesTiles instance.
|
|
25
26
|
* @param tileset - i3s tileset header ('layers/0')
|
|
27
|
+
* @param url - tileset url
|
|
26
28
|
* @param options - i3s loader options
|
|
27
29
|
*/
|
|
28
|
-
constructor(tileset:
|
|
30
|
+
constructor(tileset: SceneLayer3D, url: string | undefined, options: LoaderOptions);
|
|
29
31
|
/**
|
|
30
32
|
* Loads some nodePage and return a particular node from it
|
|
31
33
|
* @param id - id of node through all node pages
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i3s-nodepages-tiles.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/i3s-nodepages-tiles.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"i3s-nodepages-tiles.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/i3s-nodepages-tiles.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAEL,QAAQ,EACR,UAAU,EAIV,gBAAgB,EAEhB,aAAa,EACb,YAAY,EACb,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,QAAQ,EAAE,CAAM;IAC3B,gBAAgB,EAAE;QAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAA;KAAC,EAAE,CAAM;IAClF,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iCAAiC,EAAE,CAAC;QAAC,MAAM,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC,EAAE,CAAM;IAC5F,gBAAgB,EAAE,MAAM,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,oBAAoB,CAA4B;IAExD;;;;;;OAMG;gBACS,OAAO,EAAE,YAAY,EAAE,GAAG,oBAAa,EAAE,OAAO,EAAE,aAAa;IAW3E;;;OAGG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAuBlD;;;OAGG;IAEG,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAgE/D;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IA8BrB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAuBlC;;;;OAIG;IACH,OAAO,CAAC,wCAAwC;IA2BhD;;;OAGG;IACH,OAAO,CAAC,0BAA0B;CAwBnC"}
|
|
@@ -13,14 +13,16 @@ class I3SNodePagesTiles {
|
|
|
13
13
|
* @constructs
|
|
14
14
|
* Create a I3SNodePagesTiles instance.
|
|
15
15
|
* @param tileset - i3s tileset header ('layers/0')
|
|
16
|
+
* @param url - tileset url
|
|
16
17
|
* @param options - i3s loader options
|
|
17
18
|
*/
|
|
18
|
-
constructor(tileset, options) {
|
|
19
|
+
constructor(tileset, url = '', options) {
|
|
19
20
|
this.nodePages = [];
|
|
20
21
|
this.pendingNodePages = [];
|
|
21
22
|
this.textureDefinitionsSelectedFormats = [];
|
|
22
23
|
this.textureLoaderOptions = {};
|
|
23
24
|
this.tileset = { ...tileset }; // spread the tileset to avoid circular reference
|
|
25
|
+
this.url = url;
|
|
24
26
|
this.nodesPerPage = tileset.nodePages?.nodesPerPage || 64;
|
|
25
27
|
this.lodSelectionMetricType = tileset.nodePages?.lodSelectionMetricType;
|
|
26
28
|
this.options = options;
|
|
@@ -34,7 +36,7 @@ class I3SNodePagesTiles {
|
|
|
34
36
|
async getNodeById(id) {
|
|
35
37
|
const pageIndex = Math.floor(id / this.nodesPerPage);
|
|
36
38
|
if (!this.nodePages[pageIndex] && !this.pendingNodePages[pageIndex]) {
|
|
37
|
-
const nodePageUrl = (0, url_utils_1.getUrlWithToken)(`${this.
|
|
39
|
+
const nodePageUrl = (0, url_utils_1.getUrlWithToken)(`${this.url}/nodepages/${pageIndex}`,
|
|
38
40
|
// @ts-expect-error this.options is not properly typed
|
|
39
41
|
this.options.i3s?.token);
|
|
40
42
|
this.pendingNodePages[pageIndex] = {
|
|
@@ -86,10 +88,10 @@ class I3SNodePagesTiles {
|
|
|
86
88
|
materialDefinition = nodeMaterialDefinition;
|
|
87
89
|
textureFormat = textureData.format || textureFormat;
|
|
88
90
|
if (textureData.name) {
|
|
89
|
-
textureUrl = `${this.
|
|
91
|
+
textureUrl = `${this.url}/nodes/${node.mesh.material.resource}/textures/${textureData.name}`;
|
|
90
92
|
}
|
|
91
93
|
if (this.tileset.attributeStorageInfo) {
|
|
92
|
-
attributeUrls = (0, url_utils_1.generateTilesetAttributeUrls)(this.tileset, node.mesh.attribute.resource);
|
|
94
|
+
attributeUrls = (0, url_utils_1.generateTilesetAttributeUrls)(this.tileset, this.url, node.mesh.attribute.resource);
|
|
93
95
|
}
|
|
94
96
|
}
|
|
95
97
|
const lodSelection = this.getLodSelection(node);
|
|
@@ -131,7 +133,7 @@ class I3SNodePagesTiles {
|
|
|
131
133
|
if (geometryIndex !== -1) {
|
|
132
134
|
const isDracoGeometry = Boolean(geometryDefinition.geometryBuffers[geometryIndex].compressedAttributes);
|
|
133
135
|
result = {
|
|
134
|
-
url: `${this.
|
|
136
|
+
url: `${this.url}/nodes/${meshGeometryData.resource}/geometries/${geometryIndex}`,
|
|
135
137
|
isDracoGeometry
|
|
136
138
|
};
|
|
137
139
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { I3STilesetHeader, I3STileHeader, I3SMinimalNodeData, Node3DIndexDocument } from '../../types';
|
|
1
|
+
import { I3STilesetHeader, I3STileHeader, I3SMinimalNodeData, Node3DIndexDocument, SceneLayer3D } from '../../types';
|
|
2
2
|
import type { LoaderOptions, LoaderContext } from '@loaders.gl/loader-utils';
|
|
3
3
|
export declare function normalizeTileData(tile: Node3DIndexDocument, context: LoaderContext): I3STileHeader;
|
|
4
4
|
export declare function normalizeTileNonUrlData(tile: I3SMinimalNodeData): I3STileHeader;
|
|
5
|
-
export declare function normalizeTilesetData(tileset:
|
|
5
|
+
export declare function normalizeTilesetData(tileset: SceneLayer3D, options: LoaderOptions, context: LoaderContext): Promise<I3STilesetHeader>;
|
|
6
6
|
//# sourceMappingURL=parse-i3s.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-i3s.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-i3s.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,gBAAgB,EAChB,aAAa,EAEb,kBAAkB,EAClB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"parse-i3s.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-i3s.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,gBAAgB,EAChB,aAAa,EAEb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAG3E,wBAAgB,iBAAiB,CAAC,IAAI,EAAG,mBAAmB,EAAE,OAAO,EAAE,aAAa,GAAG,aAAa,CA6BnG;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAG,kBAAkB,GAAG,aAAa,CAkChF;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAG,YAAY,EAAE,OAAO,EAAG,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8B7I"}
|
|
@@ -10,6 +10,7 @@ const core_1 = require("@loaders.gl/core");
|
|
|
10
10
|
const tiles_1 = require("@loaders.gl/tiles");
|
|
11
11
|
const i3s_nodepages_tiles_1 = __importDefault(require("../helpers/i3s-nodepages-tiles"));
|
|
12
12
|
const url_utils_1 = require("../utils/url-utils");
|
|
13
|
+
const i3s_loader_1 = require("../../i3s-loader");
|
|
13
14
|
function normalizeTileData(tile, context) {
|
|
14
15
|
const url = context.url || '';
|
|
15
16
|
let contentUrl;
|
|
@@ -24,11 +25,14 @@ function normalizeTileData(tile, context) {
|
|
|
24
25
|
if (tile.attributeData) {
|
|
25
26
|
attributeUrls = (0, url_utils_1.generateTileAttributeUrls)(url, tile);
|
|
26
27
|
}
|
|
28
|
+
const children = tile.children || [];
|
|
27
29
|
return normalizeTileNonUrlData({
|
|
28
30
|
...tile,
|
|
31
|
+
children,
|
|
29
32
|
url,
|
|
30
33
|
contentUrl,
|
|
31
34
|
textureUrl,
|
|
35
|
+
textureFormat: 'jpg',
|
|
32
36
|
attributeUrls,
|
|
33
37
|
isDracoGeometry: false
|
|
34
38
|
});
|
|
@@ -57,26 +61,27 @@ function normalizeTileNonUrlData(tile) {
|
|
|
57
61
|
}
|
|
58
62
|
const lodMetricType = tile.lodSelection?.[0].metricType;
|
|
59
63
|
const lodMetricValue = tile.lodSelection?.[0].maxError;
|
|
60
|
-
const transformMatrix = tile.transform;
|
|
61
64
|
const type = tiles_1.TILE_TYPE.MESH;
|
|
62
65
|
/**
|
|
63
66
|
* I3S specification supports only REPLACE
|
|
64
67
|
*/
|
|
65
68
|
const refine = tiles_1.TILE_REFINEMENT.REPLACE;
|
|
66
|
-
return { ...tile, mbs, boundingVolume, lodMetricType, lodMetricValue,
|
|
69
|
+
return { ...tile, mbs, boundingVolume, lodMetricType, lodMetricValue, type, refine };
|
|
67
70
|
}
|
|
68
71
|
exports.normalizeTileNonUrlData = normalizeTileNonUrlData;
|
|
69
72
|
async function normalizeTilesetData(tileset, options, context) {
|
|
70
|
-
|
|
73
|
+
const url = context.url;
|
|
74
|
+
let nodePagesTile;
|
|
75
|
+
let root;
|
|
71
76
|
if (tileset.nodePages) {
|
|
72
|
-
|
|
73
|
-
|
|
77
|
+
nodePagesTile = new i3s_nodepages_tiles_1.default(tileset, url, options);
|
|
78
|
+
root = await nodePagesTile.formTileFromNodePages(0);
|
|
74
79
|
}
|
|
75
80
|
else {
|
|
76
81
|
// @ts-expect-error options is not properly typed
|
|
77
82
|
const rootNodeUrl = (0, url_utils_1.getUrlWithToken)(`${tileset.url}/nodes/root`, options.i3s?.token);
|
|
78
83
|
// eslint-disable-next-line no-use-before-define
|
|
79
|
-
|
|
84
|
+
root = await (0, core_1.load)(rootNodeUrl, i3s_loader_1.I3SLoader, {
|
|
80
85
|
...options,
|
|
81
86
|
i3s: {
|
|
82
87
|
// @ts-expect-error options is not properly typed
|
|
@@ -85,11 +90,15 @@ async function normalizeTilesetData(tileset, options, context) {
|
|
|
85
90
|
}
|
|
86
91
|
});
|
|
87
92
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
93
|
+
return {
|
|
94
|
+
...tileset,
|
|
95
|
+
url,
|
|
96
|
+
basePath: url,
|
|
97
|
+
type: tiles_1.TILESET_TYPE.I3S,
|
|
98
|
+
nodePagesTile,
|
|
99
|
+
root,
|
|
100
|
+
lodMetricType: root.lodMetricType,
|
|
101
|
+
lodMetricValue: root.lodMetricValue
|
|
102
|
+
};
|
|
94
103
|
}
|
|
95
104
|
exports.normalizeTilesetData = normalizeTilesetData;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Node3DIndexDocument } from '../../types';
|
|
1
|
+
import { Node3DIndexDocument, SceneLayer3D } from '../../types';
|
|
2
2
|
/**
|
|
3
3
|
* Generates url with token if it is exists.
|
|
4
4
|
* @param url
|
|
@@ -14,9 +14,10 @@ export declare function getUrlWithToken(url: string, token?: string | null): str
|
|
|
14
14
|
export declare function generateTileAttributeUrls(url: string, tile: Node3DIndexDocument): string[];
|
|
15
15
|
/**
|
|
16
16
|
* Generates attribute urls for tileset based on tileset and resource
|
|
17
|
-
* @param
|
|
18
|
-
* @param
|
|
17
|
+
* @param tileset - tileset metadata
|
|
18
|
+
* @param url - tileset base url
|
|
19
|
+
* @param resource - resource id per I3S spec
|
|
19
20
|
* @returns {Array}
|
|
20
21
|
*/
|
|
21
|
-
export declare function generateTilesetAttributeUrls(tileset:
|
|
22
|
+
export declare function generateTilesetAttributeUrls(tileset: SceneLayer3D, url: string, resource: number): string[];
|
|
22
23
|
//# sourceMappingURL=url-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/url-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"url-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/url-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAE9D;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW,GAAG,MAAM,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAU1F;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,YAUhG"}
|
|
@@ -28,13 +28,14 @@ function generateTileAttributeUrls(url, tile) {
|
|
|
28
28
|
exports.generateTileAttributeUrls = generateTileAttributeUrls;
|
|
29
29
|
/**
|
|
30
30
|
* Generates attribute urls for tileset based on tileset and resource
|
|
31
|
-
* @param
|
|
32
|
-
* @param
|
|
31
|
+
* @param tileset - tileset metadata
|
|
32
|
+
* @param url - tileset base url
|
|
33
|
+
* @param resource - resource id per I3S spec
|
|
33
34
|
* @returns {Array}
|
|
34
35
|
*/
|
|
35
|
-
function generateTilesetAttributeUrls(tileset, resource) {
|
|
36
|
+
function generateTilesetAttributeUrls(tileset, url, resource) {
|
|
36
37
|
const attributeUrls = [];
|
|
37
|
-
const { attributeStorageInfo
|
|
38
|
+
const { attributeStorageInfo = [] } = tileset;
|
|
38
39
|
for (let index = 0; index < attributeStorageInfo.length; index++) {
|
|
39
40
|
const fileName = attributeStorageInfo[index].key;
|
|
40
41
|
attributeUrls.push(`${url}/nodes/${resource}/attributes/${fileName}/0`);
|