@loaders.gl/tile-converter 4.0.0-alpha.20 → 4.0.0-alpha.22
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/converter.min.js +113 -113
- package/dist/dist.min.js +33160 -32581
- package/dist/es5/deps-installer/deps-installer.js +1 -1
- package/dist/es5/i3s-converter/helpers/load-3d-tiles.js +70 -4
- package/dist/es5/i3s-converter/helpers/load-3d-tiles.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +34 -32
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/i3s-server/controllers/slpk-controller.js +2 -2
- package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -1
- package/dist/es5/index.js +0 -7
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/pgm-loader.js +1 -1
- package/dist/es5/slpk-extractor/slpk-extractor.js +7 -8
- package/dist/es5/slpk-extractor/slpk-extractor.js.map +1 -1
- package/dist/esm/deps-installer/deps-installer.js +1 -1
- package/dist/esm/i3s-converter/helpers/load-3d-tiles.js +33 -4
- package/dist/esm/i3s-converter/helpers/load-3d-tiles.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +7 -5
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/i3s-server/bin/i3s-server.min.js +70 -70
- package/dist/esm/i3s-server/controllers/slpk-controller.js +1 -1
- package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/pgm-loader.js +1 -1
- package/dist/esm/slpk-extractor/slpk-extractor.js +2 -3
- package/dist/esm/slpk-extractor/slpk-extractor.js.map +1 -1
- package/dist/i3s-converter/helpers/load-3d-tiles.d.ts +15 -0
- package/dist/i3s-converter/helpers/load-3d-tiles.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/load-3d-tiles.js +51 -5
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.js +6 -4
- package/dist/i3s-server/controllers/slpk-controller.js +2 -2
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -3
- package/dist/slpk-extractor/slpk-extractor.d.ts +1 -1
- package/dist/slpk-extractor/slpk-extractor.d.ts.map +1 -1
- package/dist/slpk-extractor/slpk-extractor.js +3 -4
- package/dist/slpk-extractor.min.js +35 -35
- package/package.json +14 -14
- package/src/i3s-converter/helpers/load-3d-tiles.ts +61 -5
- package/src/i3s-converter/i3s-converter.ts +12 -5
- package/src/i3s-server/controllers/slpk-controller.ts +1 -1
- package/src/index.ts +0 -1
- package/src/slpk-extractor/slpk-extractor.ts +2 -3
- package/dist/es5/slpk-extractor/helpers/file-handle-file.js +0 -214
- package/dist/es5/slpk-extractor/helpers/file-handle-file.js.map +0 -1
- package/dist/es5/slpk-extractor/helpers/fs-promises.js +0 -77
- package/dist/es5/slpk-extractor/helpers/fs-promises.js.map +0 -1
- package/dist/esm/slpk-extractor/helpers/file-handle-file.js +0 -54
- package/dist/esm/slpk-extractor/helpers/file-handle-file.js.map +0 -1
- package/dist/esm/slpk-extractor/helpers/fs-promises.js +0 -32
- package/dist/esm/slpk-extractor/helpers/fs-promises.js.map +0 -1
- package/dist/slpk-extractor/helpers/file-handle-file.d.ts +0 -51
- package/dist/slpk-extractor/helpers/file-handle-file.d.ts.map +0 -1
- package/dist/slpk-extractor/helpers/file-handle-file.js +0 -86
- package/dist/slpk-extractor/helpers/fs-promises.d.ts +0 -38
- package/dist/slpk-extractor/helpers/fs-promises.d.ts.map +0 -1
- package/dist/slpk-extractor/helpers/fs-promises.js +0 -51
- package/src/slpk-extractor/helpers/file-handle-file.ts +0 -109
- package/src/slpk-extractor/helpers/fs-promises.ts +0 -66
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '@loaders.gl/polyfills';
|
|
2
2
|
import { parseSLPK } from '@loaders.gl/i3s';
|
|
3
|
-
import { FileHandleFile } from '@loaders.gl/
|
|
3
|
+
import { FileHandleFile } from '@loaders.gl/zip';
|
|
4
4
|
let slpkArchive;
|
|
5
5
|
export const loadArchive = async fullLayerPath => {
|
|
6
6
|
slpkArchive = await parseSLPK(await FileHandleFile.from(fullLayerPath), msg => console.log(msg));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slpk-controller.js","names":["parseSLPK","FileHandleFile","slpkArchive","loadArchive","fullLayerPath","from","msg","console","log","getFileByUrl","url","trimmedPath","exec","uncompressedFile","Buffer","getFile","e"],"sources":["../../../../src/i3s-server/controllers/slpk-controller.ts"],"sourcesContent":["import '@loaders.gl/polyfills';\nimport {parseSLPK} from '@loaders.gl/i3s';\nimport {FileHandleFile} from '@loaders.gl/
|
|
1
|
+
{"version":3,"file":"slpk-controller.js","names":["parseSLPK","FileHandleFile","slpkArchive","loadArchive","fullLayerPath","from","msg","console","log","getFileByUrl","url","trimmedPath","exec","uncompressedFile","Buffer","getFile","e"],"sources":["../../../../src/i3s-server/controllers/slpk-controller.ts"],"sourcesContent":["import '@loaders.gl/polyfills';\nimport {parseSLPK} from '@loaders.gl/i3s';\nimport {FileHandleFile} from '@loaders.gl/zip';\n\nlet slpkArchive;\n\n/**\n * Open SLPK file for reading and load HASH file\n * @param fullLayerPath - full path to SLPK file\n */\nexport const loadArchive = async (fullLayerPath: string): Promise<void> => {\n slpkArchive = await parseSLPK(await FileHandleFile.from(fullLayerPath), (msg) =>\n console.log(msg)\n );\n console.log('The server is ready to use');\n};\n\n/**\n * Get a file from SLPK\n * @param url - I3S HTTP URL\n * @returns - file content\n */\nexport async function getFileByUrl(url: string) {\n const trimmedPath = /^\\/?(.*)\\/?$/.exec(url);\n let uncompressedFile: Buffer | null = null;\n if (trimmedPath) {\n try {\n uncompressedFile = Buffer.from(await slpkArchive.getFile(trimmedPath[1], 'http'));\n } catch (e) {}\n }\n return uncompressedFile;\n}\n"],"mappings":"AAAA,OAAO,uBAAuB;AAC9B,SAAQA,SAAS,QAAO,iBAAiB;AACzC,SAAQC,cAAc,QAAO,iBAAiB;AAE9C,IAAIC,WAAW;AAMf,OAAO,MAAMC,WAAW,GAAG,MAAOC,aAAqB,IAAoB;EACzEF,WAAW,GAAG,MAAMF,SAAS,CAAC,MAAMC,cAAc,CAACI,IAAI,CAACD,aAAa,CAAC,EAAGE,GAAG,IAC1EC,OAAO,CAACC,GAAG,CAACF,GAAG,CACjB,CAAC;EACDC,OAAO,CAACC,GAAG,CAAC,4BAA4B,CAAC;AAC3C,CAAC;AAOD,OAAO,eAAeC,YAAYA,CAACC,GAAW,EAAE;EAC9C,MAAMC,WAAW,GAAG,cAAc,CAACC,IAAI,CAACF,GAAG,CAAC;EAC5C,IAAIG,gBAA+B,GAAG,IAAI;EAC1C,IAAIF,WAAW,EAAE;IACf,IAAI;MACFE,gBAAgB,GAAGC,MAAM,CAACT,IAAI,CAAC,MAAMH,WAAW,CAACa,OAAO,CAACJ,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC,CAAC,OAAOK,CAAC,EAAE,CAAC;EACf;EACA,OAAOH,gBAAgB;AACzB"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
export { default as I3SConverter } from './i3s-converter/i3s-converter';
|
|
2
2
|
export { default as Tiles3DConverter } from './3d-tiles-converter/3d-tiles-converter';
|
|
3
|
-
export { FileHandleFile } from './slpk-extractor/helpers/file-handle-file';
|
|
4
3
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","I3SConverter","Tiles3DConverter"
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","I3SConverter","Tiles3DConverter"],"sources":["../../src/index.ts"],"sourcesContent":["export {default as I3SConverter} from './i3s-converter/i3s-converter';\nexport {default as Tiles3DConverter} from './3d-tiles-converter/3d-tiles-converter';\n"],"mappings":"AAAA,SAAQA,OAAO,IAAIC,YAAY,QAAO,+BAA+B;AACrE,SAAQD,OAAO,IAAIE,gBAAgB,QAAO,yCAAyC"}
|
package/dist/esm/pgm-loader.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { parsePGM } from '@math.gl/geoid';
|
|
2
|
-
const VERSION = typeof "4.0.0-alpha.
|
|
2
|
+
const VERSION = typeof "4.0.0-alpha.22" !== 'undefined' ? "4.0.0-alpha.22" : 'latest';
|
|
3
3
|
export const PGMLoader = {
|
|
4
4
|
name: 'PGM - Netpbm grayscale image format',
|
|
5
5
|
id: 'pgm',
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { isBrowser } from '@loaders.gl/core';
|
|
2
2
|
import { BROWSER_ERROR_MESSAGE } from '../constants';
|
|
3
|
-
import { FileHandleFile } from './helpers/file-handle-file';
|
|
4
3
|
import { path } from '@loaders.gl/loader-utils';
|
|
5
|
-
import { parseZipLocalFileHeader } from '@loaders.gl/zip';
|
|
4
|
+
import { FileHandleFile, parseZipLocalFileHeader } from '@loaders.gl/zip';
|
|
6
5
|
import { GZipCompression } from '@loaders.gl/compression';
|
|
7
6
|
import { writeFile } from '../lib/utils/file-utils';
|
|
8
7
|
const indexNames = ['3dSceneLayer.json.gz', '3dNodeIndexDocument.json.gz', 'sharedResource.json.gz'];
|
|
9
|
-
export default class
|
|
8
|
+
export default class SLPKExtractor {
|
|
10
9
|
async extract(options) {
|
|
11
10
|
if (isBrowser) {
|
|
12
11
|
console.log(BROWSER_ERROR_MESSAGE);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slpk-extractor.js","names":["isBrowser","BROWSER_ERROR_MESSAGE","
|
|
1
|
+
{"version":3,"file":"slpk-extractor.js","names":["isBrowser","BROWSER_ERROR_MESSAGE","path","FileHandleFile","parseZipLocalFileHeader","GZipCompression","writeFile","indexNames","SLPKExtractor","extract","options","console","log","inputUrl","provider","from","localHeader","_localHeader","unGzip","name","correctIndexNames","fileName","data","slice","fileDataOffset","compressedSize","outputPath","includes","filename","join","dirname","parts","exec","concat","at","file","_file$name","test","_file$name2","compression","decompressedData","decompress","Promise","resolve","finalPath","dirName"],"sources":["../../../src/slpk-extractor/slpk-extractor.ts"],"sourcesContent":["import {isBrowser} from '@loaders.gl/core';\n\nimport {BROWSER_ERROR_MESSAGE} from '../constants';\nimport {path} from '@loaders.gl/loader-utils';\nimport {FileHandleFile, parseZipLocalFileHeader} from '@loaders.gl/zip';\nimport {GZipCompression} from '@loaders.gl/compression';\nimport {writeFile} from '../lib/utils/file-utils';\n\nconst indexNames = [\n '3dSceneLayer.json.gz',\n '3dNodeIndexDocument.json.gz',\n 'sharedResource.json.gz'\n];\n\n/**\n * Description of the file in the SLPK\n */\ntype File = {\n name: string | null;\n data: ArrayBuffer;\n};\n\n/**\n * Converter from slpk to i3s\n */\nexport default class SLPKExtractor {\n /**\n * Extract slpk to i3s\n * @param options\n * @param options.inputUrl the url to read SLPK file\n * @param options.outputPath the output filename\n */\n public async extract(options: {inputUrl: string; outputPath: string}): Promise<string> {\n if (isBrowser) {\n console.log(BROWSER_ERROR_MESSAGE);\n return BROWSER_ERROR_MESSAGE;\n }\n const {inputUrl} = options;\n\n const provider = await FileHandleFile.from(inputUrl);\n\n let localHeader = await parseZipLocalFileHeader(0n, provider);\n while (localHeader) {\n await this.writeFile(\n await this.unGzip({\n name: this.correctIndexNames(localHeader.fileName),\n data: await provider.slice(\n localHeader.fileDataOffset,\n localHeader.fileDataOffset + localHeader.compressedSize\n )\n }),\n options.outputPath\n );\n localHeader = await parseZipLocalFileHeader(\n localHeader.fileDataOffset + localHeader?.compressedSize,\n provider\n );\n }\n\n return 'success';\n }\n\n /**\n * Defines file name and path for i3s format\n * @param fileName initial file name and path\n */\n\n private correctIndexNames(fileName: string): string | null {\n if (indexNames.includes(path.filename(path.join('/', fileName)))) {\n return path.join(path.dirname(fileName), 'index.json.gz');\n }\n // finds path with name part and extention part\n let parts = /^(.*\\/[^\\/\\.]*)(\\..+)$/.exec(fileName);\n if (!parts) {\n return null;\n }\n return `${parts?.at(1)}/index${parts?.at(2)}`;\n }\n\n private async unGzip(file: File): Promise<File> {\n if (/\\.gz$/.test(file.name ?? '')) {\n const compression = new GZipCompression();\n\n const decompressedData = await compression.decompress(file.data);\n\n return {data: decompressedData, name: (file.name ?? '').slice(0, -3)};\n }\n return Promise.resolve(file);\n }\n\n private async writeFile(options: File, outputPath: string): Promise<void> {\n if (!options.name) {\n return;\n }\n const finalPath = path.join(outputPath, options.name);\n const dirName = path.dirname(finalPath);\n const fileName = path.filename(finalPath);\n await writeFile(dirName, options.data, fileName);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Tiles3DLoaderOptions, Tiles3DTileContent, Tiles3DTileJSONPostprocessed, Tiles3DTilesetJSONPostprocessed } from '@loaders.gl/3d-tiles';
|
|
2
|
+
import { LoaderWithParser } from '@loaders.gl/core';
|
|
2
3
|
/**
|
|
3
4
|
* Load nested 3DTiles tileset. If the sourceTile is not nested tileset - do nothing
|
|
4
5
|
* @param sourceTileset - source root tileset JSON
|
|
@@ -15,4 +16,18 @@ export declare const loadNestedTileset: (sourceTileset: Tiles3DTilesetJSONPostpr
|
|
|
15
16
|
* @returns - 3DTiles tile content or null
|
|
16
17
|
*/
|
|
17
18
|
export declare const loadTile3DContent: (sourceTileset: Tiles3DTilesetJSONPostprocessed | null, sourceTile: Tiles3DTileJSONPostprocessed, tilesetLoadOptions: Tiles3DLoaderOptions) => Promise<Tiles3DTileContent | null>;
|
|
19
|
+
/**
|
|
20
|
+
* Load a resource with load options and .3tz format support
|
|
21
|
+
* @param url - resource URL
|
|
22
|
+
* @param loader - loader to parse data (Tiles3DLoader / CesiumIonLoader)
|
|
23
|
+
* @param loadOptions - 3d-tiles loader options
|
|
24
|
+
* @returns 3d-tiles resource
|
|
25
|
+
*/
|
|
26
|
+
export declare function loadFromArchive(url: string, loader: LoaderWithParser, loadOptions: Tiles3DLoaderOptions): Promise<any>;
|
|
27
|
+
/**
|
|
28
|
+
* Check if tile is nested tileset
|
|
29
|
+
* @param tile - 3DTiles header data
|
|
30
|
+
* @returns true if tile is nested tileset
|
|
31
|
+
*/
|
|
32
|
+
export declare function isNestedTileset(tile: Tiles3DTileJSONPostprocessed): boolean;
|
|
18
33
|
//# sourceMappingURL=load-3d-tiles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-3d-tiles.d.ts","sourceRoot":"","sources":["../../../src/i3s-converter/helpers/load-3d-tiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"load-3d-tiles.d.ts","sourceRoot":"","sources":["../../../src/i3s-converter/helpers/load-3d-tiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAC,gBAAgB,EAAO,MAAM,kBAAkB,CAAC;AAExD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,kBACb,+BAA+B,GAAG,IAAI,cACzC,4BAA4B,sBACpB,oBAAoB,KACvC,QAAQ,IAAI,CAsBd,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,kBACb,+BAA+B,GAAG,IAAI,cACzC,4BAA4B,sBACpB,oBAAoB,KACvC,QAAQ,kBAAkB,GAAG,IAAI,CAqBnC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,oBAAoB,gBA0BlC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,4BAA4B,WAEjE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.loadTile3DContent = exports.loadNestedTileset = void 0;
|
|
3
|
+
exports.isNestedTileset = exports.loadFromArchive = exports.loadTile3DContent = exports.loadNestedTileset = void 0;
|
|
4
|
+
const _3d_tiles_1 = require("@loaders.gl/3d-tiles");
|
|
4
5
|
const core_1 = require("@loaders.gl/core");
|
|
5
6
|
/**
|
|
6
7
|
* Load nested 3DTiles tileset. If the sourceTile is not nested tileset - do nothing
|
|
@@ -10,7 +11,7 @@ const core_1 = require("@loaders.gl/core");
|
|
|
10
11
|
* @returns nothing
|
|
11
12
|
*/
|
|
12
13
|
const loadNestedTileset = async (sourceTileset, sourceTile, tilesetLoadOptions) => {
|
|
13
|
-
const isTileset = sourceTile
|
|
14
|
+
const isTileset = isNestedTileset(sourceTile);
|
|
14
15
|
if (!sourceTileset || !sourceTile.contentUrl || !isTileset) {
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
@@ -21,7 +22,7 @@ const loadNestedTileset = async (sourceTileset, sourceTile, tilesetLoadOptions)
|
|
|
21
22
|
assetGltfUpAxis: (sourceTileset.asset && sourceTileset.asset.gltfUpAxis) || 'Y'
|
|
22
23
|
}
|
|
23
24
|
};
|
|
24
|
-
const tileContent = await (
|
|
25
|
+
const tileContent = await loadFromArchive(sourceTile.contentUrl, sourceTileset.loader, loadOptions);
|
|
25
26
|
if (tileContent.root) {
|
|
26
27
|
sourceTile.children = [tileContent.root];
|
|
27
28
|
}
|
|
@@ -35,7 +36,7 @@ exports.loadNestedTileset = loadNestedTileset;
|
|
|
35
36
|
* @returns - 3DTiles tile content or null
|
|
36
37
|
*/
|
|
37
38
|
const loadTile3DContent = async (sourceTileset, sourceTile, tilesetLoadOptions) => {
|
|
38
|
-
const isTileset = sourceTile
|
|
39
|
+
const isTileset = isNestedTileset(sourceTile);
|
|
39
40
|
if (!sourceTileset || !sourceTile.contentUrl || isTileset) {
|
|
40
41
|
return null;
|
|
41
42
|
}
|
|
@@ -47,7 +48,52 @@ const loadTile3DContent = async (sourceTileset, sourceTile, tilesetLoadOptions)
|
|
|
47
48
|
assetGltfUpAxis: (sourceTileset.asset && sourceTileset.asset.gltfUpAxis) || 'Y'
|
|
48
49
|
}
|
|
49
50
|
};
|
|
50
|
-
const tileContent = await (
|
|
51
|
+
const tileContent = await loadFromArchive(sourceTile.contentUrl, sourceTileset.loader, loadOptions);
|
|
51
52
|
return tileContent;
|
|
52
53
|
};
|
|
53
54
|
exports.loadTile3DContent = loadTile3DContent;
|
|
55
|
+
/**
|
|
56
|
+
* Load a resource with load options and .3tz format support
|
|
57
|
+
* @param url - resource URL
|
|
58
|
+
* @param loader - loader to parse data (Tiles3DLoader / CesiumIonLoader)
|
|
59
|
+
* @param loadOptions - 3d-tiles loader options
|
|
60
|
+
* @returns 3d-tiles resource
|
|
61
|
+
*/
|
|
62
|
+
async function loadFromArchive(url, loader, loadOptions) {
|
|
63
|
+
const tz3UrlParts = url.split('.3tz');
|
|
64
|
+
let filename;
|
|
65
|
+
// No '.3tz'. The file will be loaded with global fetch function
|
|
66
|
+
if (tz3UrlParts.length === 1) {
|
|
67
|
+
filename = null;
|
|
68
|
+
}
|
|
69
|
+
else if (tz3UrlParts.length === 2) {
|
|
70
|
+
filename = tz3UrlParts[1].slice(1);
|
|
71
|
+
if (filename === '') {
|
|
72
|
+
filename = 'tileset.json';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
throw new Error('Unexpected URL format');
|
|
77
|
+
}
|
|
78
|
+
if (filename) {
|
|
79
|
+
const tz3Path = `${tz3UrlParts[0]}.3tz`;
|
|
80
|
+
const fileSystem = new _3d_tiles_1.Tiles3DArchiveFileSystem(tz3Path);
|
|
81
|
+
const content = await (0, core_1.load)(filename, loader, {
|
|
82
|
+
...loadOptions,
|
|
83
|
+
fetch: fileSystem.fetch.bind(fileSystem)
|
|
84
|
+
});
|
|
85
|
+
await fileSystem.destroy();
|
|
86
|
+
return content;
|
|
87
|
+
}
|
|
88
|
+
return await (0, core_1.load)(url, loader, loadOptions);
|
|
89
|
+
}
|
|
90
|
+
exports.loadFromArchive = loadFromArchive;
|
|
91
|
+
/**
|
|
92
|
+
* Check if tile is nested tileset
|
|
93
|
+
* @param tile - 3DTiles header data
|
|
94
|
+
* @returns true if tile is nested tileset
|
|
95
|
+
*/
|
|
96
|
+
function isNestedTileset(tile) {
|
|
97
|
+
return tile?.type === 'json' || tile?.type === '3tz';
|
|
98
|
+
}
|
|
99
|
+
exports.isNestedTileset = isNestedTileset;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i3s-converter.d.ts","sourceRoot":"","sources":["../../src/i3s-converter/i3s-converter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,oBAAoB,EAGpB,+BAA+B,EAChC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAOrC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAuB7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAC,qBAAqB,EAA8B,MAAM,iBAAiB,CAAC;AAGnF,OAAO,EAGL,cAAc,EAEf,MAAM,SAAS,CAAC;AAEjB,OAAO,UAAU,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"i3s-converter.d.ts","sourceRoot":"","sources":["../../src/i3s-converter/i3s-converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -178,7 +178,7 @@ class I3SConverter {
|
|
|
178
178
|
if (preloadOptions.headers) {
|
|
179
179
|
this.loadOptions.fetch = { headers: preloadOptions.headers };
|
|
180
180
|
}
|
|
181
|
-
this.sourceTileset = await (0,
|
|
181
|
+
this.sourceTileset = await (0, load_3d_tiles_1.loadFromArchive)(tilesetUrl, this.Loader, this.loadOptions);
|
|
182
182
|
const preprocessResult = await this.preprocessConversion();
|
|
183
183
|
if (preprocessResult) {
|
|
184
184
|
await this._createAndSaveTileset(outputPath, tilesetName);
|
|
@@ -253,7 +253,8 @@ class I3SConverter {
|
|
|
253
253
|
* @returns - nothing
|
|
254
254
|
*/
|
|
255
255
|
async analyzeTile(sourceTile, traversalProps) {
|
|
256
|
-
|
|
256
|
+
const isTileset = (0, load_3d_tiles_1.isNestedTileset)(sourceTile);
|
|
257
|
+
if (isTileset) {
|
|
257
258
|
await (0, load_3d_tiles_1.loadNestedTileset)(this.sourceTileset, sourceTile, this.loadOptions);
|
|
258
259
|
return null;
|
|
259
260
|
}
|
|
@@ -417,8 +418,9 @@ class I3SConverter {
|
|
|
417
418
|
* @returns - traversal properties for the child tiles
|
|
418
419
|
*/
|
|
419
420
|
async convertTile(sourceTile, traversalProps) {
|
|
420
|
-
|
|
421
|
-
|
|
421
|
+
const isTileset = (0, load_3d_tiles_1.isNestedTileset)(sourceTile);
|
|
422
|
+
if (isTileset || sourceTile.type === 'empty') {
|
|
423
|
+
if (isTileset) {
|
|
422
424
|
if (sourceTile.id) {
|
|
423
425
|
console.log(`[load]: ${sourceTile.id}`); // eslint-disable-line
|
|
424
426
|
}
|
|
@@ -3,14 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getFileByUrl = exports.loadArchive = void 0;
|
|
4
4
|
require("@loaders.gl/polyfills");
|
|
5
5
|
const i3s_1 = require("@loaders.gl/i3s");
|
|
6
|
-
const
|
|
6
|
+
const zip_1 = require("@loaders.gl/zip");
|
|
7
7
|
let slpkArchive;
|
|
8
8
|
/**
|
|
9
9
|
* Open SLPK file for reading and load HASH file
|
|
10
10
|
* @param fullLayerPath - full path to SLPK file
|
|
11
11
|
*/
|
|
12
12
|
const loadArchive = async (fullLayerPath) => {
|
|
13
|
-
slpkArchive = await (0, i3s_1.parseSLPK)(await
|
|
13
|
+
slpkArchive = await (0, i3s_1.parseSLPK)(await zip_1.FileHandleFile.from(fullLayerPath), (msg) => console.log(msg));
|
|
14
14
|
console.log('The server is ready to use');
|
|
15
15
|
};
|
|
16
16
|
exports.loadArchive = loadArchive;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
export { default as I3SConverter } from './i3s-converter/i3s-converter';
|
|
2
2
|
export { default as Tiles3DConverter } from './3d-tiles-converter/3d-tiles-converter';
|
|
3
|
-
export { FileHandleFile } from './slpk-extractor/helpers/file-handle-file';
|
|
4
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,yCAAyC,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,yCAAyC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,10 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.Tiles3DConverter = exports.I3SConverter = void 0;
|
|
7
7
|
var i3s_converter_1 = require("./i3s-converter/i3s-converter");
|
|
8
8
|
Object.defineProperty(exports, "I3SConverter", { enumerable: true, get: function () { return __importDefault(i3s_converter_1).default; } });
|
|
9
9
|
var _3d_tiles_converter_1 = require("./3d-tiles-converter/3d-tiles-converter");
|
|
10
10
|
Object.defineProperty(exports, "Tiles3DConverter", { enumerable: true, get: function () { return __importDefault(_3d_tiles_converter_1).default; } });
|
|
11
|
-
var file_handle_file_1 = require("./slpk-extractor/helpers/file-handle-file");
|
|
12
|
-
Object.defineProperty(exports, "FileHandleFile", { enumerable: true, get: function () { return file_handle_file_1.FileHandleFile; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slpk-extractor.d.ts","sourceRoot":"","sources":["../../src/slpk-extractor/slpk-extractor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slpk-extractor.d.ts","sourceRoot":"","sources":["../../src/slpk-extractor/slpk-extractor.ts"],"names":[],"mappings":"AAsBA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC;;;;;OAKG;IACU,OAAO,CAAC,OAAO,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BtF;;;OAGG;IAEH,OAAO,CAAC,iBAAiB;YAYX,MAAM;YAWN,SAAS;CASxB"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const core_1 = require("@loaders.gl/core");
|
|
4
4
|
const constants_1 = require("../constants");
|
|
5
|
-
const file_handle_file_1 = require("./helpers/file-handle-file");
|
|
6
5
|
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
7
6
|
const zip_1 = require("@loaders.gl/zip");
|
|
8
7
|
const compression_1 = require("@loaders.gl/compression");
|
|
@@ -15,7 +14,7 @@ const indexNames = [
|
|
|
15
14
|
/**
|
|
16
15
|
* Converter from slpk to i3s
|
|
17
16
|
*/
|
|
18
|
-
class
|
|
17
|
+
class SLPKExtractor {
|
|
19
18
|
/**
|
|
20
19
|
* Extract slpk to i3s
|
|
21
20
|
* @param options
|
|
@@ -28,7 +27,7 @@ class SLPKConverter {
|
|
|
28
27
|
return constants_1.BROWSER_ERROR_MESSAGE;
|
|
29
28
|
}
|
|
30
29
|
const { inputUrl } = options;
|
|
31
|
-
const provider = await
|
|
30
|
+
const provider = await zip_1.FileHandleFile.from(inputUrl);
|
|
32
31
|
let localHeader = await (0, zip_1.parseZipLocalFileHeader)(0n, provider);
|
|
33
32
|
while (localHeader) {
|
|
34
33
|
await this.writeFile(await this.unGzip({
|
|
@@ -72,4 +71,4 @@ class SLPKConverter {
|
|
|
72
71
|
await (0, file_utils_1.writeFile)(dirName, options.data, fileName);
|
|
73
72
|
}
|
|
74
73
|
}
|
|
75
|
-
exports.default =
|
|
74
|
+
exports.default = SLPKExtractor;
|