@loaders.gl/i3s 3.1.3 → 4.0.0-alpha.5
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/bundle.js +2 -2
- package/dist/bundle.js.map +1 -0
- package/dist/dist.min.js +28 -25
- package/dist/i3s-attribute-loader.js +130 -155
- package/dist/i3s-attribute-loader.js.map +1 -0
- package/dist/i3s-building-scene-layer-loader.js +18 -23
- package/dist/i3s-building-scene-layer-loader.js.map +1 -0
- package/dist/i3s-content-loader.js +22 -25
- package/dist/i3s-content-loader.js.map +1 -0
- package/dist/i3s-content-worker.js +23 -21
- package/dist/i3s-loader.js +81 -84
- package/dist/i3s-loader.js.map +1 -0
- package/dist/i3s-node-page-loader.js +17 -21
- package/dist/i3s-node-page-loader.js.map +1 -0
- package/dist/index.js +6 -14
- package/dist/index.js.map +1 -0
- package/dist/lib/helpers/i3s-nodepages-tiles.js +228 -221
- package/dist/lib/helpers/i3s-nodepages-tiles.js.map +1 -0
- package/dist/lib/parsers/constants.js +63 -85
- package/dist/lib/parsers/constants.js.map +1 -0
- package/dist/lib/parsers/parse-i3s-attribute.js +62 -86
- package/dist/lib/parsers/parse-i3s-attribute.js.map +1 -0
- package/dist/lib/parsers/parse-i3s-building-scene-layer.js +40 -41
- package/dist/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -0
- package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -1
- package/dist/lib/parsers/parse-i3s-tile-content.js +458 -441
- package/dist/lib/parsers/parse-i3s-tile-content.js.map +1 -0
- package/dist/lib/parsers/parse-i3s.js +88 -86
- package/dist/lib/parsers/parse-i3s.js.map +1 -0
- package/dist/lib/utils/convert-i3s-obb-to-mbs.js +8 -19
- package/dist/lib/utils/convert-i3s-obb-to-mbs.js.map +1 -0
- package/dist/lib/utils/url-utils.js +28 -41
- package/dist/lib/utils/url-utils.js.map +1 -0
- package/dist/types.d.ts +2 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +19 -18
- package/dist/types.js.map +1 -0
- package/dist/workers/i3s-content-worker.js +4 -5
- package/dist/workers/i3s-content-worker.js.map +1 -0
- package/package.json +12 -12
- package/src/i3s-building-scene-layer-loader.ts +1 -1
- package/src/i3s-content-loader.ts +1 -1
- package/src/lib/parsers/parse-i3s-tile-content.ts +4 -1
- package/src/types.ts +2 -3
- package/dist/es5/bundle.js +0 -7
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/i3s-attribute-loader.js +0 -249
- package/dist/es5/i3s-attribute-loader.js.map +0 -1
- package/dist/es5/i3s-building-scene-layer-loader.js +0 -58
- package/dist/es5/i3s-building-scene-layer-loader.js.map +0 -1
- package/dist/es5/i3s-content-loader.js +0 -60
- package/dist/es5/i3s-content-loader.js.map +0 -1
- package/dist/es5/i3s-loader.js +0 -233
- package/dist/es5/i3s-loader.js.map +0 -1
- package/dist/es5/i3s-node-page-loader.js +0 -72
- package/dist/es5/i3s-node-page-loader.js.map +0 -1
- package/dist/es5/index.js +0 -52
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/lib/helpers/i3s-nodepages-tiles.js +0 -393
- package/dist/es5/lib/helpers/i3s-nodepages-tiles.js.map +0 -1
- package/dist/es5/lib/parsers/constants.js +0 -89
- package/dist/es5/lib/parsers/constants.js.map +0 -1
- package/dist/es5/lib/parsers/parse-i3s-attribute.js +0 -124
- package/dist/es5/lib/parsers/parse-i3s-attribute.js.map +0 -1
- package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js +0 -86
- package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js.map +0 -1
- package/dist/es5/lib/parsers/parse-i3s-tile-content.js +0 -635
- package/dist/es5/lib/parsers/parse-i3s-tile-content.js.map +0 -1
- package/dist/es5/lib/parsers/parse-i3s.js +0 -155
- package/dist/es5/lib/parsers/parse-i3s.js.map +0 -1
- package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js +0 -24
- package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js.map +0 -1
- package/dist/es5/lib/utils/url-utils.js +0 -40
- package/dist/es5/lib/utils/url-utils.js.map +0 -1
- package/dist/es5/types.js +0 -29
- package/dist/es5/types.js.map +0 -1
- package/dist/es5/workers/i3s-content-worker.js +0 -8
- package/dist/es5/workers/i3s-content-worker.js.map +0 -1
- package/dist/esm/bundle.js +0 -5
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/i3s-attribute-loader.js +0 -152
- package/dist/esm/i3s-attribute-loader.js.map +0 -1
- package/dist/esm/i3s-building-scene-layer-loader.js +0 -21
- package/dist/esm/i3s-building-scene-layer-loader.js.map +0 -1
- package/dist/esm/i3s-content-loader.js +0 -25
- package/dist/esm/i3s-content-loader.js.map +0 -1
- package/dist/esm/i3s-loader.js +0 -97
- package/dist/esm/i3s-loader.js.map +0 -1
- package/dist/esm/i3s-node-page-loader.js +0 -22
- package/dist/esm/i3s-node-page-loader.js.map +0 -1
- package/dist/esm/index.js +0 -6
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/helpers/i3s-nodepages-tiles.js +0 -239
- package/dist/esm/lib/helpers/i3s-nodepages-tiles.js.map +0 -1
- package/dist/esm/lib/parsers/constants.js +0 -67
- package/dist/esm/lib/parsers/constants.js.map +0 -1
- package/dist/esm/lib/parsers/parse-i3s-attribute.js +0 -74
- package/dist/esm/lib/parsers/parse-i3s-attribute.js.map +0 -1
- package/dist/esm/lib/parsers/parse-i3s-building-scene-layer.js +0 -45
- package/dist/esm/lib/parsers/parse-i3s-building-scene-layer.js.map +0 -1
- package/dist/esm/lib/parsers/parse-i3s-tile-content.js +0 -494
- package/dist/esm/lib/parsers/parse-i3s-tile-content.js.map +0 -1
- package/dist/esm/lib/parsers/parse-i3s.js +0 -91
- package/dist/esm/lib/parsers/parse-i3s.js.map +0 -1
- package/dist/esm/lib/utils/convert-i3s-obb-to-mbs.js +0 -9
- package/dist/esm/lib/utils/convert-i3s-obb-to-mbs.js.map +0 -1
- package/dist/esm/lib/utils/url-utils.js +0 -31
- package/dist/esm/lib/utils/url-utils.js.map +0 -1
- package/dist/esm/types.js +0 -21
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/workers/i3s-content-worker.js +0 -4
- package/dist/esm/workers/i3s-content-worker.js.map +0 -1
|
@@ -55,9 +55,8 @@
|
|
|
55
55
|
var nodeVersion = matches && parseFloat(matches[1]) || 0;
|
|
56
56
|
|
|
57
57
|
// ../worker-utils/src/lib/env-utils/version.ts
|
|
58
|
-
var
|
|
59
|
-
|
|
60
|
-
if (typeof __VERSION__ === "undefined") {
|
|
58
|
+
var VERSION = true ? "4.0.0-alpha.5" : DEFAULT_VERSION;
|
|
59
|
+
if (false) {
|
|
61
60
|
console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
|
|
62
61
|
}
|
|
63
62
|
|
|
@@ -459,7 +458,7 @@
|
|
|
459
458
|
}
|
|
460
459
|
|
|
461
460
|
// ../worker-utils/src/lib/worker-api/get-worker-url.ts
|
|
462
|
-
var NPM_TAG = "
|
|
461
|
+
var NPM_TAG = "beta";
|
|
463
462
|
function getWorkerURL(worker, options = {}) {
|
|
464
463
|
const workerOptions = options[worker.id] || {};
|
|
465
464
|
const workerFile = `${worker.id}-worker.js`;
|
|
@@ -494,7 +493,7 @@
|
|
|
494
493
|
|
|
495
494
|
// ../worker-utils/src/lib/library-utils/library-utils.ts
|
|
496
495
|
var node = __toModule(require_require_utils());
|
|
497
|
-
var LATEST = "
|
|
496
|
+
var LATEST = "beta";
|
|
498
497
|
var VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
|
|
499
498
|
var loadLibraryPromises = {};
|
|
500
499
|
async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
|
|
@@ -1002,7 +1001,7 @@
|
|
|
1002
1001
|
var process_ = globals3.process || {};
|
|
1003
1002
|
|
|
1004
1003
|
// ../../node_modules/probe.gl/dist/esm/utils/globals.js
|
|
1005
|
-
var VERSION3 =
|
|
1004
|
+
var VERSION3 = true ? "4.0.0-alpha.5" : "untranspiled source";
|
|
1006
1005
|
var isBrowser4 = isBrowser3();
|
|
1007
1006
|
|
|
1008
1007
|
// ../../node_modules/probe.gl/dist/esm/utils/local-storage.js
|
|
@@ -4305,7 +4304,7 @@
|
|
|
4305
4304
|
};
|
|
4306
4305
|
|
|
4307
4306
|
// ../images/src/lib/utils/version.ts
|
|
4308
|
-
var VERSION4 =
|
|
4307
|
+
var VERSION4 = true ? "4.0.0-alpha.5" : "latest";
|
|
4309
4308
|
|
|
4310
4309
|
// ../images/src/lib/category-api/image-type.ts
|
|
4311
4310
|
var { _parseImageNode } = globalThis;
|
|
@@ -4653,7 +4652,7 @@
|
|
|
4653
4652
|
};
|
|
4654
4653
|
|
|
4655
4654
|
// ../draco/src/lib/utils/version.ts
|
|
4656
|
-
var VERSION5 =
|
|
4655
|
+
var VERSION5 = true ? "4.0.0-alpha.5" : "latest";
|
|
4657
4656
|
|
|
4658
4657
|
// ../draco/src/draco-loader.ts
|
|
4659
4658
|
var DEFAULT_DRACO_OPTIONS = {
|
|
@@ -5637,10 +5636,10 @@
|
|
|
5637
5636
|
}
|
|
5638
5637
|
|
|
5639
5638
|
// ../textures/src/lib/utils/version.ts
|
|
5640
|
-
var VERSION6 =
|
|
5639
|
+
var VERSION6 = true ? "4.0.0-alpha.5" : "beta";
|
|
5641
5640
|
|
|
5642
5641
|
// ../textures/src/lib/parsers/basis-module-loader.ts
|
|
5643
|
-
var VERSION7 =
|
|
5642
|
+
var VERSION7 = true ? "4.0.0-alpha.5" : "beta";
|
|
5644
5643
|
var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION7}/dist/libs/basis_encoder.wasm`;
|
|
5645
5644
|
var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION7}/dist/libs/basis_encoder.js`;
|
|
5646
5645
|
var loadBasisTranscoderPromise;
|
|
@@ -6121,7 +6120,7 @@
|
|
|
6121
6120
|
const basisFile = new BasisFile(new Uint8Array(data));
|
|
6122
6121
|
try {
|
|
6123
6122
|
if (!basisFile.startTranscoding()) {
|
|
6124
|
-
|
|
6123
|
+
throw new Error("Failed to start basis transcoding");
|
|
6125
6124
|
}
|
|
6126
6125
|
const imageCount = basisFile.getNumImages();
|
|
6127
6126
|
const images = [];
|
|
@@ -6147,22 +6146,22 @@
|
|
|
6147
6146
|
const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
|
|
6148
6147
|
const decodedData = new Uint8Array(decodedSize);
|
|
6149
6148
|
if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
|
|
6150
|
-
|
|
6149
|
+
throw new Error("failed to start Basis transcoding");
|
|
6151
6150
|
}
|
|
6152
6151
|
return {
|
|
6153
6152
|
width,
|
|
6154
6153
|
height,
|
|
6155
6154
|
data: decodedData,
|
|
6156
6155
|
compressed,
|
|
6157
|
-
|
|
6158
|
-
|
|
6156
|
+
format,
|
|
6157
|
+
hasAlpha
|
|
6159
6158
|
};
|
|
6160
6159
|
}
|
|
6161
6160
|
function parseKTX2File(KTX2File, data, options) {
|
|
6162
6161
|
const ktx2File = new KTX2File(new Uint8Array(data));
|
|
6163
6162
|
try {
|
|
6164
6163
|
if (!ktx2File.startTranscoding()) {
|
|
6165
|
-
|
|
6164
|
+
throw new Error("failed to start KTX2 transcoding");
|
|
6166
6165
|
}
|
|
6167
6166
|
const levelsCount = ktx2File.getLevels();
|
|
6168
6167
|
const levels = [];
|
|
@@ -6170,7 +6169,7 @@
|
|
|
6170
6169
|
levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
|
|
6171
6170
|
break;
|
|
6172
6171
|
}
|
|
6173
|
-
return levels;
|
|
6172
|
+
return [levels];
|
|
6174
6173
|
} finally {
|
|
6175
6174
|
ktx2File.close();
|
|
6176
6175
|
ktx2File.delete();
|
|
@@ -6182,14 +6181,14 @@
|
|
|
6182
6181
|
const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0, 0, basisFormat);
|
|
6183
6182
|
const decodedData = new Uint8Array(decodedSize);
|
|
6184
6183
|
if (!ktx2File.transcodeImage(decodedData, levelIndex, 0, 0, basisFormat, 0, -1, -1)) {
|
|
6185
|
-
|
|
6184
|
+
throw new Error("Failed to transcode KTX2 image");
|
|
6186
6185
|
}
|
|
6187
6186
|
return {
|
|
6188
6187
|
width,
|
|
6189
6188
|
height,
|
|
6190
6189
|
data: decodedData,
|
|
6191
6190
|
compressed,
|
|
6192
|
-
alphaFlag,
|
|
6191
|
+
hasAlpha: alphaFlag,
|
|
6193
6192
|
format
|
|
6194
6193
|
};
|
|
6195
6194
|
}
|
|
@@ -6575,7 +6574,7 @@
|
|
|
6575
6574
|
containerFormat: "ktx2",
|
|
6576
6575
|
module: "encoder"
|
|
6577
6576
|
};
|
|
6578
|
-
return await parseBasis(arrayBuffer, options);
|
|
6577
|
+
return (await parseBasis(arrayBuffer, options))[0];
|
|
6579
6578
|
}
|
|
6580
6579
|
return parseCompressedTexture(arrayBuffer);
|
|
6581
6580
|
}
|
|
@@ -7309,7 +7308,10 @@
|
|
|
7309
7308
|
tile.content.texture = await parse(arrayBuffer2, loader, options2);
|
|
7310
7309
|
}
|
|
7311
7310
|
} else if (loader === CompressedTextureLoader || loader === BasisLoader) {
|
|
7312
|
-
|
|
7311
|
+
let texture = await load(arrayBuffer2, loader, tile.textureLoaderOptions);
|
|
7312
|
+
if (loader === BasisLoader) {
|
|
7313
|
+
texture = texture[0];
|
|
7314
|
+
}
|
|
7313
7315
|
tile.content.texture = {
|
|
7314
7316
|
compressed: true,
|
|
7315
7317
|
mipmaps: false,
|
|
@@ -7643,7 +7645,7 @@
|
|
|
7643
7645
|
}
|
|
7644
7646
|
|
|
7645
7647
|
// src/i3s-content-loader.ts
|
|
7646
|
-
var VERSION8 =
|
|
7648
|
+
var VERSION8 = true ? "4.0.0-alpha.5" : "beta";
|
|
7647
7649
|
var I3SContentLoader = {
|
|
7648
7650
|
name: "I3S Content (Indexed Scene Layers)",
|
|
7649
7651
|
id: "i3s-content",
|
package/dist/i3s-loader.js
CHANGED
|
@@ -1,100 +1,97 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const parse_i3s_1 = require("./lib/parsers/parse-i3s");
|
|
7
|
-
const constants_1 = require("./lib/parsers/constants");
|
|
8
|
-
// __VERSION__ is injected by babel-plugin-version-inline
|
|
9
|
-
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
10
|
-
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
|
|
1
|
+
import { load, parse } from '@loaders.gl/core';
|
|
2
|
+
import { I3SContentLoader } from './i3s-content-loader';
|
|
3
|
+
import { normalizeTileData, normalizeTilesetData } from './lib/parsers/parse-i3s';
|
|
4
|
+
import { COORDINATE_SYSTEM } from './lib/parsers/constants';
|
|
5
|
+
const VERSION = typeof "4.0.0-alpha.5" !== 'undefined' ? "4.0.0-alpha.5" : 'latest';
|
|
11
6
|
const TILESET_REGEX = /layers\/[0-9]+$/;
|
|
12
7
|
const TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
|
|
13
8
|
const SLPK_HEX = '504b0304';
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
useCompressedTextures: true,
|
|
35
|
-
decodeTextures: true,
|
|
36
|
-
coordinateSystem: constants_1.COORDINATE_SYSTEM.METER_OFFSETS
|
|
37
|
-
}
|
|
9
|
+
export const I3SLoader = {
|
|
10
|
+
name: 'I3S (Indexed Scene Layers)',
|
|
11
|
+
id: 'i3s',
|
|
12
|
+
module: 'i3s',
|
|
13
|
+
version: VERSION,
|
|
14
|
+
mimeTypes: ['application/octet-stream'],
|
|
15
|
+
parse: parseI3S,
|
|
16
|
+
extensions: ['bin'],
|
|
17
|
+
options: {
|
|
18
|
+
i3s: {
|
|
19
|
+
loadContent: true,
|
|
20
|
+
token: null,
|
|
21
|
+
isTileset: 'auto',
|
|
22
|
+
isTileHeader: 'auto',
|
|
23
|
+
tile: null,
|
|
24
|
+
tileset: null,
|
|
25
|
+
useDracoGeometry: true,
|
|
26
|
+
useCompressedTextures: true,
|
|
27
|
+
decodeTextures: true,
|
|
28
|
+
coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS
|
|
38
29
|
}
|
|
30
|
+
}
|
|
39
31
|
};
|
|
32
|
+
|
|
40
33
|
async function parseI3S(data, options, context) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
34
|
+
const url = context.url;
|
|
35
|
+
options.i3s = options.i3s || {};
|
|
36
|
+
const magicNumber = getMagicNumber(data);
|
|
37
|
+
|
|
38
|
+
if (magicNumber === SLPK_HEX) {
|
|
39
|
+
throw new Error('Files with .slpk extention currently are not supported by I3SLoader');
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
let isTileset;
|
|
43
|
+
|
|
44
|
+
if (options.i3s.isTileset === 'auto') {
|
|
45
|
+
isTileset = TILESET_REGEX.test(url);
|
|
46
|
+
} else {
|
|
47
|
+
isTileset = options.i3s.isTileset;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
let isTileHeader;
|
|
51
|
+
|
|
52
|
+
if (options.isTileHeader === 'auto') {
|
|
53
|
+
isTileHeader = TILE_HEADER_REGEX.test(url);
|
|
54
|
+
} else {
|
|
55
|
+
isTileHeader = options.i3s.isTileHeader;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (isTileset) {
|
|
59
|
+
data = await parseTileset(data, options, context);
|
|
60
|
+
} else if (isTileHeader) {
|
|
61
|
+
data = await parseTile(data, options, context);
|
|
62
|
+
|
|
63
|
+
if (options.i3s.loadContent) {
|
|
64
|
+
options.i3s.tile = data;
|
|
65
|
+
await load(data.contentUrl, I3SLoader, options);
|
|
47
66
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
else {
|
|
54
|
-
isTileset = options.i3s.isTileset;
|
|
55
|
-
}
|
|
56
|
-
let isTileHeader;
|
|
57
|
-
if (options.isTileHeader === 'auto') {
|
|
58
|
-
isTileHeader = TILE_HEADER_REGEX.test(url);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
isTileHeader = options.i3s.isTileHeader;
|
|
62
|
-
}
|
|
63
|
-
if (isTileset) {
|
|
64
|
-
data = await parseTileset(data, options, context);
|
|
65
|
-
}
|
|
66
|
-
else if (isTileHeader) {
|
|
67
|
-
data = await parseTile(data, options, context);
|
|
68
|
-
if (options.i3s.loadContent) {
|
|
69
|
-
options.i3s.tile = data;
|
|
70
|
-
await (0, core_1.load)(data.contentUrl, exports.I3SLoader, options);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
data = await parseTileContent(data, options);
|
|
75
|
-
}
|
|
76
|
-
return data;
|
|
67
|
+
} else {
|
|
68
|
+
data = await parseTileContent(data, options);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return data;
|
|
77
72
|
}
|
|
73
|
+
|
|
78
74
|
async function parseTileContent(arrayBuffer, options) {
|
|
79
|
-
|
|
75
|
+
return await parse(arrayBuffer, I3SContentLoader, options);
|
|
80
76
|
}
|
|
77
|
+
|
|
81
78
|
async function parseTileset(data, options, context) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
return tilesetJson;
|
|
79
|
+
const tilesetJson = JSON.parse(new TextDecoder().decode(data));
|
|
80
|
+
tilesetJson.loader = I3SLoader;
|
|
81
|
+
await normalizeTilesetData(tilesetJson, options, context);
|
|
82
|
+
return tilesetJson;
|
|
87
83
|
}
|
|
84
|
+
|
|
88
85
|
async function parseTile(data, options, context) {
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
data = JSON.parse(new TextDecoder().decode(data));
|
|
87
|
+
return normalizeTileData(data, options, context);
|
|
91
88
|
}
|
|
89
|
+
|
|
92
90
|
function getMagicNumber(data) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
return null;
|
|
91
|
+
if (data instanceof ArrayBuffer) {
|
|
92
|
+
return [...new Uint8Array(data, 0, 4)].map(value => value.toString(16).padStart(2, '0')).join('');
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return null;
|
|
100
96
|
}
|
|
97
|
+
//# sourceMappingURL=i3s-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/i3s-loader.ts"],"names":["load","parse","I3SContentLoader","normalizeTileData","normalizeTilesetData","COORDINATE_SYSTEM","VERSION","TILESET_REGEX","TILE_HEADER_REGEX","SLPK_HEX","I3SLoader","name","id","module","version","mimeTypes","parseI3S","extensions","options","i3s","loadContent","token","isTileset","isTileHeader","tile","tileset","useDracoGeometry","useCompressedTextures","decodeTextures","coordinateSystem","METER_OFFSETS","data","context","url","magicNumber","getMagicNumber","Error","test","parseTileset","parseTile","contentUrl","parseTileContent","arrayBuffer","tilesetJson","JSON","TextDecoder","decode","loader","ArrayBuffer","Uint8Array","map","value","toString","padStart","join"],"mappings":"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","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {load, parse} from '@loaders.gl/core';\nimport {I3SContentLoader} from './i3s-content-loader';\nimport {normalizeTileData, normalizeTilesetData} from './lib/parsers/parse-i3s';\nimport {COORDINATE_SYSTEM} from './lib/parsers/constants';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nconst TILESET_REGEX = /layers\\/[0-9]+$/;\nconst TILE_HEADER_REGEX = /nodes\\/([0-9-]+|root)$/;\nconst SLPK_HEX = '504b0304';\n\n/**\n * Loader for I3S - Indexed 3D Scene Layer\n */\nexport const I3SLoader: LoaderWithParser = {\n name: 'I3S (Indexed Scene Layers)',\n id: 'i3s',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/octet-stream'],\n parse: parseI3S,\n extensions: ['bin'],\n options: {\n i3s: {\n loadContent: true,\n token: null,\n isTileset: 'auto',\n isTileHeader: 'auto',\n tile: null,\n tileset: null,\n useDracoGeometry: true,\n useCompressedTextures: true,\n decodeTextures: true,\n coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS\n }\n }\n};\n\nasync function parseI3S(data, options, context) {\n const url = context.url;\n options.i3s = options.i3s || {};\n const magicNumber = getMagicNumber(data);\n\n // check if file is slpk\n if (magicNumber === SLPK_HEX) {\n throw new Error('Files with .slpk extention currently are not supported by I3SLoader');\n }\n\n // auto detect file type based on url\n let isTileset;\n if (options.i3s.isTileset === 'auto') {\n isTileset = TILESET_REGEX.test(url);\n } else {\n isTileset = options.i3s.isTileset;\n }\n\n let isTileHeader;\n if (options.isTileHeader === 'auto') {\n isTileHeader = TILE_HEADER_REGEX.test(url);\n } else {\n isTileHeader = options.i3s.isTileHeader;\n }\n\n if (isTileset) {\n data = await parseTileset(data, options, context);\n } else if (isTileHeader) {\n data = await parseTile(data, options, context);\n if (options.i3s.loadContent) {\n options.i3s.tile = data;\n await load(data.contentUrl, I3SLoader, options);\n }\n } else {\n data = await parseTileContent(data, options);\n }\n\n return data;\n}\n\nasync function parseTileContent(arrayBuffer, options) {\n return await parse(arrayBuffer, I3SContentLoader, options);\n}\n\nasync function parseTileset(data, options, context) {\n const tilesetJson = JSON.parse(new TextDecoder().decode(data));\n // eslint-disable-next-line no-use-before-define\n tilesetJson.loader = I3SLoader;\n await normalizeTilesetData(tilesetJson, options, context);\n\n return tilesetJson;\n}\n\nasync function parseTile(data, options, context) {\n data = JSON.parse(new TextDecoder().decode(data));\n return normalizeTileData(data, options, context);\n}\n\nfunction getMagicNumber(data) {\n if (data instanceof ArrayBuffer) {\n // slice binary data (4 bytes from the beginning) and transform it to hexadecimal numeral system\n return [...new Uint8Array(data, 0, 4)]\n .map((value) => value.toString(16).padStart(2, '0'))\n .join('');\n }\n return null;\n}\n"],"file":"i3s-loader.js"}
|
|
@@ -1,26 +1,22 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
exports.I3SNodePageLoader = void 0;
|
|
4
|
-
// __VERSION__ is injected by babel-plugin-version-inline
|
|
5
|
-
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
6
|
-
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
|
|
1
|
+
const VERSION = typeof "4.0.0-alpha.5" !== 'undefined' ? "4.0.0-alpha.5" : 'latest';
|
|
2
|
+
|
|
7
3
|
async function parseNodePage(data) {
|
|
8
|
-
|
|
4
|
+
return JSON.parse(new TextDecoder().decode(data));
|
|
9
5
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
extensions: ['json'],
|
|
21
|
-
options: {}
|
|
6
|
+
|
|
7
|
+
export const I3SNodePageLoader = {
|
|
8
|
+
name: 'I3S Node Page',
|
|
9
|
+
id: 'i3s-node-page',
|
|
10
|
+
module: 'i3s',
|
|
11
|
+
version: VERSION,
|
|
12
|
+
mimeTypes: ['application/json'],
|
|
13
|
+
parse,
|
|
14
|
+
extensions: ['json'],
|
|
15
|
+
options: {}
|
|
22
16
|
};
|
|
17
|
+
|
|
23
18
|
async function parse(data) {
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
data = parseNodePage(data);
|
|
20
|
+
return data;
|
|
26
21
|
}
|
|
22
|
+
//# sourceMappingURL=i3s-node-page-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/i3s-node-page-loader.ts"],"names":["VERSION","parseNodePage","data","JSON","parse","TextDecoder","decode","I3SNodePageLoader","name","id","module","version","mimeTypes","extensions","options"],"mappings":"AAIA,MAAMA,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE;;AAEA,eAAeC,aAAf,CAA6BC,IAA7B,EAAmC;AACjC,SAAOC,IAAI,CAACC,KAAL,CAAW,IAAIC,WAAJ,GAAkBC,MAAlB,CAAyBJ,IAAzB,CAAX,CAAP;AACD;;AAKD,OAAO,MAAMK,iBAAmC,GAAG;AACjDC,EAAAA,IAAI,EAAE,eAD2C;AAEjDC,EAAAA,EAAE,EAAE,eAF6C;AAGjDC,EAAAA,MAAM,EAAE,KAHyC;AAIjDC,EAAAA,OAAO,EAAEX,OAJwC;AAKjDY,EAAAA,SAAS,EAAE,CAAC,kBAAD,CALsC;AAMjDR,EAAAA,KANiD;AAOjDS,EAAAA,UAAU,EAAE,CAAC,MAAD,CAPqC;AAQjDC,EAAAA,OAAO,EAAE;AARwC,CAA5C;;AAWP,eAAeV,KAAf,CAAqBF,IAArB,EAA2B;AACzBA,EAAAA,IAAI,GAAGD,aAAa,CAACC,IAAD,CAApB;AACA,SAAOA,IAAP;AACD","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nasync function parseNodePage(data) {\n return JSON.parse(new TextDecoder().decode(data));\n}\n\n/**\n * Loader for I3S node pages\n */\nexport const I3SNodePageLoader: LoaderWithParser = {\n name: 'I3S Node Page',\n id: 'i3s-node-page',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/json'],\n parse,\n extensions: ['json'],\n options: {}\n};\n\nasync function parse(data) {\n data = parseNodePage(data);\n return data;\n}\n"],"file":"i3s-node-page-loader.js"}
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "I3SContentLoader", { enumerable: true, get: function () { return i3s_content_loader_1.I3SContentLoader; } });
|
|
8
|
-
var i3s_attribute_loader_1 = require("./i3s-attribute-loader");
|
|
9
|
-
Object.defineProperty(exports, "I3SAttributeLoader", { enumerable: true, get: function () { return i3s_attribute_loader_1.I3SAttributeLoader; } });
|
|
10
|
-
Object.defineProperty(exports, "loadFeatureAttributes", { enumerable: true, get: function () { return i3s_attribute_loader_1.loadFeatureAttributes; } });
|
|
11
|
-
var i3s_building_scene_layer_loader_1 = require("./i3s-building-scene-layer-loader");
|
|
12
|
-
Object.defineProperty(exports, "I3SBuildingSceneLayerLoader", { enumerable: true, get: function () { return i3s_building_scene_layer_loader_1.I3SBuildingSceneLayerLoader; } });
|
|
13
|
-
var constants_1 = require("./lib/parsers/constants");
|
|
14
|
-
Object.defineProperty(exports, "COORDINATE_SYSTEM", { enumerable: true, get: function () { return constants_1.COORDINATE_SYSTEM; } });
|
|
1
|
+
export { I3SLoader } from './i3s-loader';
|
|
2
|
+
export { I3SContentLoader } from './i3s-content-loader';
|
|
3
|
+
export { I3SAttributeLoader, loadFeatureAttributes } from './i3s-attribute-loader';
|
|
4
|
+
export { I3SBuildingSceneLayerLoader } from './i3s-building-scene-layer-loader';
|
|
5
|
+
export { COORDINATE_SYSTEM } from './lib/parsers/constants';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["I3SLoader","I3SContentLoader","I3SAttributeLoader","loadFeatureAttributes","I3SBuildingSceneLayerLoader","COORDINATE_SYSTEM"],"mappings":"AAAA,SAAQA,SAAR,QAAwB,cAAxB;AACA,SAAQC,gBAAR,QAA+B,sBAA/B;AACA,SAAQC,kBAAR,EAA4BC,qBAA5B,QAAwD,wBAAxD;AACA,SAAQC,2BAAR,QAA0C,mCAA1C;AAuBA,SAAQC,iBAAR,QAAgC,yBAAhC","sourcesContent":["export {I3SLoader} from './i3s-loader';\nexport {I3SContentLoader} from './i3s-content-loader';\nexport {I3SAttributeLoader, loadFeatureAttributes} from './i3s-attribute-loader';\nexport {I3SBuildingSceneLayerLoader} from './i3s-building-scene-layer-loader';\nexport type {\n BoundingVolumes,\n Mbs,\n Obb,\n SceneLayer3D,\n AttributeStorageInfo,\n Field,\n ESRIField,\n PopupInfo,\n Node3DIndexDocument,\n LodSelection,\n NodeReference,\n Resource,\n MaxScreenThresholdSQ,\n NodeInPage,\n SharedResources,\n Attribute,\n Extent,\n FeatureAttribute,\n FieldInfo,\n I3SMaterialDefinition\n} from './types';\nexport {COORDINATE_SYSTEM} from './lib/parsers/constants';\n"],"file":"index.js"}
|