@loaders.gl/tile-converter 4.0.0-alpha.7 → 4.0.0-alpha.9

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.
Files changed (149) hide show
  1. package/dist/3d-tiles-attributes-worker.js +2 -2
  2. package/dist/3d-tiles-attributes-worker.js.map +2 -2
  3. package/dist/converter.min.js +67 -67
  4. package/dist/deps-installer/deps-installer.d.ts.map +1 -1
  5. package/dist/deps-installer/deps-installer.js +3 -2
  6. package/dist/dist.min.js +698 -340
  7. package/dist/es5/3d-tiles-attributes-worker.js +1 -1
  8. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  9. package/dist/es5/deps-installer/deps-installer.js +4 -3
  10. package/dist/es5/deps-installer/deps-installer.js.map +1 -1
  11. package/dist/es5/i3s-attributes-worker.js +1 -1
  12. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +2 -2
  13. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  14. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +6 -7
  15. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  16. package/dist/es5/i3s-converter/helpers/geometry-converter.js +25 -14
  17. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  18. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +45 -12
  19. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -1
  20. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js +82 -0
  21. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js.map +1 -0
  22. package/dist/es5/i3s-converter/helpers/node-index-document.js +74 -45
  23. package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -1
  24. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +111 -0
  25. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -0
  26. package/dist/es5/i3s-converter/helpers/tileset-traversal.js +82 -0
  27. package/dist/es5/i3s-converter/helpers/tileset-traversal.js.map +1 -0
  28. package/dist/es5/i3s-converter/i3s-converter.js +545 -516
  29. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  30. package/dist/es5/i3s-converter/types.js +16 -0
  31. package/dist/es5/i3s-converter/types.js.map +1 -1
  32. package/dist/es5/i3s-server/README.md +19 -0
  33. package/dist/es5/i3s-server/app.js +10 -1
  34. package/dist/es5/i3s-server/app.js.map +1 -1
  35. package/dist/es5/i3s-server/controllers/slpk-controller.js +84 -0
  36. package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -0
  37. package/dist/es5/i3s-server/routes/slpk-router.js +71 -0
  38. package/dist/es5/i3s-server/routes/slpk-router.js.map +1 -0
  39. package/dist/es5/i3s-server/utils/create-scene-server.js +17 -0
  40. package/dist/es5/i3s-server/utils/create-scene-server.js.map +1 -0
  41. package/dist/es5/lib/utils/file-utils.js +1 -1
  42. package/dist/es5/lib/utils/file-utils.js.map +1 -1
  43. package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
  44. package/dist/es5/pgm-loader.js +1 -1
  45. package/dist/esm/3d-tiles-attributes-worker.js +1 -1
  46. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  47. package/dist/esm/deps-installer/deps-installer.js +4 -3
  48. package/dist/esm/deps-installer/deps-installer.js.map +1 -1
  49. package/dist/esm/i3s-attributes-worker.js +1 -1
  50. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +2 -2
  51. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  52. package/dist/esm/i3s-converter/helpers/coordinate-converter.js +6 -7
  53. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  54. package/dist/esm/i3s-converter/helpers/geometry-converter.js +19 -8
  55. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  56. package/dist/esm/i3s-converter/helpers/gltf-attributes.js +49 -12
  57. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -1
  58. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js +35 -0
  59. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js.map +1 -0
  60. package/dist/esm/i3s-converter/helpers/node-index-document.js +14 -1
  61. package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -1
  62. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js +48 -0
  63. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -0
  64. package/dist/esm/i3s-converter/helpers/tileset-traversal.js +14 -0
  65. package/dist/esm/i3s-converter/helpers/tileset-traversal.js.map +1 -0
  66. package/dist/esm/i3s-converter/i3s-converter.js +134 -120
  67. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  68. package/dist/esm/i3s-converter/types.js +10 -1
  69. package/dist/esm/i3s-converter/types.js.map +1 -1
  70. package/dist/esm/i3s-server/README.md +19 -0
  71. package/dist/esm/i3s-server/app.js +11 -1
  72. package/dist/esm/i3s-server/app.js.map +1 -1
  73. package/dist/esm/i3s-server/controllers/slpk-controller.js +36 -0
  74. package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -0
  75. package/dist/esm/i3s-server/routes/slpk-router.js +33 -0
  76. package/dist/esm/i3s-server/routes/slpk-router.js.map +1 -0
  77. package/dist/esm/i3s-server/utils/create-scene-server.js +16 -0
  78. package/dist/esm/i3s-server/utils/create-scene-server.js.map +1 -0
  79. package/dist/esm/lib/utils/file-utils.js +1 -1
  80. package/dist/esm/lib/utils/file-utils.js.map +1 -1
  81. package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
  82. package/dist/esm/pgm-loader.js +1 -1
  83. package/dist/i3s-attributes-worker.js +2 -2
  84. package/dist/i3s-attributes-worker.js.map +2 -2
  85. package/dist/i3s-converter/helpers/batch-ids-extensions.js +2 -5
  86. package/dist/i3s-converter/helpers/coordinate-converter.d.ts +3 -4
  87. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -1
  88. package/dist/i3s-converter/helpers/coordinate-converter.js +8 -9
  89. package/dist/i3s-converter/helpers/geometry-converter.d.ts +9 -4
  90. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
  91. package/dist/i3s-converter/helpers/geometry-converter.js +34 -12
  92. package/dist/i3s-converter/helpers/gltf-attributes.d.ts +22 -3
  93. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -1
  94. package/dist/i3s-converter/helpers/gltf-attributes.js +61 -18
  95. package/dist/i3s-converter/helpers/load-3d-tiles.d.ts +18 -0
  96. package/dist/i3s-converter/helpers/load-3d-tiles.d.ts.map +1 -0
  97. package/dist/i3s-converter/helpers/load-3d-tiles.js +53 -0
  98. package/dist/i3s-converter/helpers/node-index-document.d.ts +8 -0
  99. package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -1
  100. package/dist/i3s-converter/helpers/node-index-document.js +20 -2
  101. package/dist/i3s-converter/helpers/node-pages.js +1 -1
  102. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts +23 -0
  103. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -0
  104. package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +76 -0
  105. package/dist/i3s-converter/helpers/tileset-traversal.d.ts +25 -0
  106. package/dist/i3s-converter/helpers/tileset-traversal.d.ts.map +1 -0
  107. package/dist/i3s-converter/helpers/tileset-traversal.js +29 -0
  108. package/dist/i3s-converter/i3s-converter.d.ts +40 -40
  109. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  110. package/dist/i3s-converter/i3s-converter.js +150 -126
  111. package/dist/i3s-converter/types.d.ts +18 -0
  112. package/dist/i3s-converter/types.d.ts.map +1 -1
  113. package/dist/i3s-converter/types.js +15 -0
  114. package/dist/i3s-server/app.d.ts.map +1 -1
  115. package/dist/i3s-server/app.js +9 -1
  116. package/dist/i3s-server/controllers/slpk-controller.d.ts +3 -0
  117. package/dist/i3s-server/controllers/slpk-controller.d.ts.map +1 -0
  118. package/dist/i3s-server/controllers/slpk-controller.js +32 -0
  119. package/dist/i3s-server/routes/slpk-router.d.ts +3 -0
  120. package/dist/i3s-server/routes/slpk-router.d.ts.map +1 -0
  121. package/dist/i3s-server/routes/slpk-router.js +33 -0
  122. package/dist/i3s-server/utils/create-scene-server.d.ts +11 -0
  123. package/dist/i3s-server/utils/create-scene-server.d.ts.map +1 -0
  124. package/dist/i3s-server/utils/create-scene-server.js +14 -0
  125. package/dist/lib/utils/file-utils.d.ts.map +1 -1
  126. package/dist/lib/utils/file-utils.js +2 -1
  127. package/dist/lib/utils/lod-conversion-utils.d.ts +3 -2
  128. package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -1
  129. package/dist/lib/utils/lod-conversion-utils.js +1 -1
  130. package/package.json +15 -15
  131. package/src/3d-tiles-converter/3d-tiles-converter.ts +5 -5
  132. package/src/deps-installer/deps-installer.ts +3 -2
  133. package/src/i3s-converter/helpers/batch-ids-extensions.ts +2 -5
  134. package/src/i3s-converter/helpers/coordinate-converter.ts +11 -10
  135. package/src/i3s-converter/helpers/geometry-converter.ts +51 -19
  136. package/src/i3s-converter/helpers/gltf-attributes.ts +84 -21
  137. package/src/i3s-converter/helpers/load-3d-tiles.ts +68 -0
  138. package/src/i3s-converter/helpers/node-index-document.ts +22 -2
  139. package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +81 -0
  140. package/src/i3s-converter/helpers/tileset-traversal.ts +51 -0
  141. package/src/i3s-converter/i3s-converter.ts +228 -178
  142. package/src/i3s-converter/types.ts +20 -0
  143. package/src/i3s-server/README.md +19 -0
  144. package/src/i3s-server/app.js +8 -1
  145. package/src/i3s-server/controllers/slpk-controller.js +38 -0
  146. package/src/i3s-server/routes/slpk-router.js +33 -0
  147. package/src/i3s-server/utils/create-scene-server.js +15 -0
  148. package/src/lib/utils/file-utils.ts +2 -1
  149. package/src/lib/utils/lod-conversion-utils.ts +6 -2
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergePreprocessData = exports.analyzeTileContent = exports.GLTF_PRIMITIVE_MODES = void 0;
4
+ const types_1 = require("../types");
5
+ const gltf_1 = require("@loaders.gl/gltf");
6
+ const core_1 = require("@loaders.gl/core");
7
+ /**
8
+ * glTF primitive modes
9
+ * @see https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_mesh_primitive_mode
10
+ */
11
+ exports.GLTF_PRIMITIVE_MODES = [
12
+ types_1.GltfPrimitiveModeString.POINTS,
13
+ types_1.GltfPrimitiveModeString.LINES,
14
+ types_1.GltfPrimitiveModeString.LINE_LOOP,
15
+ types_1.GltfPrimitiveModeString.LINE_STRIP,
16
+ types_1.GltfPrimitiveModeString.TRIANGLES,
17
+ types_1.GltfPrimitiveModeString.TRIANGLE_STRIP,
18
+ types_1.GltfPrimitiveModeString.TRIANGLE_FAN // 6
19
+ ];
20
+ /**
21
+ * Analyze tile content. This function is used during preprocess stage of
22
+ * conversion
23
+ * @param tile - 3DTiles tile JSON metadata
24
+ * @param tileContent - 3DTiles tile content ArrayBuffer
25
+ * @returns
26
+ */
27
+ const analyzeTileContent = async (tile, tileContent) => {
28
+ const result = {
29
+ meshTopologyTypes: new Set()
30
+ };
31
+ if (!tileContent?.gltfArrayBuffer) {
32
+ return result;
33
+ }
34
+ const gltfData = await (0, core_1.parse)(tileContent.gltfArrayBuffer, gltf_1.GLTFLoader, {
35
+ gltf: { normalize: false, loadBuffers: false, loadImages: false, decompressMeshes: false }
36
+ });
37
+ const gltf = gltfData.json;
38
+ if (!gltf) {
39
+ return result;
40
+ }
41
+ const meshTypes = getMeshTypesFromGltf(gltf);
42
+ result.meshTopologyTypes = meshTypes;
43
+ return result;
44
+ };
45
+ exports.analyzeTileContent = analyzeTileContent;
46
+ /**
47
+ * Get mesh topology types that the glb content has
48
+ * @param gltfJson - JSON part of GLB content
49
+ * @returns array of mesh types found
50
+ */
51
+ const getMeshTypesFromGltf = (gltfJson) => {
52
+ const result = new Set();
53
+ for (const mesh of gltfJson.meshes || []) {
54
+ for (const primitive of mesh.primitives) {
55
+ let { mode } = primitive;
56
+ if (typeof mode !== 'number') {
57
+ mode = 4; // Default is 4 - TRIANGLES
58
+ }
59
+ result.add(exports.GLTF_PRIMITIVE_MODES[mode]);
60
+ }
61
+ }
62
+ return result;
63
+ };
64
+ /**
65
+ * Merge object2 into object1
66
+ * @param object1
67
+ * @param object2
68
+ * @returns nothing
69
+ */
70
+ const mergePreprocessData = (object1, object2) => {
71
+ // Merge topology mesh types info
72
+ for (const type of object2.meshTopologyTypes) {
73
+ object1.meshTopologyTypes.add(type);
74
+ }
75
+ };
76
+ exports.mergePreprocessData = mergePreprocessData;
@@ -0,0 +1,25 @@
1
+ import { Tiles3DTileJSONPostprocessed } from '@loaders.gl/3d-tiles';
2
+ import { NodeIndexDocument } from './node-index-document';
3
+ import { Matrix4 } from '@math.gl/core';
4
+ /** Traversal props for the conversion stage */
5
+ export type TraversalConversionProps = {
6
+ /** Transformation matrix for the specific tile */
7
+ transform: Matrix4;
8
+ /** Parent nodes of the converted tile. Multiple nodes can be if one tile is converted to multiple nodes*/
9
+ parentNodes: NodeIndexDocument[];
10
+ };
11
+ /**
12
+ * Travesal of 3DTile tiles tree with making specific actions with each tile
13
+ * @param tile - 3DTiles tile JSON metadata
14
+ * @param traversalProps - traversal props used to pass data through recursive calls
15
+ * @param processTile - callback to make some actions with the current tile
16
+ * @param postprocessTile - callback to make some action after processing of the current tile and all the subtree
17
+ * @param maxDepth - max recursive calls number the travesal function will do. If not set, the traversal function will
18
+ * go through all the tree.
19
+ * This value is used to limit the convertion with only partial number of levels of the tileset
20
+ * @param level - counter to keep recursive calls number of the tiles tree. This value used to be able to break
21
+ * traversal at the some level of the tree
22
+ * @returns void
23
+ */
24
+ export declare const traverseDatasetWith: <TProps>(tile: Tiles3DTileJSONPostprocessed, traversalProps: TProps, processTile: (tile: Tiles3DTileJSONPostprocessed, traversalProps: TProps) => Promise<TProps>, postprocessTile?: ((processResults: TProps[], currentTraversalProps: TProps) => Promise<void>) | undefined, maxDepth?: number, level?: number) => Promise<void>;
25
+ //# sourceMappingURL=tileset-traversal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tileset-traversal.d.ts","sourceRoot":"","sources":["../../../src/i3s-converter/helpers/tileset-traversal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,4BAA4B,EAAC,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAEtC,+CAA+C;AAC/C,MAAM,MAAM,wBAAwB,GAAG;IACrC,kDAAkD;IAClD,SAAS,EAAE,OAAO,CAAC;IACnB,0GAA0G;IAC1G,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,iBACxB,4BAA4B,8CAEd,4BAA4B,8HAC+B,QAAQ,IAAI,CAAC,0BACjF,MAAM,qBAEhB,QAAQ,IAAI,CAkBd,CAAC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.traverseDatasetWith = void 0;
4
+ /**
5
+ * Travesal of 3DTile tiles tree with making specific actions with each tile
6
+ * @param tile - 3DTiles tile JSON metadata
7
+ * @param traversalProps - traversal props used to pass data through recursive calls
8
+ * @param processTile - callback to make some actions with the current tile
9
+ * @param postprocessTile - callback to make some action after processing of the current tile and all the subtree
10
+ * @param maxDepth - max recursive calls number the travesal function will do. If not set, the traversal function will
11
+ * go through all the tree.
12
+ * This value is used to limit the convertion with only partial number of levels of the tileset
13
+ * @param level - counter to keep recursive calls number of the tiles tree. This value used to be able to break
14
+ * traversal at the some level of the tree
15
+ * @returns void
16
+ */
17
+ const traverseDatasetWith = async (tile, traversalProps, processTile, postprocessTile, maxDepth, level = 0) => {
18
+ if (maxDepth && level > maxDepth) {
19
+ return;
20
+ }
21
+ const processResults = [];
22
+ const newTraversalProps = await processTile(tile, traversalProps);
23
+ processResults.push(newTraversalProps);
24
+ for (const childTile of tile.children) {
25
+ await (0, exports.traverseDatasetWith)(childTile, newTraversalProps, processTile, postprocessTile, maxDepth, level + 1);
26
+ }
27
+ postprocessTile && (await postprocessTile(processResults, traversalProps));
28
+ };
29
+ exports.traverseDatasetWith = traverseDatasetWith;
@@ -1,10 +1,11 @@
1
+ import type { Tiles3DLoaderOptions, Tiles3DTilesetJSONPostprocessed } from '@loaders.gl/3d-tiles';
1
2
  import type { WriteQueueItem } from '../lib/utils/write-queue';
2
3
  import type { SceneLayer3D } from '@loaders.gl/i3s';
3
- import { Tileset3D } from '@loaders.gl/tiles';
4
4
  import { Geoid } from '@math.gl/geoid';
5
5
  import NodePages from './helpers/node-pages';
6
6
  import { LoaderWithParser } from '@loaders.gl/loader-utils';
7
- import { I3SMaterialDefinition } from '@loaders.gl/i3s/src/types';
7
+ import { I3SMaterialDefinition } from '@loaders.gl/i3s';
8
+ import { PreprocessData } from './types';
8
9
  import WriteQueue from '../lib/utils/write-queue';
9
10
  /**
10
11
  * Converter from 3d-tiles tileset to i3s layer
@@ -31,7 +32,8 @@ export default class I3SConverter {
31
32
  boundingVolumeWarnings?: string[];
32
33
  conversionStartTime: [number, number];
33
34
  refreshTokenTime: [number, number];
34
- sourceTileset: Tileset3D | null;
35
+ sourceTileset: Tiles3DTilesetJSONPostprocessed | null;
36
+ loadOptions: Tiles3DLoaderOptions;
35
37
  geoidHeightModel: Geoid | null;
36
38
  Loader: LoaderWithParser;
37
39
  generateTextures: boolean;
@@ -42,6 +44,7 @@ export default class I3SConverter {
42
44
  };
43
45
  writeQueue: WriteQueue<WriteQueueItem>;
44
46
  compressList: string[] | null;
47
+ preprocessData: PreprocessData;
45
48
  constructor();
46
49
  /**
47
50
  * Convert a 3d tileset
@@ -75,7 +78,20 @@ export default class I3SConverter {
75
78
  generateTextures?: boolean;
76
79
  generateBoundingVolumes?: boolean;
77
80
  instantNodeWriting?: boolean;
78
- }): Promise<any>;
81
+ }): Promise<string>;
82
+ /**
83
+ * Preprocess stage of the tile converter. Traverse all the tiles tree and
84
+ * check a tile content to be sure that the data is supported
85
+ * @returns true - the conversion is possible, false - the tileset's content is not supported
86
+ */
87
+ private preprocessConversion;
88
+ /**
89
+ * Analyze a tile content. The callback for preprocess stage.
90
+ * @param sourceTile - 3DTiles tile JSON metadata
91
+ * @param traversalProps - mandatory argument but it is not used for the preprocess stage
92
+ * @returns - nothing
93
+ */
94
+ private analyzeTile;
79
95
  /**
80
96
  * Convert and save the layer and embedded tiles
81
97
  * @param outputPath - path to save output data
@@ -84,15 +100,11 @@ export default class I3SConverter {
84
100
  private _createAndSaveTileset;
85
101
  /**
86
102
  * Form object of 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md
87
- * @param tilesetName - Name of layer
103
+ * @param tilesetName - Name of layer
104
+ * @param sourceBoundingVolume - initialized bounding volume of the source root tile
105
+ * @param boundingVolumeRegion - region bounding volume of the source root tile
88
106
  */
89
107
  private _formLayers0;
90
- /**
91
- * Form object of 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md
92
- * @param rootNode - 3DNodeIndexDocument of root node https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md
93
- * @param sourceRootTile - Source (3DTile) tile data
94
- */
95
- private _convertNodesTree;
96
108
  /**
97
109
  * Write 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md in file
98
110
  */
@@ -103,47 +115,35 @@ export default class I3SConverter {
103
115
  */
104
116
  private _createSlpk;
105
117
  /**
106
- * Add child nodes recursively and write them to files
107
- * @param data - arguments
108
- * @param data.parentNode - 3DNodeIndexDocument of parent node
109
- * @param data.sourceTiles - array of source child nodes
110
- * @param data.level - level of node (distanse to root node in the tree)
111
- */
112
- private _addChildrenWithNeighborsAndWriteFile;
113
- /**
114
- * Convert nested subtree of 3DTiles dataset
115
- * @param param0
116
- * @param data.parentNode - 3DNodeIndexDocument of parent node
117
- * @param param0.sourceTile - source 3DTile data
118
- * @param param0.level - tree level
119
- */
120
- private convertNestedTileset;
121
- /**
122
- * Convert 3DTiles tile to I3S node
123
- * @param param0
124
- * @param param0.parentNode - 3DNodeIndexDocument of parent node
125
- * @param param0.sourceTile - source 3DTile data
126
- * @param param0.level - tree level
118
+ * Convert the specific 3DTiles tile to I3S nodes.
119
+ * This is callback function for the traversal generic function
120
+ * @param sourceTile - current 3DTiles tile JSON metadata
121
+ * @param traversalProps - traversal properties calculated recursively
122
+ * @returns - traversal properties for the child tiles
127
123
  */
128
- private convertNode;
124
+ private convertTile;
129
125
  /**
130
- * Add child nodes recursively and write them to files
131
- * @param param0 - arguments
132
- * @param param0.parentNode - 3DNodeIndexDocument of parent node
133
- * @param param0.sourceTile - source 3DTile data
134
- * @param param0.level - tree level
126
+ * Do final action with nodes after the current node and all child nodes been converted.
127
+ * @param conversionResults - array of conversion results of the current node
128
+ * @param currentTraversalProps - traversal properties of the current node
135
129
  */
136
- private _addChildren;
130
+ private finalizeTile;
137
131
  /**
138
132
  * Convert tile to one or more I3S nodes
139
133
  * @param parentNode - 3DNodeIndexDocument of parent node
140
134
  * @param sourceTile - source 3DTile data
135
+ * @param transformationMatrix - transformation matrix of the current tile, calculated recursively multiplying
136
+ * transform of all parent tiles and transform of the current tile
141
137
  * @param level - tree level
142
138
  */
143
139
  private _createNode;
144
140
  /**
145
141
  * Convert tile to one or more I3S nodes
146
142
  * @param sourceTile - source tile (3DTile)
143
+ * @param transformationMatrix - transformation matrix of the current tile, calculated recursively multiplying
144
+ * transform of all parent tiles and transform of the current tile
145
+ * @param boundingVolume - initialized bounding volume of the source tile
146
+ * @param tileContent - content of the source tile
147
147
  * @param parentId - id of parent node in node pages
148
148
  * @param propertyTable - batch table from b3dm / feature properties from EXT_FEATURE_METADATA
149
149
  * @returns - converted node resources
@@ -258,7 +258,7 @@ export default class I3SConverter {
258
258
  private _checkAddRefinementTypeForTile;
259
259
  /**
260
260
  * Check if the tile's content format is supported by the converter
261
- * @param sourceRootTile
261
+ * @param sourceTile
262
262
  * @returns
263
263
  */
264
264
  private isContentSupported;
@@ -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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"}