@loaders.gl/tile-converter 3.1.0-alpha.4 → 3.1.0-beta.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/bin/converter.js +1 -1
- package/dist/bundle.js +86025 -0
- package/dist/converter.min.js +292 -0
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +189 -421
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +214 -296
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +4 -8
- package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +40 -0
- package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
- package/dist/es5/3d-tiles-converter/json-templates/tileset.js +7 -17
- package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +1 -1
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/deps-installer/deps-installer.js +17 -65
- package/dist/es5/deps-installer/deps-installer.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js +16 -16
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +9 -33
- package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js +93 -103
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +348 -511
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/node-debug.js +30 -26
- package/dist/es5/i3s-converter/helpers/node-debug.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/node-pages.js +102 -203
- package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +701 -1501
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/layers.js +15 -25
- package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/metadata.js +2 -2
- package/dist/es5/i3s-converter/json-templates/metadata.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/node.js +12 -21
- package/dist/es5/i3s-converter/json-templates/node.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/scene-server.js +3 -5
- package/dist/es5/i3s-converter/json-templates/scene-server.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/shared-resources.js +15 -55
- package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/store.js +4 -6
- package/dist/es5/i3s-converter/json-templates/store.js.map +1 -1
- package/dist/es5/i3s-server/app.js +6 -6
- package/dist/es5/i3s-server/app.js.map +1 -1
- package/dist/es5/i3s-server/controllers/index-controller.js +20 -60
- package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -1
- package/dist/es5/i3s-server/routes/index.js +14 -41
- package/dist/es5/i3s-server/routes/index.js.map +1 -1
- package/dist/es5/index.js +4 -4
- package/dist/es5/lib/geoid-height-model.js +100 -114
- package/dist/es5/lib/geoid-height-model.js.map +1 -1
- package/dist/es5/lib/pgm-parser.js +68 -122
- package/dist/es5/lib/pgm-parser.js.map +1 -1
- package/dist/es5/lib/utils/compress-util.js +123 -345
- package/dist/es5/lib/utils/compress-util.js.map +1 -1
- package/dist/es5/lib/utils/file-utils.js +20 -98
- package/dist/es5/lib/utils/file-utils.js.map +1 -1
- package/dist/es5/lib/utils/lod-conversion-utils.js +9 -9
- package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/es5/lib/utils/statistic-utills.js +41 -152
- package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
- package/dist/es5/pgm-loader.js +3 -5
- package/dist/es5/pgm-loader.js.map +1 -1
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +19 -13
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +19 -8
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js +33 -0
- package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +29 -31
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/node-debug.js +2 -2
- package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/node-pages.js +2 -2
- package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +50 -31
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/metadata.js +1 -1
- package/dist/esm/i3s-converter/json-templates/metadata.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/scene-server.js +1 -1
- package/dist/esm/i3s-converter/json-templates/scene-server.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/shared-resources.js +2 -2
- package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/store.js +2 -2
- package/dist/esm/i3s-converter/json-templates/store.js.map +1 -1
- package/dist/esm/i3s-server/controllers/index-controller.js +2 -2
- package/dist/esm/i3s-server/controllers/index-controller.js.map +1 -1
- package/dist/esm/lib/utils/compress-util.js +13 -13
- package/dist/esm/lib/utils/compress-util.js.map +1 -1
- package/dist/esm/lib/utils/file-utils.js +1 -1
- package/dist/esm/lib/utils/file-utils.js.map +1 -1
- package/dist/esm/lib/utils/statistic-utills.js +5 -5
- package/dist/esm/lib/utils/statistic-utills.js.map +1 -1
- package/dist/esm/pgm-loader.js +1 -1
- package/dist/esm/pgm-loader.js.map +1 -1
- package/package.json +22 -19
- package/src/3d-tiles-converter/3d-tiles-converter.ts +4 -2
- package/src/3d-tiles-converter/helpers/b3dm-converter.js +35 -7
- package/src/3d-tiles-converter/helpers/texture-atlas.ts +55 -0
- package/src/i3s-converter/helpers/geometry-converter.js +21 -22
- package/src/i3s-converter/i3s-converter.ts +32 -7
- package/src/i3s-converter/json-templates/metadata.js +1 -1
- package/src/i3s-converter/json-templates/scene-server.js +1 -1
- package/src/i3s-converter/json-templates/store.js +2 -2
- package/src/i3s-server/controllers/index-controller.js +1 -1
- package/dist/dist.min.js +0 -94
- package/dist/dist.min.js.map +0 -1
- package/dist/scripts/converter.js +0 -274
|
@@ -19,9 +19,9 @@ import type {
|
|
|
19
19
|
Field,
|
|
20
20
|
PopupInfo
|
|
21
21
|
} from '@loaders.gl/i3s';
|
|
22
|
-
import {load} from '@loaders.gl/core';
|
|
22
|
+
import {load, encode} from '@loaders.gl/core';
|
|
23
23
|
import {Tileset3D} from '@loaders.gl/tiles';
|
|
24
|
-
import {CesiumIonLoader} from '@loaders.gl/3d-tiles';
|
|
24
|
+
import {CesiumIonLoader, Tiles3DLoader} from '@loaders.gl/3d-tiles';
|
|
25
25
|
import {join} from 'path';
|
|
26
26
|
import {v4 as uuidv4} from 'uuid';
|
|
27
27
|
import process from 'process';
|
|
@@ -51,6 +51,8 @@ import {SHARED_RESOURCES_TEMPLATE} from './json-templates/shared-resources';
|
|
|
51
51
|
import {validateNodeBoundingVolumes} from './helpers/node-debug';
|
|
52
52
|
import {GeoidHeightModel} from '../lib/geoid-height-model';
|
|
53
53
|
import TileHeader from '@loaders.gl/tiles/src/tileset/tile-3d';
|
|
54
|
+
import {KTX2BasisUniversalTextureWriter} from '@loaders.gl/textures';
|
|
55
|
+
import {LoaderWithParser} from '@loaders.gl/loader-utils';
|
|
54
56
|
|
|
55
57
|
const ION_DEFAULT_TOKEN =
|
|
56
58
|
process.env.IonToken || // eslint-disable-line
|
|
@@ -63,6 +65,7 @@ const SHORT_INT_TYPE = 'Int32';
|
|
|
63
65
|
const DOUBLE_TYPE = 'double';
|
|
64
66
|
const OBJECT_ID_TYPE = 'OBJECTID';
|
|
65
67
|
const REFRESH_TOKEN_TIMEOUT = 1800; // 30 minutes in seconds
|
|
68
|
+
const CESIUM_DATASET_PREFIX = 'https://';
|
|
66
69
|
// const FS_FILE_TOO_LARGE = 'ERR_FS_FILE_TOO_LARGE';
|
|
67
70
|
|
|
68
71
|
/**
|
|
@@ -88,6 +91,7 @@ export default class I3SConverter {
|
|
|
88
91
|
refreshTokenTime: [number, number];
|
|
89
92
|
sourceTileset: Tileset3D | null;
|
|
90
93
|
geoidHeightModel: GeoidHeightModel | null;
|
|
94
|
+
Loader: LoaderWithParser = Tiles3DLoader;
|
|
91
95
|
|
|
92
96
|
constructor() {
|
|
93
97
|
this.nodePages = new NodePages(writeFile, HARDCODED_NODES_PER_PAGE);
|
|
@@ -148,6 +152,7 @@ export default class I3SConverter {
|
|
|
148
152
|
} = options;
|
|
149
153
|
this.options = {maxDepth, slpk, sevenZipExe, egmFilePath, draco, token, inputUrl};
|
|
150
154
|
this.validate = validate;
|
|
155
|
+
this.Loader = inputUrl.indexOf(CESIUM_DATASET_PREFIX) !== -1 ? CesiumIonLoader : Tiles3DLoader;
|
|
151
156
|
|
|
152
157
|
console.log('Loading egm file...'); // eslint-disable-line
|
|
153
158
|
this.geoidHeightModel = await load(egmFilePath, PGMLoader);
|
|
@@ -163,7 +168,7 @@ export default class I3SConverter {
|
|
|
163
168
|
tilesetOptions.loadOptions.fetch = {headers: preloadOptions.headers};
|
|
164
169
|
}
|
|
165
170
|
Object.assign(tilesetOptions, preloadOptions);
|
|
166
|
-
const sourceTilesetJson = await load(inputUrl,
|
|
171
|
+
const sourceTilesetJson = await load(inputUrl, this.Loader, tilesetOptions.loadOptions);
|
|
167
172
|
// console.log(tilesetJson); // eslint-disable-line
|
|
168
173
|
this.sourceTileset = new Tileset3D(sourceTilesetJson, tilesetOptions);
|
|
169
174
|
|
|
@@ -636,14 +641,14 @@ export default class I3SConverter {
|
|
|
636
641
|
parentId: number,
|
|
637
642
|
resources: I3SGeometry
|
|
638
643
|
): NodeInPage {
|
|
639
|
-
const {meshMaterial, texture, vertexCount, featureCount} = resources;
|
|
644
|
+
const {meshMaterial, texture, vertexCount, featureCount, geometry} = resources;
|
|
640
645
|
const nodeInPage = {
|
|
641
646
|
lodThreshold: maxScreenThresholdSQ.maxError,
|
|
642
647
|
obb: boundingVolumes.obb,
|
|
643
648
|
children: [],
|
|
644
649
|
mesh: null
|
|
645
650
|
};
|
|
646
|
-
if (sourceTile.content && sourceTile.content.type === 'b3dm') {
|
|
651
|
+
if (geometry && sourceTile.content && sourceTile.content.type === 'b3dm') {
|
|
647
652
|
nodeInPage.mesh = {
|
|
648
653
|
geometry: {
|
|
649
654
|
definition: texture ? 0 : 1
|
|
@@ -717,7 +722,7 @@ export default class I3SConverter {
|
|
|
717
722
|
node.sharedResource = {href: './shared'};
|
|
718
723
|
|
|
719
724
|
if (texture) {
|
|
720
|
-
node.textureData = [{href: './textures/0'}];
|
|
725
|
+
node.textureData = [{href: './textures/0'}, {href: './textures/1'}];
|
|
721
726
|
}
|
|
722
727
|
|
|
723
728
|
if (
|
|
@@ -852,24 +857,41 @@ export default class I3SConverter {
|
|
|
852
857
|
{
|
|
853
858
|
name: '0',
|
|
854
859
|
format
|
|
860
|
+
},
|
|
861
|
+
{
|
|
862
|
+
name: '1',
|
|
863
|
+
format: 'ktx2'
|
|
855
864
|
}
|
|
856
865
|
]
|
|
857
866
|
});
|
|
858
867
|
}
|
|
859
868
|
|
|
860
869
|
const textureData = texture.bufferView.data;
|
|
870
|
+
const ktx2TextureData = await encode(texture.image, KTX2BasisUniversalTextureWriter);
|
|
871
|
+
|
|
861
872
|
if (this.options.slpk) {
|
|
862
873
|
const slpkTexturePath = join(childPath, 'textures');
|
|
863
874
|
const compress = false;
|
|
875
|
+
|
|
864
876
|
this.fileMap[`${slpkChildPath}/textures/0.${format}`] = await writeFileForSlpk(
|
|
865
877
|
slpkTexturePath,
|
|
866
878
|
textureData,
|
|
867
879
|
`0.${format}`,
|
|
868
880
|
compress
|
|
869
881
|
);
|
|
882
|
+
|
|
883
|
+
this.fileMap[`${slpkChildPath}/textures/1.ktx2`] = await writeFileForSlpk(
|
|
884
|
+
slpkTexturePath,
|
|
885
|
+
ktx2TextureData,
|
|
886
|
+
`1.ktx2`,
|
|
887
|
+
compress
|
|
888
|
+
);
|
|
870
889
|
} else {
|
|
871
890
|
const texturePath = join(childPath, 'textures/0/');
|
|
872
891
|
await writeFile(texturePath, textureData, `index.${format}`);
|
|
892
|
+
|
|
893
|
+
const ktx2TexturePath = join(childPath, 'textures/1/');
|
|
894
|
+
await writeFile(ktx2TexturePath, ktx2TextureData, `index.ktx2`);
|
|
873
895
|
}
|
|
874
896
|
}
|
|
875
897
|
}
|
|
@@ -1159,10 +1181,13 @@ export default class I3SConverter {
|
|
|
1159
1181
|
* Fetch preload options for ION tileset
|
|
1160
1182
|
*/
|
|
1161
1183
|
private async _fetchPreloadOptions(): Promise<any> {
|
|
1184
|
+
if (!this.Loader.preload) {
|
|
1185
|
+
return {};
|
|
1186
|
+
}
|
|
1162
1187
|
const options = {
|
|
1163
1188
|
'cesium-ion': {accessToken: this.options.token || ION_DEFAULT_TOKEN}
|
|
1164
1189
|
};
|
|
1165
|
-
const preloadOptions = await
|
|
1190
|
+
const preloadOptions = await this.Loader.preload(this.options.inputUrl, options);
|
|
1166
1191
|
this.refreshTokenTime = process.hrtime();
|
|
1167
1192
|
return {...options, ...preloadOptions};
|
|
1168
1193
|
}
|
|
@@ -9,7 +9,7 @@ export const STORE = {
|
|
|
9
9
|
},
|
|
10
10
|
version: {
|
|
11
11
|
path: 'version',
|
|
12
|
-
default: '1.
|
|
12
|
+
default: '1.8'
|
|
13
13
|
},
|
|
14
14
|
resourcePattern: {
|
|
15
15
|
path: 'resourcePattern',
|
|
@@ -40,7 +40,7 @@ export const STORE = {
|
|
|
40
40
|
},
|
|
41
41
|
textureEncoding: {
|
|
42
42
|
path: 'textureEncoding',
|
|
43
|
-
default: ['image/jpeg']
|
|
43
|
+
default: ['image/jpeg', 'image/ktx2']
|
|
44
44
|
},
|
|
45
45
|
lodType: {
|
|
46
46
|
path: 'lodType',
|
|
@@ -7,7 +7,7 @@ const I3S_LAYER_PATH = process.env.I3sLayerPath || ''; // eslint-disable-line no
|
|
|
7
7
|
const FULL_LAYER_PATH = path.join(process.cwd(), I3S_LAYER_PATH); // eslint-disable-line no-undef
|
|
8
8
|
|
|
9
9
|
async function getFileNameByUrl(url) {
|
|
10
|
-
const extensions = ['json', 'bin', 'jpg', 'jpeg', 'png', 'bin.dds'];
|
|
10
|
+
const extensions = ['json', 'bin', 'jpg', 'jpeg', 'png', 'bin.dds', 'ktx2'];
|
|
11
11
|
for (const ext of extensions) {
|
|
12
12
|
const fileName = `${FULL_LAYER_PATH}${url}/index.${ext}`;
|
|
13
13
|
try {
|