@loaders.gl/tile-converter 4.0.0-alpha.11 → 4.0.0-alpha.13
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/3d-tiles-attributes-worker.js +2 -2
- package/dist/converter.min.js +65 -65
- package/dist/dist.min.js +778 -231
- package/dist/es5/3d-tiles-attributes-worker.js +1 -1
- package/dist/es5/deps-installer/deps-installer.js +1 -1
- package/dist/es5/i3s-attributes-worker.js +1 -1
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +6 -0
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +58 -37
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/pgm-loader.js +1 -1
- package/dist/esm/3d-tiles-attributes-worker.js +1 -1
- package/dist/esm/deps-installer/deps-installer.js +1 -1
- package/dist/esm/i3s-attributes-worker.js +1 -1
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +6 -0
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +21 -8
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/pgm-loader.js +1 -1
- package/dist/i3s-attributes-worker.js +2 -2
- package/dist/i3s-attributes-worker.js.map +2 -2
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-converter.js +3 -0
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.js +20 -5
- package/dist/i3s-converter/types.js +1 -1
- package/package.json +14 -14
- package/src/i3s-converter/helpers/batch-ids-extensions.ts +5 -5
- package/src/i3s-converter/helpers/geometry-converter.ts +15 -10
- package/src/i3s-converter/i3s-converter.ts +23 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry-converter.d.ts","sourceRoot":"","sources":["../../../src/i3s-converter/helpers/geometry-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAE,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"geometry-converter.d.ts","sourceRoot":"","sources":["../../../src/i3s-converter/helpers/geometry-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAE,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAW/E,OAAO,EAAU,OAAO,EAAU,MAAM,eAAe,CAAC;AAUxD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EAGvB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,oBAAoB,EAIrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AACrC,+DAA+D;AAC/D,OAAO,EACL,kBAAkB,EAEnB,MAAM,6BAA6B,CAAC;AAarC,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AA0BrE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAA8B,wBAAwB,CACpD,WAAW,EAAE,kBAAkB,EAC/B,aAAa,EAAE,OAAO,EACtB,kBAAkB,EAAE,mBAAmB,GAAG,cAAc,EACxD,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EACxC,aAAa,EAAE,gBAAgB,GAAG,IAAI,EACtC,iBAAiB,EAAE,MAAM,EAAE,EAC3B,oBAAoB,EAAE,oBAAoB,EAAE,GAAG,SAAS,EACxD,KAAK,EAAE,OAAO,EACd,uBAAuB,EAAE,OAAO,EAChC,oBAAoB,EAAE,OAAO,EAC7B,gBAAgB,EAAE,KAAK,EACvB,YAAY,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAC,GACpC,OAAO,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC,CA8DzC;AA6ID;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,cAAc,EAAE,kBAAkB,EAClC,sBAAsB,EAAE,sBAAsB,EAAE,EAChD,qBAAqB,EAAE,OAAO,GAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAgD3C;AA4pCD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI,GAAG,gBAAgB,GAAG,IAAI,CAwBhG"}
|
|
@@ -1178,6 +1178,9 @@ function getPropertyTableExtension(tileContent) {
|
|
|
1178
1178
|
break;
|
|
1179
1179
|
}
|
|
1180
1180
|
}
|
|
1181
|
+
if (!extensionName) {
|
|
1182
|
+
return { extensionName: null, extension: null };
|
|
1183
|
+
}
|
|
1181
1184
|
const extension = tileContent?.gltf?.extensions?.[extensionName];
|
|
1182
1185
|
return { extensionName, extension };
|
|
1183
1186
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i3s-converter.d.ts","sourceRoot":"","sources":["../../src/i3s-converter/i3s-converter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"i3s-converter.d.ts","sourceRoot":"","sources":["../../src/i3s-converter/i3s-converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -227,10 +227,16 @@ class I3SConverter {
|
|
|
227
227
|
if (sourceTile.id) {
|
|
228
228
|
console.log(`[analyze]: ${sourceTile.id}`); // eslint-disable-line
|
|
229
229
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
230
|
+
let tileContent = null;
|
|
231
|
+
try {
|
|
232
|
+
tileContent = await (0, load_3d_tiles_1.loadTile3DContent)(this.sourceTileset, sourceTile, {
|
|
233
|
+
...this.loadOptions,
|
|
234
|
+
'3d-tiles': { ...this.loadOptions['3d-tiles'], loadGLTF: false }
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
catch (error) {
|
|
238
|
+
console.log(`[warning]: Failed to load ${sourceTile.contentUrl}. An I3S tile with empty content will be added to the output tileset`);
|
|
239
|
+
}
|
|
234
240
|
const tilePreprocessData = await (0, preprocess_3d_tiles_1.analyzeTileContent)(tileContent);
|
|
235
241
|
(0, preprocess_3d_tiles_1.mergePreprocessData)(this.preprocessData, tilePreprocessData);
|
|
236
242
|
return null;
|
|
@@ -430,7 +436,13 @@ class I3SConverter {
|
|
|
430
436
|
async _createNode(parentNode, sourceTile, transformationMatrix) {
|
|
431
437
|
this._checkAddRefinementTypeForTile(sourceTile);
|
|
432
438
|
await this._updateTilesetOptions();
|
|
433
|
-
|
|
439
|
+
let tileContent = null;
|
|
440
|
+
try {
|
|
441
|
+
tileContent = await (0, load_3d_tiles_1.loadTile3DContent)(this.sourceTileset, sourceTile, this.loadOptions);
|
|
442
|
+
}
|
|
443
|
+
catch (error) {
|
|
444
|
+
console.log(`[warning]: Failed to load ${sourceTile.contentUrl}`);
|
|
445
|
+
}
|
|
434
446
|
const sourceBoundingVolume = (0, tiles_1.createBoundingVolume)(sourceTile.boundingVolume, transformationMatrix, null);
|
|
435
447
|
let boundingVolumes = (0, coordinate_converter_1.createBoundingVolumes)(sourceBoundingVolume, this.geoidHeightModel);
|
|
436
448
|
const propertyTable = (0, geometry_converter_1.getPropertyTable)(tileContent);
|
|
@@ -546,6 +558,9 @@ class I3SConverter {
|
|
|
546
558
|
else {
|
|
547
559
|
node = await this.nodePages.getNodeById(nodeId);
|
|
548
560
|
}
|
|
561
|
+
if (!nodeInPage.mesh) {
|
|
562
|
+
console.log(`[warning]: node ${node.index} is created with empty content`);
|
|
563
|
+
}
|
|
549
564
|
node_pages_1.default.updateAll(node, nodeInPage);
|
|
550
565
|
if (meshMaterial) {
|
|
551
566
|
node_pages_1.default.updateMaterialByNodeId(node, this._findOrCreateMaterial(meshMaterial));
|
|
@@ -14,4 +14,4 @@ var GltfPrimitiveModeString;
|
|
|
14
14
|
GltfPrimitiveModeString["TRIANGLES"] = "TRIANGLES";
|
|
15
15
|
GltfPrimitiveModeString["TRIANGLE_STRIP"] = "TRIANGLE_STRIP";
|
|
16
16
|
GltfPrimitiveModeString["TRIANGLE_FAN"] = "TRIANGLE_FAN";
|
|
17
|
-
})(GltfPrimitiveModeString
|
|
17
|
+
})(GltfPrimitiveModeString || (exports.GltfPrimitiveModeString = GltfPrimitiveModeString = {}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/tile-converter",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.13",
|
|
4
4
|
"description": "Converter",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -46,18 +46,18 @@
|
|
|
46
46
|
"build-3d-tiles-attributes-worker": "esbuild src/workers/3d-tiles-attributes-worker.ts --outfile=dist/3d-tiles-attributes-worker.js --platform=node --target=esnext,node14 --external:join-images --minify --bundle --sourcemap --define:__VERSION__=\\\"$npm_package_version\\\""
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@loaders.gl/3d-tiles": "4.0.0-alpha.
|
|
50
|
-
"@loaders.gl/crypto": "4.0.0-alpha.
|
|
51
|
-
"@loaders.gl/draco": "4.0.0-alpha.
|
|
52
|
-
"@loaders.gl/gltf": "4.0.0-alpha.
|
|
53
|
-
"@loaders.gl/i3s": "4.0.0-alpha.
|
|
54
|
-
"@loaders.gl/images": "4.0.0-alpha.
|
|
55
|
-
"@loaders.gl/loader-utils": "4.0.0-alpha.
|
|
56
|
-
"@loaders.gl/polyfills": "4.0.0-alpha.
|
|
57
|
-
"@loaders.gl/textures": "4.0.0-alpha.
|
|
58
|
-
"@loaders.gl/tiles": "4.0.0-alpha.
|
|
59
|
-
"@loaders.gl/worker-utils": "4.0.0-alpha.
|
|
60
|
-
"@loaders.gl/zip": "4.0.0-alpha.
|
|
49
|
+
"@loaders.gl/3d-tiles": "4.0.0-alpha.13",
|
|
50
|
+
"@loaders.gl/crypto": "4.0.0-alpha.13",
|
|
51
|
+
"@loaders.gl/draco": "4.0.0-alpha.13",
|
|
52
|
+
"@loaders.gl/gltf": "4.0.0-alpha.13",
|
|
53
|
+
"@loaders.gl/i3s": "4.0.0-alpha.13",
|
|
54
|
+
"@loaders.gl/images": "4.0.0-alpha.13",
|
|
55
|
+
"@loaders.gl/loader-utils": "4.0.0-alpha.13",
|
|
56
|
+
"@loaders.gl/polyfills": "4.0.0-alpha.13",
|
|
57
|
+
"@loaders.gl/textures": "4.0.0-alpha.13",
|
|
58
|
+
"@loaders.gl/tiles": "4.0.0-alpha.13",
|
|
59
|
+
"@loaders.gl/worker-utils": "4.0.0-alpha.13",
|
|
60
|
+
"@loaders.gl/zip": "4.0.0-alpha.13",
|
|
61
61
|
"@math.gl/core": "^3.5.1",
|
|
62
62
|
"@math.gl/culling": "^3.5.1",
|
|
63
63
|
"@math.gl/geoid": "^3.5.1",
|
|
@@ -80,5 +80,5 @@
|
|
|
80
80
|
"join-images": "^1.1.3",
|
|
81
81
|
"sharp": "^0.31.3"
|
|
82
82
|
},
|
|
83
|
-
"gitHead": "
|
|
83
|
+
"gitHead": "32421ea66db35040f1026be734a7ec9f905ecab7"
|
|
84
84
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {GLTFAccessorPostprocessed, GLTFMeshPrimitivePostprocessed} from '@loaders.gl/gltf';
|
|
2
2
|
import type {NumericArray} from '@loaders.gl/loader-utils';
|
|
3
3
|
import type {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
GLTF_EXT_feature_metadata_FeatureIdTexture,
|
|
5
|
+
GLTF_EXT_feature_metadata_Primitive
|
|
6
6
|
} from '@loaders.gl/gltf';
|
|
7
7
|
import {TypedArray} from '@math.gl/core';
|
|
8
8
|
import {TextureImageProperties} from '../../i3s-attributes-worker';
|
|
@@ -34,7 +34,7 @@ export function handleBatchIdsExtensions(
|
|
|
34
34
|
case EXT_FEATURE_METADATA:
|
|
35
35
|
return handleExtFeatureMetadataExtension(
|
|
36
36
|
attributes,
|
|
37
|
-
extensionData as
|
|
37
|
+
extensionData as GLTF_EXT_feature_metadata_Primitive,
|
|
38
38
|
images
|
|
39
39
|
);
|
|
40
40
|
case EXT_MESH_FEATURES:
|
|
@@ -59,7 +59,7 @@ function handleExtFeatureMetadataExtension(
|
|
|
59
59
|
attributes: {
|
|
60
60
|
[key: string]: GLTFAccessorPostprocessed;
|
|
61
61
|
},
|
|
62
|
-
extFeatureMetadata:
|
|
62
|
+
extFeatureMetadata: GLTF_EXT_feature_metadata_Primitive,
|
|
63
63
|
images: (TextureImageProperties | null)[]
|
|
64
64
|
): NumericArray {
|
|
65
65
|
// Take only first extension object to get batchIds attribute name.
|
|
@@ -146,7 +146,7 @@ function generateImplicitFeatureIds(
|
|
|
146
146
|
* @param featureIdTextures
|
|
147
147
|
*/
|
|
148
148
|
function generateBatchIdsFromTexture(
|
|
149
|
-
featureIdTexture:
|
|
149
|
+
featureIdTexture: GLTF_EXT_feature_metadata_FeatureIdTexture,
|
|
150
150
|
textureCoordinates: TypedArray,
|
|
151
151
|
images: (TextureImageProperties | null)[]
|
|
152
152
|
) {
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import type {FeatureTableJson, Tiles3DTileContent} from '@loaders.gl/3d-tiles';
|
|
2
2
|
import type {
|
|
3
|
-
GLTF_EXT_feature_metadata,
|
|
4
|
-
GLTF_EXT_mesh_features,
|
|
5
3
|
GLTFAccessorPostprocessed,
|
|
6
4
|
GLTFMaterialPostprocessed,
|
|
7
5
|
GLTFNodePostprocessed,
|
|
8
6
|
GLTFMeshPrimitivePostprocessed,
|
|
9
7
|
GLTFMeshPostprocessed,
|
|
10
|
-
GLTFTexturePostprocessed
|
|
8
|
+
GLTFTexturePostprocessed,
|
|
9
|
+
GLTF_EXT_feature_metadata_GLTF
|
|
11
10
|
} from '@loaders.gl/gltf';
|
|
12
11
|
|
|
13
12
|
import {Vector3, Matrix4, Vector4} from '@math.gl/core';
|
|
@@ -1577,7 +1576,7 @@ export function getPropertyTable(tileContent: Tiles3DTileContent | null): Featur
|
|
|
1577
1576
|
return null;
|
|
1578
1577
|
}
|
|
1579
1578
|
case EXT_FEATURE_METADATA: {
|
|
1580
|
-
return getPropertyTableFromExtFeatureMetadata(extension as
|
|
1579
|
+
return getPropertyTableFromExtFeatureMetadata(extension as GLTF_EXT_feature_metadata_GLTF);
|
|
1581
1580
|
}
|
|
1582
1581
|
default:
|
|
1583
1582
|
return null;
|
|
@@ -1588,9 +1587,10 @@ export function getPropertyTable(tileContent: Tiles3DTileContent | null): Featur
|
|
|
1588
1587
|
* Check extensions which can be with property table inside.
|
|
1589
1588
|
* @param tileContent - 3DTiles tile content
|
|
1590
1589
|
*/
|
|
1591
|
-
function getPropertyTableExtension(
|
|
1592
|
-
|
|
1593
|
-
|
|
1590
|
+
function getPropertyTableExtension(tileContent: Tiles3DTileContent): {
|
|
1591
|
+
extensionName: null | string;
|
|
1592
|
+
extension: string | GLTF_EXT_feature_metadata_GLTF | null;
|
|
1593
|
+
} {
|
|
1594
1594
|
const extensionsWithPropertyTables = [EXT_FEATURE_METADATA, EXT_MESH_FEATURES];
|
|
1595
1595
|
const extensionsUsed = tileContent?.gltf?.extensionsUsed;
|
|
1596
1596
|
|
|
@@ -1599,7 +1599,6 @@ function getPropertyTableExtension(
|
|
|
1599
1599
|
}
|
|
1600
1600
|
|
|
1601
1601
|
let extensionName: string = '';
|
|
1602
|
-
|
|
1603
1602
|
for (const extensionItem of tileContent?.gltf?.extensionsUsed || []) {
|
|
1604
1603
|
if (extensionsWithPropertyTables.includes(extensionItem)) {
|
|
1605
1604
|
extensionName = extensionItem;
|
|
@@ -1607,7 +1606,13 @@ function getPropertyTableExtension(
|
|
|
1607
1606
|
}
|
|
1608
1607
|
}
|
|
1609
1608
|
|
|
1610
|
-
|
|
1609
|
+
if (!extensionName) {
|
|
1610
|
+
return {extensionName: null, extension: null};
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
const extension = tileContent?.gltf?.extensions?.[extensionName] as
|
|
1614
|
+
| string // EXT_mesh_features doesn't have global metadata
|
|
1615
|
+
| GLTF_EXT_feature_metadata_GLTF;
|
|
1611
1616
|
|
|
1612
1617
|
return {extensionName, extension};
|
|
1613
1618
|
}
|
|
@@ -1617,7 +1622,7 @@ function getPropertyTableExtension(
|
|
|
1617
1622
|
* @param extension
|
|
1618
1623
|
*/
|
|
1619
1624
|
function getPropertyTableFromExtFeatureMetadata(
|
|
1620
|
-
extension:
|
|
1625
|
+
extension: GLTF_EXT_feature_metadata_GLTF
|
|
1621
1626
|
): FeatureTableJson | null {
|
|
1622
1627
|
if (extension?.featureTables) {
|
|
1623
1628
|
/**
|
|
@@ -313,10 +313,18 @@ export default class I3SConverter {
|
|
|
313
313
|
if (sourceTile.id) {
|
|
314
314
|
console.log(`[analyze]: ${sourceTile.id}`); // eslint-disable-line
|
|
315
315
|
}
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
316
|
+
|
|
317
|
+
let tileContent: Tiles3DTileContent | null = null;
|
|
318
|
+
try {
|
|
319
|
+
tileContent = await loadTile3DContent(this.sourceTileset, sourceTile, {
|
|
320
|
+
...this.loadOptions,
|
|
321
|
+
'3d-tiles': {...this.loadOptions['3d-tiles'], loadGLTF: false}
|
|
322
|
+
});
|
|
323
|
+
} catch (error) {
|
|
324
|
+
console.log(
|
|
325
|
+
`[warning]: Failed to load ${sourceTile.contentUrl}. An I3S tile with empty content will be added to the output tileset`
|
|
326
|
+
);
|
|
327
|
+
}
|
|
320
328
|
const tilePreprocessData = await analyzeTileContent(tileContent);
|
|
321
329
|
mergePreprocessData(this.preprocessData, tilePreprocessData);
|
|
322
330
|
|
|
@@ -576,7 +584,12 @@ export default class I3SConverter {
|
|
|
576
584
|
|
|
577
585
|
await this._updateTilesetOptions();
|
|
578
586
|
|
|
579
|
-
|
|
587
|
+
let tileContent: Tiles3DTileContent | null = null;
|
|
588
|
+
try {
|
|
589
|
+
tileContent = await loadTile3DContent(this.sourceTileset, sourceTile, this.loadOptions);
|
|
590
|
+
} catch (error) {
|
|
591
|
+
console.log(`[warning]: Failed to load ${sourceTile.contentUrl}`);
|
|
592
|
+
}
|
|
580
593
|
const sourceBoundingVolume = createBoundingVolume(
|
|
581
594
|
sourceTile.boundingVolume,
|
|
582
595
|
transformationMatrix,
|
|
@@ -753,13 +766,17 @@ export default class I3SConverter {
|
|
|
753
766
|
}
|
|
754
767
|
|
|
755
768
|
let nodeId = resources.nodeId;
|
|
756
|
-
let node;
|
|
769
|
+
let node: NodeInPage;
|
|
757
770
|
if (!nodeId) {
|
|
758
771
|
node = await this.nodePages.push(nodeInPage, parentId);
|
|
759
772
|
} else {
|
|
760
773
|
node = await this.nodePages.getNodeById(nodeId);
|
|
761
774
|
}
|
|
762
775
|
|
|
776
|
+
if (!nodeInPage.mesh) {
|
|
777
|
+
console.log(`[warning]: node ${node.index} is created with empty content`);
|
|
778
|
+
}
|
|
779
|
+
|
|
763
780
|
NodePages.updateAll(node, nodeInPage);
|
|
764
781
|
if (meshMaterial) {
|
|
765
782
|
NodePages.updateMaterialByNodeId(node, this._findOrCreateMaterial(meshMaterial));
|