@loaders.gl/i3s 4.0.0-alpha.1 → 4.0.0-alpha.11
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/arcgis-webscene-loader.d.ts +7 -0
- package/dist/arcgis-webscene-loader.d.ts.map +1 -0
- package/dist/arcgis-webscene-loader.js +28 -0
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +2 -2
- package/dist/dist.min.js +15501 -0
- package/dist/es5/arcgis-webscene-loader.js +40 -0
- package/dist/es5/arcgis-webscene-loader.js.map +1 -0
- package/dist/es5/bundle.js +6 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/i3s-attribute-loader.js +195 -0
- package/dist/es5/i3s-attribute-loader.js.map +1 -0
- package/dist/es5/i3s-building-scene-layer-loader.js +46 -0
- package/dist/es5/i3s-building-scene-layer-loader.js.map +1 -0
- package/dist/es5/i3s-content-loader.js +56 -0
- package/dist/es5/i3s-content-loader.js.map +1 -0
- package/dist/es5/i3s-loader.js +193 -0
- package/dist/es5/i3s-loader.js.map +1 -0
- package/dist/es5/i3s-node-page-loader.js +39 -0
- package/dist/es5/i3s-node-page-loader.js.map +1 -0
- package/dist/es5/i3s-slpk-loader.js +20 -0
- package/dist/es5/i3s-slpk-loader.js.map +1 -0
- package/dist/es5/index.js +82 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/lib/helpers/i3s-nodepages-tiles.js +312 -0
- package/dist/es5/lib/helpers/i3s-nodepages-tiles.js.map +1 -0
- package/dist/es5/lib/parsers/constants.js +72 -0
- package/dist/es5/lib/parsers/constants.js.map +1 -0
- package/dist/es5/lib/parsers/parse-arcgis-webscene.js +158 -0
- package/dist/es5/lib/parsers/parse-arcgis-webscene.js.map +1 -0
- package/dist/es5/lib/parsers/parse-i3s-attribute.js +76 -0
- package/dist/es5/lib/parsers/parse-i3s-attribute.js.map +1 -0
- package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js +65 -0
- package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -0
- package/dist/es5/lib/parsers/parse-i3s-tile-content.js +510 -0
- package/dist/es5/lib/parsers/parse-i3s-tile-content.js.map +1 -0
- package/dist/es5/lib/parsers/parse-i3s.js +116 -0
- package/dist/es5/lib/parsers/parse-i3s.js.map +1 -0
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js +107 -0
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js.map +1 -0
- package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js +258 -0
- package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -0
- package/dist/es5/lib/parsers/parse-zip/buffer-file-provider.js +46 -0
- package/dist/es5/lib/parsers/parse-zip/buffer-file-provider.js.map +1 -0
- package/dist/es5/lib/parsers/parse-zip/cd-file-header.js +84 -0
- package/dist/es5/lib/parsers/parse-zip/cd-file-header.js.map +1 -0
- package/dist/es5/lib/parsers/parse-zip/file-provider.js +2 -0
- package/dist/es5/lib/parsers/parse-zip/file-provider.js.map +1 -0
- package/dist/es5/lib/parsers/parse-zip/local-file-header.js +72 -0
- package/dist/es5/lib/parsers/parse-zip/local-file-header.js.map +1 -0
- package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js +17 -0
- package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js.map +1 -0
- package/dist/es5/lib/utils/customize-/321/201olors.js +184 -0
- package/dist/es5/lib/utils/customize-/321/201olors.js.map +1 -0
- package/dist/es5/lib/utils/url-utils.js +33 -0
- package/dist/es5/lib/utils/url-utils.js.map +1 -0
- package/dist/es5/types.js +26 -0
- package/dist/es5/types.js.map +1 -0
- package/dist/es5/workers/i3s-content-worker-node.js +7 -0
- package/dist/es5/workers/i3s-content-worker-node.js.map +1 -0
- package/dist/es5/workers/i3s-content-worker.js +6 -0
- package/dist/es5/workers/i3s-content-worker.js.map +1 -0
- package/dist/esm/arcgis-webscene-loader.js +16 -0
- package/dist/esm/arcgis-webscene-loader.js.map +1 -0
- package/dist/esm/bundle.js +4 -0
- package/dist/esm/bundle.js.map +1 -0
- package/dist/esm/i3s-attribute-loader.js +119 -0
- package/dist/esm/i3s-attribute-loader.js.map +1 -0
- package/dist/esm/i3s-building-scene-layer-loader.js +19 -0
- package/dist/esm/i3s-building-scene-layer-loader.js.map +1 -0
- package/dist/esm/i3s-content-loader.js +30 -0
- package/dist/esm/i3s-content-loader.js.map +1 -0
- package/dist/esm/i3s-loader.js +87 -0
- package/dist/esm/i3s-loader.js.map +1 -0
- package/dist/esm/i3s-node-page-loader.js +15 -0
- package/dist/esm/i3s-node-page-loader.js.map +1 -0
- package/dist/esm/i3s-slpk-loader.js +13 -0
- package/dist/esm/i3s-slpk-loader.js.map +1 -0
- package/dist/esm/index.js +11 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/helpers/i3s-nodepages-tiles.js +198 -0
- package/dist/esm/lib/helpers/i3s-nodepages-tiles.js.map +1 -0
- package/dist/esm/lib/parsers/constants.js +57 -0
- package/dist/esm/lib/parsers/constants.js.map +1 -0
- package/dist/esm/lib/parsers/parse-arcgis-webscene.js +70 -0
- package/dist/esm/lib/parsers/parse-arcgis-webscene.js.map +1 -0
- package/dist/esm/lib/parsers/parse-i3s-attribute.js +60 -0
- package/dist/esm/lib/parsers/parse-i3s-attribute.js.map +1 -0
- package/dist/esm/lib/parsers/parse-i3s-building-scene-layer.js +39 -0
- package/dist/esm/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -0
- package/dist/esm/lib/parsers/parse-i3s-tile-content.js +435 -0
- package/dist/esm/lib/parsers/parse-i3s-tile-content.js.map +1 -0
- package/dist/esm/lib/parsers/parse-i3s.js +83 -0
- package/dist/esm/lib/parsers/parse-i3s.js.map +1 -0
- package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js +41 -0
- package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js.map +1 -0
- package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js +107 -0
- package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -0
- package/dist/esm/lib/parsers/parse-zip/buffer-file-provider.js +23 -0
- package/dist/esm/lib/parsers/parse-zip/buffer-file-provider.js.map +1 -0
- package/dist/esm/lib/parsers/parse-zip/cd-file-header.js +37 -0
- package/dist/esm/lib/parsers/parse-zip/cd-file-header.js.map +1 -0
- package/dist/esm/lib/parsers/parse-zip/file-provider.js +2 -0
- package/dist/esm/lib/parsers/parse-zip/file-provider.js.map +1 -0
- package/dist/esm/lib/parsers/parse-zip/local-file-header.js +25 -0
- package/dist/esm/lib/parsers/parse-zip/local-file-header.js.map +1 -0
- package/dist/esm/lib/utils/convert-i3s-obb-to-mbs.js +9 -0
- package/dist/esm/lib/utils/convert-i3s-obb-to-mbs.js.map +1 -0
- package/dist/esm/lib/utils/customize-/321/201olors.js +98 -0
- package/dist/esm/lib/utils/customize-/321/201olors.js.map +1 -0
- package/dist/esm/lib/utils/url-utils.js +28 -0
- package/dist/esm/lib/utils/url-utils.js.map +1 -0
- package/dist/esm/types.js +18 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/workers/i3s-content-worker-node.js +5 -0
- package/dist/esm/workers/i3s-content-worker-node.js.map +1 -0
- package/dist/esm/workers/i3s-content-worker.js +4 -0
- package/dist/esm/workers/i3s-content-worker.js.map +1 -0
- package/dist/i3s-attribute-loader.d.ts +21 -0
- package/dist/i3s-attribute-loader.d.ts.map +1 -0
- package/dist/i3s-attribute-loader.js +155 -132
- package/dist/i3s-building-scene-layer-loader.d.ts +6 -0
- package/dist/i3s-building-scene-layer-loader.d.ts.map +1 -0
- package/dist/i3s-building-scene-layer-loader.js +23 -18
- package/dist/i3s-content-loader.d.ts +6 -0
- package/dist/i3s-content-loader.d.ts.map +1 -0
- package/dist/i3s-content-loader.js +29 -22
- package/dist/i3s-content-worker-node.js +197 -0
- package/dist/i3s-content-worker-node.js.map +7 -0
- package/dist/i3s-content-worker.js +2308 -1376
- package/dist/i3s-loader.d.ts +11 -0
- package/dist/i3s-loader.d.ts.map +1 -0
- package/dist/i3s-loader.js +88 -81
- package/dist/i3s-node-page-loader.d.ts +7 -0
- package/dist/i3s-node-page-loader.d.ts.map +1 -0
- package/dist/i3s-node-page-loader.js +20 -20
- package/dist/i3s-slpk-loader.d.ts +13 -0
- package/dist/i3s-slpk-loader.d.ts.map +1 -0
- package/dist/i3s-slpk-loader.js +20 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -5
- package/dist/lib/helpers/i3s-nodepages-tiles.d.ts +74 -0
- package/dist/lib/helpers/i3s-nodepages-tiles.d.ts.map +1 -0
- package/dist/lib/helpers/i3s-nodepages-tiles.js +232 -219
- package/dist/lib/parsers/constants.d.ts +40 -0
- package/dist/lib/parsers/constants.d.ts.map +1 -0
- package/dist/lib/parsers/constants.js +87 -42
- package/dist/lib/parsers/parse-arcgis-webscene.d.ts +7 -0
- package/dist/lib/parsers/parse-arcgis-webscene.d.ts.map +1 -0
- package/dist/lib/parsers/parse-arcgis-webscene.js +88 -0
- package/dist/lib/parsers/parse-i3s-attribute.d.ts +12 -0
- package/dist/lib/parsers/parse-i3s-attribute.d.ts.map +1 -0
- package/dist/lib/parsers/parse-i3s-attribute.js +87 -62
- package/dist/lib/parsers/parse-i3s-building-scene-layer.d.ts +9 -0
- package/dist/lib/parsers/parse-i3s-building-scene-layer.d.ts.map +1 -0
- package/dist/lib/parsers/parse-i3s-building-scene-layer.js +41 -38
- package/dist/lib/parsers/parse-i3s-tile-content.d.ts +4 -0
- package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -0
- package/dist/lib/parsers/parse-i3s-tile-content.js +460 -415
- package/dist/lib/parsers/parse-i3s.d.ts +6 -0
- package/dist/lib/parsers/parse-i3s.d.ts.map +1 -0
- package/dist/lib/parsers/parse-i3s.js +92 -73
- package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts +4 -0
- package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts.map +1 -0
- package/dist/lib/parsers/parse-slpk/parse-slpk.js +54 -0
- package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts +38 -0
- package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +1 -0
- package/dist/lib/parsers/parse-slpk/slpk-archieve.js +142 -0
- package/dist/lib/parsers/parse-zip/buffer-file-provider.d.ts +37 -0
- package/dist/lib/parsers/parse-zip/buffer-file-provider.d.ts.map +1 -0
- package/dist/lib/parsers/parse-zip/buffer-file-provider.js +47 -0
- package/dist/lib/parsers/parse-zip/cd-file-header.d.ts +27 -0
- package/dist/lib/parsers/parse-zip/cd-file-header.d.ts.map +1 -0
- package/dist/lib/parsers/parse-zip/cd-file-header.js +48 -0
- package/dist/lib/parsers/parse-zip/file-provider.d.ts +31 -0
- package/dist/lib/parsers/parse-zip/file-provider.d.ts.map +1 -0
- package/dist/lib/parsers/parse-zip/file-provider.js +2 -0
- package/dist/lib/parsers/parse-zip/local-file-header.d.ts +25 -0
- package/dist/lib/parsers/parse-zip/local-file-header.d.ts.map +1 -0
- package/dist/lib/parsers/parse-zip/local-file-header.js +34 -0
- package/dist/lib/utils/convert-i3s-obb-to-mbs.d.ts +2 -0
- package/dist/lib/utils/convert-i3s-obb-to-mbs.d.ts.map +1 -0
- package/dist/lib/utils/convert-i3s-obb-to-mbs.js +19 -8
- package/dist/lib/utils/customize-/321/201olors.d.ts +14 -0
- package/dist/lib/utils/customize-/321/201olors.d.ts.map +1 -0
- package/dist/lib/utils/customize-/321/201olors.js +104 -0
- package/dist/lib/utils/url-utils.d.ts +22 -0
- package/dist/lib/utils/url-utils.d.ts.map +1 -0
- package/dist/lib/utils/url-utils.js +41 -29
- package/dist/types.d.ts +1065 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +20 -2
- package/dist/workers/i3s-content-worker-node.d.ts +2 -0
- package/dist/workers/i3s-content-worker-node.d.ts.map +1 -0
- package/dist/workers/i3s-content-worker-node.js +7 -0
- package/dist/workers/i3s-content-worker.d.ts +2 -0
- package/dist/workers/i3s-content-worker.d.ts.map +1 -0
- package/dist/workers/i3s-content-worker.js +5 -4
- package/package.json +18 -16
- package/src/arcgis-webscene-loader.ts +31 -0
- package/src/i3s-attribute-loader.ts +9 -9
- package/src/i3s-content-loader.ts +17 -5
- package/src/i3s-loader.ts +24 -13
- package/src/i3s-node-page-loader.ts +6 -10
- package/src/i3s-slpk-loader.ts +27 -0
- package/src/index.ts +28 -7
- package/src/lib/helpers/i3s-nodepages-tiles.ts +84 -57
- package/src/lib/parsers/constants.ts +71 -37
- package/src/lib/parsers/parse-arcgis-webscene.ts +102 -0
- package/src/lib/parsers/parse-i3s-attribute.ts +21 -14
- package/src/lib/parsers/parse-i3s-building-scene-layer.ts +2 -1
- package/src/lib/parsers/parse-i3s-tile-content.ts +278 -194
- package/src/lib/parsers/parse-i3s.ts +55 -39
- package/src/lib/parsers/parse-slpk/parse-slpk.ts +72 -0
- package/src/lib/parsers/parse-slpk/slpk-archieve.ts +173 -0
- package/src/lib/parsers/parse-zip/buffer-file-provider.ts +55 -0
- package/src/lib/parsers/parse-zip/cd-file-header.ts +86 -0
- package/src/lib/parsers/parse-zip/file-provider.ts +34 -0
- package/src/lib/parsers/parse-zip/local-file-header.ts +65 -0
- package/src/lib/utils/customize-/321/201olors.ts +144 -0
- package/src/lib/utils/url-utils.ts +7 -7
- package/src/types.ts +875 -86
- package/src/workers/i3s-content-worker-node.ts +6 -0
- package/dist/bundle.js.map +0 -1
- package/dist/i3s-attribute-loader.js.map +0 -1
- package/dist/i3s-building-scene-layer-loader.js.map +0 -1
- package/dist/i3s-content-loader.js.map +0 -1
- package/dist/i3s-loader.js.map +0 -1
- package/dist/i3s-node-page-loader.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/helpers/i3s-nodepages-tiles.js.map +0 -1
- package/dist/lib/parsers/constants.js.map +0 -1
- package/dist/lib/parsers/parse-i3s-attribute.js.map +0 -1
- package/dist/lib/parsers/parse-i3s-building-scene-layer.js.map +0 -1
- package/dist/lib/parsers/parse-i3s-tile-content.js.map +0 -1
- package/dist/lib/parsers/parse-i3s.js.map +0 -1
- package/dist/lib/utils/convert-i3s-obb-to-mbs.js.map +0 -1
- package/dist/lib/utils/url-utils.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/workers/i3s-content-worker.js.map +0 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LoaderWithParser } from '@loaders.gl/loader-utils';
|
|
2
|
+
import { I3SParseOptions } from './types';
|
|
3
|
+
import { LoaderOptions } from './../../loader-utils/src/types';
|
|
4
|
+
export type I3SLoaderOptions = LoaderOptions & {
|
|
5
|
+
i3s?: I3SParseOptions;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Loader for I3S - Indexed 3D Scene Layer
|
|
9
|
+
*/
|
|
10
|
+
export declare const I3SLoader: LoaderWithParser;
|
|
11
|
+
//# sourceMappingURL=i3s-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i3s-loader.d.ts","sourceRoot":"","sources":["../src/i3s-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAK/D,OAAO,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,gCAAgC,CAAC;AAW7D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAwBvB,CAAC"}
|
package/dist/i3s-loader.js
CHANGED
|
@@ -1,95 +1,102 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.I3SLoader = void 0;
|
|
4
|
+
const core_1 = require("@loaders.gl/core");
|
|
5
|
+
const i3s_content_loader_1 = require("./i3s-content-loader");
|
|
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';
|
|
5
11
|
const TILESET_REGEX = /layers\/[0-9]+$/;
|
|
6
12
|
const TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
|
|
7
13
|
const SLPK_HEX = '504b0304';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
const POINT_CLOUD = 'PointCloud';
|
|
15
|
+
/**
|
|
16
|
+
* Loader for I3S - Indexed 3D Scene Layer
|
|
17
|
+
*/
|
|
18
|
+
exports.I3SLoader = {
|
|
19
|
+
name: 'I3S (Indexed Scene Layers)',
|
|
20
|
+
id: 'i3s',
|
|
21
|
+
module: 'i3s',
|
|
22
|
+
version: VERSION,
|
|
23
|
+
mimeTypes: ['application/octet-stream'],
|
|
24
|
+
parse: parseI3S,
|
|
25
|
+
extensions: ['bin'],
|
|
26
|
+
options: {
|
|
27
|
+
i3s: {
|
|
28
|
+
token: null,
|
|
29
|
+
isTileset: 'auto',
|
|
30
|
+
isTileHeader: 'auto',
|
|
31
|
+
tile: null,
|
|
32
|
+
tileset: null,
|
|
33
|
+
_tileOptions: null,
|
|
34
|
+
_tilesetOptions: null,
|
|
35
|
+
useDracoGeometry: true,
|
|
36
|
+
useCompressedTextures: true,
|
|
37
|
+
decodeTextures: true,
|
|
38
|
+
coordinateSystem: constants_1.COORDINATE_SYSTEM.METER_OFFSETS,
|
|
39
|
+
colorsByAttribute: null
|
|
40
|
+
}
|
|
27
41
|
}
|
|
28
|
-
}
|
|
29
42
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
throw new Error('Files with .slpk extention currently are not supported by I3SLoader');
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
let isTileset;
|
|
41
|
-
|
|
42
|
-
if (options.i3s.isTileset === 'auto') {
|
|
43
|
-
isTileset = TILESET_REGEX.test(url);
|
|
44
|
-
} else {
|
|
45
|
-
isTileset = options.i3s.isTileset;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
let isTileHeader;
|
|
49
|
-
|
|
50
|
-
if (options.isTileHeader === 'auto') {
|
|
51
|
-
isTileHeader = TILE_HEADER_REGEX.test(url);
|
|
52
|
-
} else {
|
|
53
|
-
isTileHeader = options.i3s.isTileHeader;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
if (isTileset) {
|
|
57
|
-
data = await parseTileset(data, options, context);
|
|
58
|
-
} else if (isTileHeader) {
|
|
59
|
-
data = await parseTile(data, options, context);
|
|
60
|
-
|
|
61
|
-
if (options.i3s.loadContent) {
|
|
62
|
-
options.i3s.tile = data;
|
|
63
|
-
await load(data.contentUrl, I3SLoader, options);
|
|
43
|
+
async function parseI3S(data, options = {}, context) {
|
|
44
|
+
const url = context.url;
|
|
45
|
+
options.i3s = options.i3s || {};
|
|
46
|
+
const magicNumber = getMagicNumber(data);
|
|
47
|
+
// check if file is slpk
|
|
48
|
+
if (magicNumber === SLPK_HEX) {
|
|
49
|
+
throw new Error('Files with .slpk extention currently are not supported by I3SLoader');
|
|
64
50
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
51
|
+
// auto detect file type based on url
|
|
52
|
+
let isTileset;
|
|
53
|
+
if (options.i3s.isTileset === 'auto') {
|
|
54
|
+
isTileset = TILESET_REGEX.test(url);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
isTileset = options.i3s.isTileset;
|
|
58
|
+
}
|
|
59
|
+
let isTileHeader;
|
|
60
|
+
if (options.isTileHeader === 'auto') {
|
|
61
|
+
isTileHeader = TILE_HEADER_REGEX.test(url);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
isTileHeader = options.i3s.isTileHeader;
|
|
65
|
+
}
|
|
66
|
+
if (isTileset) {
|
|
67
|
+
data = await parseTileset(data, options, context);
|
|
68
|
+
}
|
|
69
|
+
else if (isTileHeader) {
|
|
70
|
+
data = await parseTile(data, context);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
data = await parseTileContent(data, options);
|
|
74
|
+
}
|
|
75
|
+
return data;
|
|
70
76
|
}
|
|
71
|
-
|
|
72
77
|
async function parseTileContent(arrayBuffer, options) {
|
|
73
|
-
|
|
78
|
+
return await (0, core_1.parse)(arrayBuffer, i3s_content_loader_1.I3SContentLoader, options);
|
|
74
79
|
}
|
|
75
|
-
|
|
76
80
|
async function parseTileset(data, options, context) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
+
const tilesetJson = JSON.parse(new TextDecoder().decode(data));
|
|
82
|
+
if (tilesetJson?.layerType === POINT_CLOUD) {
|
|
83
|
+
throw new Error('Point Cloud layers currently are not supported by I3SLoader');
|
|
84
|
+
}
|
|
85
|
+
// eslint-disable-next-line no-use-before-define
|
|
86
|
+
tilesetJson.loader = exports.I3SLoader;
|
|
87
|
+
await (0, parse_i3s_1.normalizeTilesetData)(tilesetJson, options, context);
|
|
88
|
+
return tilesetJson;
|
|
81
89
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
return normalizeTileData(data, options, context);
|
|
90
|
+
async function parseTile(data, context) {
|
|
91
|
+
data = JSON.parse(new TextDecoder().decode(data));
|
|
92
|
+
return (0, parse_i3s_1.normalizeTileData)(data, context);
|
|
86
93
|
}
|
|
87
|
-
|
|
88
94
|
function getMagicNumber(data) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
95
|
+
if (data instanceof ArrayBuffer) {
|
|
96
|
+
// slice binary data (4 bytes from the beginning) and transform it to hexadecimal numeral system
|
|
97
|
+
return [...new Uint8Array(data, 0, 4)]
|
|
98
|
+
.map((value) => value.toString(16).padStart(2, '0'))
|
|
99
|
+
.join('');
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
94
102
|
}
|
|
95
|
-
//# sourceMappingURL=i3s-loader.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { LoaderOptions, LoaderWithParser } from '@loaders.gl/loader-utils';
|
|
2
|
+
import type { NodePage } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Loader for I3S node pages
|
|
5
|
+
*/
|
|
6
|
+
export declare const I3SNodePageLoader: LoaderWithParser<NodePage, never, LoaderOptions>;
|
|
7
|
+
//# sourceMappingURL=i3s-node-page-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i3s-node-page-loader.d.ts","sourceRoot":"","sources":["../src/i3s-node-page-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AAUtC;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,CAS9E,CAAC"}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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';
|
|
7
|
+
async function parseNodePage(data, options) {
|
|
8
|
+
return JSON.parse(new TextDecoder().decode(data));
|
|
5
9
|
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Loader for I3S node pages
|
|
12
|
+
*/
|
|
13
|
+
exports.I3SNodePageLoader = {
|
|
14
|
+
name: 'I3S Node Page',
|
|
15
|
+
id: 'i3s-node-page',
|
|
16
|
+
module: 'i3s',
|
|
17
|
+
version: VERSION,
|
|
18
|
+
mimeTypes: ['application/json'],
|
|
19
|
+
parse: parseNodePage,
|
|
20
|
+
extensions: ['json'],
|
|
21
|
+
options: {}
|
|
16
22
|
};
|
|
17
|
-
|
|
18
|
-
async function parse(data) {
|
|
19
|
-
data = parseNodePage(data);
|
|
20
|
-
return data;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=i3s-node-page-loader.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { LoaderOptions, LoaderWithParser } from '@loaders.gl/loader-utils';
|
|
3
|
+
export type SLPKLoaderOptions = LoaderOptions & {
|
|
4
|
+
slpk?: {
|
|
5
|
+
path?: string;
|
|
6
|
+
pathMode?: 'http' | 'raw';
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Loader for SLPK - Scene Layer Package
|
|
11
|
+
*/
|
|
12
|
+
export declare const SLPKLoader: LoaderWithParser<Buffer, never, SLPKLoaderOptions>;
|
|
13
|
+
//# sourceMappingURL=i3s-slpk-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i3s-slpk-loader.d.ts","sourceRoot":"","sources":["../src/i3s-slpk-loader.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,aAAa,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAOzE,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;KAC3B,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CASzE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SLPKLoader = void 0;
|
|
4
|
+
const parse_slpk_1 = require("./lib/parsers/parse-slpk/parse-slpk");
|
|
5
|
+
// __VERSION__ is injected by babel-plugin-version-inline
|
|
6
|
+
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
7
|
+
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
|
|
8
|
+
/**
|
|
9
|
+
* Loader for SLPK - Scene Layer Package
|
|
10
|
+
*/
|
|
11
|
+
exports.SLPKLoader = {
|
|
12
|
+
name: 'I3S SLPK (Scene Layer Package)',
|
|
13
|
+
id: 'slpk',
|
|
14
|
+
module: 'i3s',
|
|
15
|
+
version: VERSION,
|
|
16
|
+
mimeTypes: ['application/octet-stream'],
|
|
17
|
+
parse: parse_slpk_1.parseSLPK,
|
|
18
|
+
extensions: ['slpk'],
|
|
19
|
+
options: {}
|
|
20
|
+
};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
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, DATA_TYPE, OperationalLayer, TextureSetDefinitionFormats } from './types';
|
|
2
|
+
export { COORDINATE_SYSTEM } from './lib/parsers/constants';
|
|
3
|
+
export { I3SLoader } from './i3s-loader';
|
|
4
|
+
export { SLPKLoader } from './i3s-slpk-loader';
|
|
5
|
+
export { I3SContentLoader } from './i3s-content-loader';
|
|
6
|
+
export { I3SAttributeLoader, loadFeatureAttributes } from './i3s-attribute-loader';
|
|
7
|
+
export { I3SBuildingSceneLayerLoader } from './i3s-building-scene-layer-loader';
|
|
8
|
+
export { I3SNodePageLoader } from './i3s-node-page-loader';
|
|
9
|
+
export { ArcGisWebSceneLoader } from './arcgis-webscene-loader';
|
|
10
|
+
export { parseZipLocalFileHeader } from './lib/parsers/parse-zip/local-file-header';
|
|
11
|
+
export { FileProvider } from './lib/parsers/parse-zip/file-provider';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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,SAAS,EACT,gBAAgB,EAChB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AAEjB,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,YAAY,EAAC,MAAM,uCAAuC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
// loaders.gl, MIT license
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.parseZipLocalFileHeader = exports.ArcGisWebSceneLoader = exports.I3SNodePageLoader = exports.I3SBuildingSceneLayerLoader = exports.loadFeatureAttributes = exports.I3SAttributeLoader = exports.I3SContentLoader = exports.SLPKLoader = exports.I3SLoader = exports.COORDINATE_SYSTEM = void 0;
|
|
5
|
+
var constants_1 = require("./lib/parsers/constants");
|
|
6
|
+
Object.defineProperty(exports, "COORDINATE_SYSTEM", { enumerable: true, get: function () { return constants_1.COORDINATE_SYSTEM; } });
|
|
7
|
+
var i3s_loader_1 = require("./i3s-loader");
|
|
8
|
+
Object.defineProperty(exports, "I3SLoader", { enumerable: true, get: function () { return i3s_loader_1.I3SLoader; } });
|
|
9
|
+
var i3s_slpk_loader_1 = require("./i3s-slpk-loader");
|
|
10
|
+
Object.defineProperty(exports, "SLPKLoader", { enumerable: true, get: function () { return i3s_slpk_loader_1.SLPKLoader; } });
|
|
11
|
+
var i3s_content_loader_1 = require("./i3s-content-loader");
|
|
12
|
+
Object.defineProperty(exports, "I3SContentLoader", { enumerable: true, get: function () { return i3s_content_loader_1.I3SContentLoader; } });
|
|
13
|
+
var i3s_attribute_loader_1 = require("./i3s-attribute-loader");
|
|
14
|
+
Object.defineProperty(exports, "I3SAttributeLoader", { enumerable: true, get: function () { return i3s_attribute_loader_1.I3SAttributeLoader; } });
|
|
15
|
+
Object.defineProperty(exports, "loadFeatureAttributes", { enumerable: true, get: function () { return i3s_attribute_loader_1.loadFeatureAttributes; } });
|
|
16
|
+
var i3s_building_scene_layer_loader_1 = require("./i3s-building-scene-layer-loader");
|
|
17
|
+
Object.defineProperty(exports, "I3SBuildingSceneLayerLoader", { enumerable: true, get: function () { return i3s_building_scene_layer_loader_1.I3SBuildingSceneLayerLoader; } });
|
|
18
|
+
var i3s_node_page_loader_1 = require("./i3s-node-page-loader");
|
|
19
|
+
Object.defineProperty(exports, "I3SNodePageLoader", { enumerable: true, get: function () { return i3s_node_page_loader_1.I3SNodePageLoader; } });
|
|
20
|
+
var arcgis_webscene_loader_1 = require("./arcgis-webscene-loader");
|
|
21
|
+
Object.defineProperty(exports, "ArcGisWebSceneLoader", { enumerable: true, get: function () { return arcgis_webscene_loader_1.ArcGisWebSceneLoader; } });
|
|
22
|
+
var local_file_header_1 = require("./lib/parsers/parse-zip/local-file-header");
|
|
23
|
+
Object.defineProperty(exports, "parseZipLocalFileHeader", { enumerable: true, get: function () { return local_file_header_1.parseZipLocalFileHeader; } });
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { LoaderOptions } from '@loaders.gl/loader-utils';
|
|
2
|
+
import { I3STilesetHeader, NodePage, NodeInPage, I3STextureFormat, I3STileHeader } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* class I3SNodePagesTiles - loads nodePages and form i3s tiles from them
|
|
5
|
+
*/
|
|
6
|
+
export default class I3SNodePagesTiles {
|
|
7
|
+
tileset: I3STilesetHeader;
|
|
8
|
+
nodePages: NodePage[];
|
|
9
|
+
pendingNodePages: {
|
|
10
|
+
promise: Promise<NodePage>;
|
|
11
|
+
status: 'Pending' | 'Done';
|
|
12
|
+
}[];
|
|
13
|
+
nodesPerPage: number;
|
|
14
|
+
options: LoaderOptions;
|
|
15
|
+
lodSelectionMetricType?: string;
|
|
16
|
+
textureDefinitionsSelectedFormats: ({
|
|
17
|
+
format: I3STextureFormat;
|
|
18
|
+
name: string;
|
|
19
|
+
} | null)[];
|
|
20
|
+
nodesInNodePages: number;
|
|
21
|
+
private textureLoaderOptions;
|
|
22
|
+
/**
|
|
23
|
+
* @constructs
|
|
24
|
+
* Create a I3SNodePagesTiles instance.
|
|
25
|
+
* @param tileset - i3s tileset header ('layers/0')
|
|
26
|
+
* @param options - i3s loader options
|
|
27
|
+
*/
|
|
28
|
+
constructor(tileset: I3STilesetHeader, options: LoaderOptions);
|
|
29
|
+
/**
|
|
30
|
+
* Loads some nodePage and return a particular node from it
|
|
31
|
+
* @param id - id of node through all node pages
|
|
32
|
+
*/
|
|
33
|
+
getNodeById(id: number): Promise<NodeInPage>;
|
|
34
|
+
/**
|
|
35
|
+
* Forms tile header using node and tileset data
|
|
36
|
+
* @param id - id of node through all node pages
|
|
37
|
+
*/
|
|
38
|
+
formTileFromNodePages(id: number): Promise<I3STileHeader>;
|
|
39
|
+
/**
|
|
40
|
+
* Forms url and type of geometry resource by nodepage's data and `geometryDefinitions` in the tileset
|
|
41
|
+
* @param - data about the node's mesh from the nodepage
|
|
42
|
+
* @returns -
|
|
43
|
+
* {string} url - url to the geometry resource
|
|
44
|
+
* {boolean} isDracoGeometry - whether the geometry resource contain DRACO compressed geometry
|
|
45
|
+
*/
|
|
46
|
+
private getContentUrl;
|
|
47
|
+
/**
|
|
48
|
+
* Forms 1.6 compatible LOD selection object from a nodepage's node data
|
|
49
|
+
* @param node - a node from nodepage
|
|
50
|
+
* @returns- Array of LodSelection
|
|
51
|
+
*/
|
|
52
|
+
private getLodSelection;
|
|
53
|
+
/**
|
|
54
|
+
* Returns information about texture and material from `materialDefinitions`
|
|
55
|
+
* @param material - material data from nodepage
|
|
56
|
+
* @returns - Couple {textureData, materialDefinition}
|
|
57
|
+
* {string} textureData.name - path name of the texture
|
|
58
|
+
* {string} textureData.format - format of the texture
|
|
59
|
+
* materialDefinition - PBR-like material definition from `materialDefinitions`
|
|
60
|
+
*/
|
|
61
|
+
private getInformationFromMaterial;
|
|
62
|
+
/**
|
|
63
|
+
* Sets preferable and supported format for each textureDefinition of the tileset
|
|
64
|
+
* @param tileset - I3S layer data
|
|
65
|
+
* @returns
|
|
66
|
+
*/
|
|
67
|
+
private initSelectedFormatsForTextureDefinitions;
|
|
68
|
+
/**
|
|
69
|
+
* Returns the array of supported texture format
|
|
70
|
+
* @returns list of format strings
|
|
71
|
+
*/
|
|
72
|
+
private getSupportedTextureFormats;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=i3s-nodepages-tiles.d.ts.map
|
|
@@ -0,0 +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,EACL,gBAAgB,EAEhB,QAAQ,EACR,UAAU,EAIV,gBAAgB,EAEhB,aAAa,EACd,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,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,OAAO,CAAC,oBAAoB,CAA4B;IAExD;;;;;OAKG;gBACS,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa;IAU7D;;;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;IA4D/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"}
|