@loaders.gl/tile-converter 4.0.0-alpha.23 → 4.0.0-alpha.25

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 (118) hide show
  1. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +4 -4
  2. package/dist/3d-tiles-converter/helpers/load-i3s.d.ts.map +1 -1
  3. package/dist/converter.min.js +105 -105
  4. package/dist/dist.min.js +725 -652
  5. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +18 -18
  6. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  7. package/dist/es5/3d-tiles-converter/helpers/load-i3s.js.map +1 -1
  8. package/dist/es5/deps-installer/deps-installer.js +1 -1
  9. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +16 -14
  10. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  11. package/dist/es5/i3s-converter/helpers/feature-attributes.js +6 -18
  12. package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -1
  13. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +83 -44
  14. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  15. package/dist/es5/i3s-converter/helpers/geometry-converter.js +13 -83
  16. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  17. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +15 -8
  18. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
  19. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  20. package/dist/es5/i3s-converter/types.js.map +1 -1
  21. package/dist/es5/pgm-loader.js +11 -3
  22. package/dist/es5/pgm-loader.js.map +1 -1
  23. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +8 -8
  24. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  25. package/dist/esm/3d-tiles-converter/helpers/load-i3s.js.map +1 -1
  26. package/dist/esm/deps-installer/deps-installer.js +1 -1
  27. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +5 -15
  28. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  29. package/dist/esm/i3s-converter/helpers/feature-attributes.js +5 -5
  30. package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -1
  31. package/dist/esm/i3s-converter/helpers/geometry-attributes.js +76 -34
  32. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  33. package/dist/esm/i3s-converter/helpers/geometry-converter.js +10 -80
  34. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  35. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js +15 -9
  36. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
  37. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  38. package/dist/esm/i3s-converter/types.js.map +1 -1
  39. package/dist/esm/i3s-server/bin/i3s-server.min.js +75 -75
  40. package/dist/esm/pgm-loader.js +7 -4
  41. package/dist/esm/pgm-loader.js.map +1 -1
  42. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +4 -1
  43. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -1
  44. package/dist/i3s-converter/helpers/feature-attributes.d.ts +6 -6
  45. package/dist/i3s-converter/helpers/feature-attributes.d.ts.map +1 -1
  46. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -1
  47. package/dist/i3s-converter/helpers/geometry-converter.d.ts +1 -1
  48. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
  49. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -1
  50. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  51. package/dist/i3s-converter/types.d.ts +13 -5
  52. package/dist/i3s-converter/types.d.ts.map +1 -1
  53. package/dist/pgm-loader.d.ts +9 -2
  54. package/dist/pgm-loader.d.ts.map +1 -1
  55. package/dist/slpk-extractor.min.js +42 -42
  56. package/package.json +14 -14
  57. package/src/3d-tiles-converter/helpers/b3dm-converter.ts +8 -8
  58. package/src/3d-tiles-converter/helpers/load-i3s.ts +1 -0
  59. package/src/i3s-converter/helpers/batch-ids-extensions.ts +14 -35
  60. package/src/i3s-converter/helpers/feature-attributes.ts +14 -11
  61. package/src/i3s-converter/helpers/geometry-attributes.ts +80 -50
  62. package/src/i3s-converter/helpers/geometry-converter.ts +41 -177
  63. package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +30 -9
  64. package/src/i3s-converter/i3s-converter.ts +0 -2
  65. package/src/i3s-converter/types.ts +14 -5
  66. package/src/pgm-loader.ts +15 -7
  67. package/dist/3d-tiles-converter/3d-tiles-converter.js +0 -279
  68. package/dist/3d-tiles-converter/helpers/b3dm-converter.js +0 -271
  69. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +0 -23
  70. package/dist/3d-tiles-converter/helpers/load-i3s.js +0 -42
  71. package/dist/3d-tiles-converter/helpers/texture-atlas.js +0 -54
  72. package/dist/3d-tiles-converter/json-templates/tileset.js +0 -43
  73. package/dist/bundle.js +0 -5
  74. package/dist/constants.js +0 -4
  75. package/dist/converter-cli.js +0 -222
  76. package/dist/deps-installer/deps-installer.js +0 -89
  77. package/dist/i3s-converter/helpers/batch-ids-extensions.js +0 -179
  78. package/dist/i3s-converter/helpers/coordinate-converter.js +0 -122
  79. package/dist/i3s-converter/helpers/create-scene-server-path.js +0 -28
  80. package/dist/i3s-converter/helpers/feature-attributes.js +0 -218
  81. package/dist/i3s-converter/helpers/geometry-attributes.js +0 -203
  82. package/dist/i3s-converter/helpers/geometry-converter.js +0 -1321
  83. package/dist/i3s-converter/helpers/gltf-attributes.js +0 -129
  84. package/dist/i3s-converter/helpers/load-3d-tiles.js +0 -99
  85. package/dist/i3s-converter/helpers/node-debug.js +0 -120
  86. package/dist/i3s-converter/helpers/node-index-document.js +0 -271
  87. package/dist/i3s-converter/helpers/node-pages.js +0 -316
  88. package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +0 -100
  89. package/dist/i3s-converter/helpers/tileset-traversal.js +0 -29
  90. package/dist/i3s-converter/i3s-converter.js +0 -964
  91. package/dist/i3s-converter/json-templates/geometry-definitions.js +0 -87
  92. package/dist/i3s-converter/json-templates/layers.js +0 -139
  93. package/dist/i3s-converter/json-templates/metadata.js +0 -25
  94. package/dist/i3s-converter/json-templates/node.js +0 -89
  95. package/dist/i3s-converter/json-templates/scene-server.js +0 -31
  96. package/dist/i3s-converter/json-templates/shared-resources.js +0 -129
  97. package/dist/i3s-converter/json-templates/store.js +0 -103
  98. package/dist/i3s-converter/types.js +0 -17
  99. package/dist/i3s-server/app.js +0 -29
  100. package/dist/i3s-server/bin/www.js +0 -37
  101. package/dist/i3s-server/controllers/index-controller.js +0 -31
  102. package/dist/i3s-server/controllers/slpk-controller.js +0 -33
  103. package/dist/i3s-server/routes/index.js +0 -20
  104. package/dist/i3s-server/routes/slpk-router.js +0 -34
  105. package/dist/i3s-server/utils/create-scene-server.js +0 -22
  106. package/dist/i3s-server/utils/server-utils.js +0 -66
  107. package/dist/index.js +0 -10
  108. package/dist/lib/utils/cli-utils.js +0 -82
  109. package/dist/lib/utils/compress-util.js +0 -257
  110. package/dist/lib/utils/file-utils.js +0 -139
  111. package/dist/lib/utils/geometry-utils.js +0 -18
  112. package/dist/lib/utils/lod-conversion-utils.js +0 -76
  113. package/dist/lib/utils/queue.js +0 -18
  114. package/dist/lib/utils/statistic-utills.js +0 -64
  115. package/dist/lib/utils/write-queue.js +0 -80
  116. package/dist/pgm-loader.js +0 -24
  117. package/dist/slpk-extractor/slpk-extractor.js +0 -75
  118. package/dist/slpk-extractor-cli.js +0 -102
@@ -1,316 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const path_1 = require("path");
7
- const json_map_transform_1 = __importDefault(require("json-map-transform"));
8
- const metadata_1 = require("../json-templates/metadata");
9
- const file_utils_1 = require("../../lib/utils/file-utils");
10
- /**
11
- * class NodePages - wrapper of nodePages array
12
- *
13
- * @example
14
- * import {writeFile} from './helpers/write-file';
15
- *
16
- * // create an instance of the class
17
- * const nodePages = new NodePages(writeFile, HARDCODED_NODES_PER_PAGE);
18
- * ...
19
- * // push root node
20
- * const parent = await nodePages.push({
21
- lodThreshold: HARDCODED_MAX_SCREEN_THRESHOLD_SQ,
22
- obb: coordinates.obb,
23
- children: []
24
- });
25
- * ...
26
- * // push node with parent relation
27
- * const nodeInPage = {
28
- lodThreshold: HARDCODED_MAX_SCREEN_THRESHOLD_SQ,
29
- obb: coordinates.obb,
30
- children: [],
31
- mesh: {
32
- geometry: {
33
- definition: 0
34
- }
35
- }
36
- };
37
- * const node = await this.nodePages.push(nodeInPage, parent.index);
38
- * ...
39
- * // save all the nodePages in the end of pushing all the nodes
40
- * await this.nodePages.save(layers0path);
41
- */
42
- class NodePages {
43
- /**
44
- * @constructs
45
- * Create a nodePages instance.
46
- * @param writeFileFunc - function to save one nodePage into a file
47
- * @param nodesPerPage - length limit for one nodePage. An additional nodePage is created when this limit is met
48
- */
49
- constructor(writeFileFunc, nodesPerPage, converter) {
50
- this.length = 0;
51
- this.nodesPerPage = nodesPerPage;
52
- this.nodesCounter = 0;
53
- // @ts-expect-error
54
- this.nodePages = [{}];
55
- this.nodePages[0].nodes = [];
56
- this.writeFile = writeFileFunc;
57
- this.converter = converter;
58
- this.length = 0;
59
- }
60
- /**
61
- * Setup function to save node pages
62
- * @param func - function which should be used to save node pages
63
- */
64
- useWriteFunction(func) {
65
- this.writeFile = func;
66
- }
67
- /**
68
- * Get file path and file name of the node page with the particular id
69
- * @param nodePageId - node page id
70
- * @returns file path and file name
71
- */
72
- getNodePageFileName(nodePageId) {
73
- let filePath;
74
- let fileName;
75
- if (this.converter.options.slpk) {
76
- filePath = (0, path_1.join)(this.converter.layers0Path, 'nodepages');
77
- fileName = `${nodePageId.toString()}.json`;
78
- }
79
- else {
80
- filePath = (0, path_1.join)(this.converter.layers0Path, 'nodepages', nodePageId.toString());
81
- fileName = 'index.json';
82
- }
83
- return { filePath, fileName };
84
- }
85
- /**
86
- * Load node page from a file on the disk
87
- * @param nodePageId - node page id
88
- * @returns - node page data
89
- */
90
- async loadNodePage(nodePageId) {
91
- const { filePath, fileName } = this.getNodePageFileName(nodePageId);
92
- const fullName = (0, path_1.join)(filePath, fileName);
93
- if (await (0, file_utils_1.isFileExists)(fullName)) {
94
- console.log(`load ${fullName}.`); // eslint-disable-line
95
- return (await (0, file_utils_1.openJson)(filePath, fileName));
96
- }
97
- else {
98
- return { nodes: [] };
99
- }
100
- }
101
- /**
102
- * Get nodepage id by node id
103
- * @param id node id
104
- * @returns node page id
105
- */
106
- getPageIndexByNodeId(id) {
107
- return Math.floor(id / this.nodesPerPage);
108
- }
109
- /**
110
- * Get node page data by node id
111
- * @param id node id
112
- * @returns node page data
113
- */
114
- async getPageByNodeId(id) {
115
- const pageIndex = this.getPageIndexByNodeId(id);
116
- if (this.converter.options.instantNodeWriting) {
117
- return await this.loadNodePage(pageIndex);
118
- }
119
- return this.nodePages[pageIndex];
120
- }
121
- /**
122
- * Get the node by its end-to-end index
123
- * @param id - end-to-end index of the node
124
- * @return the node object
125
- */
126
- async getNodeById(id, nodePage) {
127
- const nodeIndex = id % this.nodesPerPage;
128
- nodePage = nodePage || (await this.getPageByNodeId(id));
129
- return nodePage.nodes[nodeIndex];
130
- }
131
- /**
132
- * Add a child id into the parent node.children array
133
- * @param parentId - end-to-end parent node index
134
- * @param childId - end-to-end child node index
135
- */
136
- async addChildRelation(parentId, childId) {
137
- if (parentId === null || parentId === undefined) {
138
- return;
139
- }
140
- const parentNode = await this.getNodeById(parentId);
141
- parentNode.children?.push(childId);
142
- await this.saveNode(parentNode);
143
- }
144
- /**
145
- * Put new node in nodePages array
146
- * @param node - node object
147
- * @param parentId - index of parent node
148
- * @return
149
- */
150
- async push(node, parentId) {
151
- node.index = this.nodesCounter++;
152
- if (!this.converter.options.instantNodeWriting) {
153
- let currentNodePage = this.nodePages[this.nodePages.length - 1];
154
- if (currentNodePage.nodes.length === this.nodesPerPage) {
155
- currentNodePage = { nodes: [] };
156
- this.nodePages.push(currentNodePage);
157
- }
158
- currentNodePage.nodes.push(node);
159
- }
160
- await this.addChildRelation(parentId, node.index);
161
- NodePages.updateResourceInMesh(node);
162
- await this.saveNode(node);
163
- return node;
164
- }
165
- /**
166
- * Save node to the file on the disk
167
- * @param node - node data
168
- */
169
- async saveNode(node) {
170
- if (!this.converter.options.instantNodeWriting) {
171
- return;
172
- }
173
- else {
174
- const nodePageIndex = this.getPageIndexByNodeId(node.index);
175
- const nodePage = await this.getPageByNodeId(node.index);
176
- const { filePath, fileName } = this.getNodePageFileName(nodePageIndex);
177
- const nodeToUpdate = await this.getNodeById(node.index, nodePage);
178
- if (nodeToUpdate) {
179
- NodePages.updateAll(nodeToUpdate, node);
180
- }
181
- else {
182
- nodePage.nodes.push(node);
183
- }
184
- const nodePageStr = JSON.stringify(nodePage);
185
- if (this.converter.options.slpk) {
186
- await this.converter.writeQueue.enqueue({
187
- archiveKey: `nodePages/${nodePageIndex.toString()}.json.gz`,
188
- writePromise: () => this.writeFile(filePath, nodePageStr, fileName, true, this.converter.compressList)
189
- }, true);
190
- }
191
- else {
192
- await this.converter.writeQueue.enqueue({
193
- writePromise: () => this.writeFile(filePath, nodePageStr)
194
- }, true);
195
- }
196
- }
197
- }
198
- /**
199
- * Save metadata file (for slpk only)
200
- */
201
- async saveMetadata() {
202
- const metadata = (0, json_map_transform_1.default)({ nodeCount: this.nodesCounter }, (0, metadata_1.METADATA)());
203
- const compress = false;
204
- await this.converter.writeQueue.enqueue({
205
- archiveKey: 'metadata.json',
206
- writePromise: () => this.writeFile(this.converter.layers0Path, JSON.stringify(metadata), 'metadata.json', compress)
207
- });
208
- }
209
- /**
210
- * Save all the node pages
211
- * Run this method when all nodes is pushed in nodePages
212
- */
213
- async save() {
214
- if (this.converter.options.instantNodeWriting) {
215
- await this.saveMetadata();
216
- return;
217
- }
218
- if (this.converter.options.slpk) {
219
- for (const [index, nodePage] of this.nodePages.entries()) {
220
- const nodePageStr = JSON.stringify(nodePage);
221
- const slpkPath = (0, path_1.join)(this.converter.layers0Path, 'nodepages');
222
- await this.converter.writeQueue.enqueue({
223
- archiveKey: `nodePages/${index.toString()}.json.gz`,
224
- writePromise: () => this.writeFile(slpkPath, nodePageStr, `${index.toString()}.json`)
225
- });
226
- }
227
- await this.saveMetadata();
228
- }
229
- else {
230
- for (const [index, nodePage] of this.nodePages.entries()) {
231
- const nodePageStr = JSON.stringify(nodePage);
232
- const nodePagePath = (0, path_1.join)(this.converter.layers0Path, 'nodepages', index.toString());
233
- await this.converter.writeQueue.enqueue({
234
- writePromise: () => this.writeFile(nodePagePath, nodePageStr)
235
- });
236
- }
237
- }
238
- }
239
- /**
240
- * Update resource index in node.mesh object
241
- * @param node - node object
242
- */
243
- static updateResourceInMesh(node) {
244
- if (node.mesh && isFinite(node.index)) {
245
- node.mesh.geometry.resource = node.index;
246
- }
247
- }
248
- /**
249
- * Update all fields in the node excluding id
250
- * @param node - node object
251
- * @param data - NodeInPage data to replace original data
252
- */
253
- static updateAll(node, data) {
254
- Object.assign(node, data, { index: node.index });
255
- NodePages.updateResourceInMesh(node);
256
- return node;
257
- }
258
- /**
259
- * Update material in node.mesh object by node id
260
- * @param id - end-to-end index of the node
261
- * @param materialId - id from scene layer materialDefinitions
262
- */
263
- static updateMaterialByNodeId(node, materialId) {
264
- if (!node.mesh) {
265
- return;
266
- }
267
- node.mesh.material = {
268
- definition: materialId,
269
- resource: node.index
270
- };
271
- }
272
- /**
273
- * Update vertexCount in node.mesh.geometry object by node id
274
- * @param id - end-to-end index of the node
275
- * @param vertexCount - vertex count for particular node
276
- */
277
- static updateVertexCountByNodeId(node, vertexCount) {
278
- if (!node.mesh) {
279
- return;
280
- }
281
- node.mesh.geometry.vertexCount = vertexCount;
282
- }
283
- /**
284
- * Update resource in node.mesh.attribute object by node id
285
- * @param node - node object
286
- */
287
- static updateNodeAttributeByNodeId(node) {
288
- if (!node.mesh || !node.index) {
289
- return;
290
- }
291
- node.mesh.attribute.resource = node.index;
292
- }
293
- /**
294
- * Update featureCount in node.mesh.geometry object by node id
295
- * @param node - node object
296
- * @param featureCount - features count of the node
297
- */
298
- static updateFeatureCountByNodeId(node, featureCount) {
299
- if (!node.mesh) {
300
- return;
301
- }
302
- node.mesh.geometry.featureCount = featureCount;
303
- }
304
- /**
305
- * Update texelCountHint in node.mesh.material object by node id
306
- * @param node - node object
307
- * @param texelCountHint - texelCountHint of particular node
308
- */
309
- static updateTexelCountHintByNodeId(node, texelCountHint) {
310
- if (!node.mesh || !node.mesh.material) {
311
- return;
312
- }
313
- node.mesh.material.texelCountHint = texelCountHint;
314
- }
315
- }
316
- exports.default = NodePages;
@@ -1,100 +0,0 @@
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
- const gltf_2 = require("@loaders.gl/gltf");
8
- /**
9
- * glTF primitive modes
10
- * @see https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_mesh_primitive_mode
11
- */
12
- exports.GLTF_PRIMITIVE_MODES = [
13
- types_1.GLTFPrimitiveModeString.POINTS,
14
- types_1.GLTFPrimitiveModeString.LINES,
15
- types_1.GLTFPrimitiveModeString.LINE_LOOP,
16
- types_1.GLTFPrimitiveModeString.LINE_STRIP,
17
- types_1.GLTFPrimitiveModeString.TRIANGLES,
18
- types_1.GLTFPrimitiveModeString.TRIANGLE_STRIP,
19
- types_1.GLTFPrimitiveModeString.TRIANGLE_FAN // 6
20
- ];
21
- /**
22
- * Analyze tile content. This function is used during preprocess stage of
23
- * conversion
24
- * @param tileContent - 3DTiles tile content ArrayBuffer
25
- * @returns
26
- */
27
- const analyzeTileContent = async (tileContent) => {
28
- const defaultResult = {
29
- meshTopologyTypes: new Set(),
30
- metadataClasses: new Set()
31
- };
32
- if (!tileContent?.gltfArrayBuffer) {
33
- return defaultResult;
34
- }
35
- const gltfData = await (0, core_1.parse)(tileContent.gltfArrayBuffer, gltf_1.GLTFLoader, {
36
- gltf: { normalize: false, loadBuffers: false, loadImages: false, decompressMeshes: false }
37
- });
38
- const gltf = gltfData.json;
39
- if (!gltf) {
40
- return defaultResult;
41
- }
42
- const meshTopologyTypes = getMeshTypesFromGltf(gltf);
43
- const metadataClasses = getMetadataClassesFromGltf(gltf);
44
- return {
45
- meshTopologyTypes,
46
- metadataClasses
47
- };
48
- };
49
- exports.analyzeTileContent = analyzeTileContent;
50
- /**
51
- * Get mesh topology types that the glb content has
52
- * @param gltfJson - JSON part of GLB content
53
- * @returns array of mesh types found
54
- */
55
- const getMeshTypesFromGltf = (gltfJson) => {
56
- const result = new Set();
57
- for (const mesh of gltfJson.meshes || []) {
58
- for (const primitive of mesh.primitives) {
59
- let { mode } = primitive;
60
- if (typeof mode !== 'number') {
61
- mode = 4; // Default is 4 - TRIANGLES
62
- }
63
- result.add(exports.GLTF_PRIMITIVE_MODES[mode]);
64
- }
65
- }
66
- return result;
67
- };
68
- /**
69
- * Get feature metadata classes from glTF
70
- * @param gltfJson - JSON part of GLB content
71
- * @returns array of classes
72
- */
73
- const getMetadataClassesFromGltf = (gltfJson) => {
74
- const result = new Set();
75
- const classes = gltfJson.extensions?.[gltf_2.EXT_FEATURE_METADATA]
76
- ?.schema?.classes;
77
- if (classes) {
78
- for (const classKey of Object.keys(classes)) {
79
- result.add(classKey);
80
- }
81
- }
82
- return result;
83
- };
84
- /**
85
- * Merge object2 into object1
86
- * @param object1
87
- * @param object2
88
- * @returns nothing
89
- */
90
- const mergePreprocessData = (object1, object2) => {
91
- // Merge topology mesh types info
92
- for (const type of object2.meshTopologyTypes) {
93
- object1.meshTopologyTypes.add(type);
94
- }
95
- // Merge feature metadata classes
96
- for (const metadataClass of object2.metadataClasses) {
97
- object1.metadataClasses.add(metadataClass);
98
- }
99
- };
100
- exports.mergePreprocessData = mergePreprocessData;
@@ -1,29 +0,0 @@
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;