@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
@@ -49,8 +49,8 @@ var analyzeTileContent = function () {
49
49
  }
50
50
  return _context.abrupt("return", defaultResult);
51
51
  case 9:
52
- meshTopologyTypes = getMeshTypesFromGltf(gltf);
53
- metadataClasses = getMetadataClassesFromGltf(gltf);
52
+ meshTopologyTypes = getMeshTypesFromGLTF(gltf);
53
+ metadataClasses = getMetadataClassesFromGLTF(gltf);
54
54
  return _context.abrupt("return", {
55
55
  meshTopologyTypes: meshTopologyTypes,
56
56
  metadataClasses: metadataClasses
@@ -66,7 +66,7 @@ var analyzeTileContent = function () {
66
66
  };
67
67
  }();
68
68
  exports.analyzeTileContent = analyzeTileContent;
69
- var getMeshTypesFromGltf = function getMeshTypesFromGltf(gltfJson) {
69
+ var getMeshTypesFromGLTF = function getMeshTypesFromGLTF(gltfJson) {
70
70
  var result = new Set();
71
71
  var _iterator = _createForOfIteratorHelper(gltfJson.meshes || []),
72
72
  _step;
@@ -97,16 +97,23 @@ var getMeshTypesFromGltf = function getMeshTypesFromGltf(gltfJson) {
97
97
  }
98
98
  return result;
99
99
  };
100
- var getMetadataClassesFromGltf = function getMetadataClassesFromGltf(gltfJson) {
101
- var _gltfJson$extensions, _gltfJson$extensions$, _gltfJson$extensions$2;
100
+ var getMetadataClassesFromGLTF = function getMetadataClassesFromGLTF(gltfJson) {
101
+ var _gltfJson$extensions, _gltfJson$extensions$, _gltfJson$extensions$2, _gltfJson$extensions2, _gltfJson$extensions3, _gltfJson$extensions4;
102
102
  var result = new Set();
103
- var classes = (_gltfJson$extensions = gltfJson.extensions) === null || _gltfJson$extensions === void 0 ? void 0 : (_gltfJson$extensions$ = _gltfJson$extensions[_gltf.EXT_FEATURE_METADATA]) === null || _gltfJson$extensions$ === void 0 ? void 0 : (_gltfJson$extensions$2 = _gltfJson$extensions$.schema) === null || _gltfJson$extensions$2 === void 0 ? void 0 : _gltfJson$extensions$2.classes;
104
- if (classes) {
105
- for (var _i = 0, _Object$keys = Object.keys(classes); _i < _Object$keys.length; _i++) {
103
+ var extFeatureMetadataClasses = (_gltfJson$extensions = gltfJson.extensions) === null || _gltfJson$extensions === void 0 ? void 0 : (_gltfJson$extensions$ = _gltfJson$extensions[_gltf.EXT_FEATURE_METADATA]) === null || _gltfJson$extensions$ === void 0 ? void 0 : (_gltfJson$extensions$2 = _gltfJson$extensions$.schema) === null || _gltfJson$extensions$2 === void 0 ? void 0 : _gltfJson$extensions$2.classes;
104
+ if (extFeatureMetadataClasses) {
105
+ for (var _i = 0, _Object$keys = Object.keys(extFeatureMetadataClasses); _i < _Object$keys.length; _i++) {
106
106
  var classKey = _Object$keys[_i];
107
107
  result.add(classKey);
108
108
  }
109
109
  }
110
+ var extStructuralMetadataClasses = (_gltfJson$extensions2 = gltfJson.extensions) === null || _gltfJson$extensions2 === void 0 ? void 0 : (_gltfJson$extensions3 = _gltfJson$extensions2[_gltf.EXT_STRUCTURAL_METADATA]) === null || _gltfJson$extensions3 === void 0 ? void 0 : (_gltfJson$extensions4 = _gltfJson$extensions3.schema) === null || _gltfJson$extensions4 === void 0 ? void 0 : _gltfJson$extensions4.classes;
111
+ if (extStructuralMetadataClasses) {
112
+ for (var _i2 = 0, _Object$keys2 = Object.keys(extStructuralMetadataClasses); _i2 < _Object$keys2.length; _i2++) {
113
+ var _classKey = _Object$keys2[_i2];
114
+ result.add(_classKey);
115
+ }
116
+ }
110
117
  return result;
111
118
  };
112
119
  var mergePreprocessData = function mergePreprocessData(object1, object2) {
@@ -1 +1 @@
1
- {"version":3,"file":"preprocess-3d-tiles.js","names":["_types","require","_gltf","_core","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","GLTF_PRIMITIVE_MODES","GLTFPrimitiveModeString","POINTS","LINES","LINE_LOOP","LINE_STRIP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","exports","analyzeTileContent","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","tileContent","defaultResult","gltfData","gltf","meshTopologyTypes","metadataClasses","wrap","_callee$","_context","prev","Set","gltfArrayBuffer","abrupt","parse","GLTFLoader","normalize","loadBuffers","loadImages","decompressMeshes","sent","json","getMeshTypesFromGltf","getMetadataClassesFromGltf","stop","_x","apply","arguments","gltfJson","result","_iterator","meshes","_step","mesh","_iterator2","primitives","_step2","primitive","mode","add","_gltfJson$extensions","_gltfJson$extensions$","_gltfJson$extensions$2","classes","extensions","EXT_FEATURE_METADATA","schema","_i","_Object$keys","keys","classKey","mergePreprocessData","object1","object2","_iterator3","_step3","type","_iterator4","_step4","metadataClass"],"sources":["../../../../src/i3s-converter/helpers/preprocess-3d-tiles.ts"],"sourcesContent":["import {Tiles3DTileContent} from '@loaders.gl/3d-tiles';\nimport {GLTFPrimitiveModeString, PreprocessData} from '../types';\nimport {GLTF, GLTFLoader, GLTF_EXT_feature_metadata_GLTF} from '@loaders.gl/gltf';\nimport {parse} from '@loaders.gl/core';\nimport {EXT_FEATURE_METADATA} from '@loaders.gl/gltf';\n\n/**\n * glTF primitive modes\n * @see https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_mesh_primitive_mode\n */\nexport const GLTF_PRIMITIVE_MODES = [\n GLTFPrimitiveModeString.POINTS, // 0\n GLTFPrimitiveModeString.LINES, // 1\n GLTFPrimitiveModeString.LINE_LOOP, // 2\n GLTFPrimitiveModeString.LINE_STRIP, // 3\n GLTFPrimitiveModeString.TRIANGLES, // 4\n GLTFPrimitiveModeString.TRIANGLE_STRIP, // 5\n GLTFPrimitiveModeString.TRIANGLE_FAN // 6\n];\n\n/**\n * Analyze tile content. This function is used during preprocess stage of\n * conversion\n * @param tileContent - 3DTiles tile content ArrayBuffer\n * @returns\n */\nexport const analyzeTileContent = async (\n tileContent: Tiles3DTileContent | null\n): Promise<PreprocessData> => {\n const defaultResult = {\n meshTopologyTypes: new Set<GLTFPrimitiveModeString>(),\n metadataClasses: new Set<string>()\n };\n if (!tileContent?.gltfArrayBuffer) {\n return defaultResult;\n }\n\n const gltfData = await parse(tileContent.gltfArrayBuffer, GLTFLoader, {\n gltf: {normalize: false, loadBuffers: false, loadImages: false, decompressMeshes: false}\n });\n const gltf = gltfData.json;\n\n if (!gltf) {\n return defaultResult;\n }\n const meshTopologyTypes = getMeshTypesFromGltf(gltf);\n const metadataClasses = getMetadataClassesFromGltf(gltf);\n return {\n meshTopologyTypes,\n metadataClasses\n };\n};\n\n/**\n * Get mesh topology types that the glb content has\n * @param gltfJson - JSON part of GLB content\n * @returns array of mesh types found\n */\nconst getMeshTypesFromGltf = (gltfJson: GLTF): Set<GLTFPrimitiveModeString> => {\n const result: Set<GLTFPrimitiveModeString> = new Set();\n for (const mesh of gltfJson.meshes || []) {\n for (const primitive of mesh.primitives) {\n let {mode} = primitive;\n if (typeof mode !== 'number') {\n mode = 4; // Default is 4 - TRIANGLES\n }\n result.add(GLTF_PRIMITIVE_MODES[mode]);\n }\n }\n return result;\n};\n\n/**\n * Get feature metadata classes from glTF\n * @param gltfJson - JSON part of GLB content\n * @returns array of classes\n */\nconst getMetadataClassesFromGltf = (gltfJson: GLTF): Set<string> => {\n const result: Set<string> = new Set();\n\n const classes = (gltfJson.extensions?.[EXT_FEATURE_METADATA] as GLTF_EXT_feature_metadata_GLTF)\n ?.schema?.classes;\n\n if (classes) {\n for (const classKey of Object.keys(classes)) {\n result.add(classKey);\n }\n }\n\n return result;\n};\n\n/**\n * Merge object2 into object1\n * @param object1\n * @param object2\n * @returns nothing\n */\nexport const mergePreprocessData = (object1: PreprocessData, object2: PreprocessData): void => {\n // Merge topology mesh types info\n for (const type of object2.meshTopologyTypes) {\n object1.meshTopologyTypes.add(type);\n }\n\n // Merge feature metadata classes\n for (const metadataClass of object2.metadataClasses) {\n object1.metadataClasses.add(metadataClass);\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"preprocess-3d-tiles.js","names":["_types","require","_gltf","_core","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","GLTF_PRIMITIVE_MODES","GLTFPrimitiveModeString","POINTS","LINES","LINE_LOOP","LINE_STRIP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","exports","analyzeTileContent","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","tileContent","defaultResult","gltfData","gltf","meshTopologyTypes","metadataClasses","wrap","_callee$","_context","prev","Set","gltfArrayBuffer","abrupt","parse","GLTFLoader","normalize","loadBuffers","loadImages","decompressMeshes","sent","json","getMeshTypesFromGLTF","getMetadataClassesFromGLTF","stop","_x","apply","arguments","gltfJson","result","_iterator","meshes","_step","mesh","_iterator2","primitives","_step2","primitive","mode","add","_gltfJson$extensions","_gltfJson$extensions$","_gltfJson$extensions$2","_gltfJson$extensions2","_gltfJson$extensions3","_gltfJson$extensions4","extFeatureMetadataClasses","extensions","EXT_FEATURE_METADATA","schema","classes","_i","_Object$keys","keys","classKey","extStructuralMetadataClasses","EXT_STRUCTURAL_METADATA","_i2","_Object$keys2","mergePreprocessData","object1","object2","_iterator3","_step3","type","_iterator4","_step4","metadataClass"],"sources":["../../../../src/i3s-converter/helpers/preprocess-3d-tiles.ts"],"sourcesContent":["import {Tiles3DTileContent} from '@loaders.gl/3d-tiles';\nimport {GLTFPrimitiveModeString, PreprocessData} from '../types';\nimport {\n EXT_STRUCTURAL_METADATA,\n GLTF,\n GLTFLoader,\n GLTF_EXT_feature_metadata_GLTF,\n GLTF_EXT_structural_metadata_GLTF\n} from '@loaders.gl/gltf';\nimport {parse} from '@loaders.gl/core';\nimport {EXT_FEATURE_METADATA} from '@loaders.gl/gltf';\n\n/**\n * glTF primitive modes\n * @see https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_mesh_primitive_mode\n */\nexport const GLTF_PRIMITIVE_MODES = [\n GLTFPrimitiveModeString.POINTS, // 0\n GLTFPrimitiveModeString.LINES, // 1\n GLTFPrimitiveModeString.LINE_LOOP, // 2\n GLTFPrimitiveModeString.LINE_STRIP, // 3\n GLTFPrimitiveModeString.TRIANGLES, // 4\n GLTFPrimitiveModeString.TRIANGLE_STRIP, // 5\n GLTFPrimitiveModeString.TRIANGLE_FAN // 6\n];\n\n/**\n * Analyze tile content. This function is used during preprocess stage of\n * conversion\n * @param tileContent - 3DTiles tile content ArrayBuffer\n * @returns\n */\nexport const analyzeTileContent = async (\n tileContent: Tiles3DTileContent | null\n): Promise<PreprocessData> => {\n const defaultResult = {\n meshTopologyTypes: new Set<GLTFPrimitiveModeString>(),\n metadataClasses: new Set<string>()\n };\n if (!tileContent?.gltfArrayBuffer) {\n return defaultResult;\n }\n\n const gltfData = await parse(tileContent.gltfArrayBuffer, GLTFLoader, {\n gltf: {normalize: false, loadBuffers: false, loadImages: false, decompressMeshes: false}\n });\n const gltf = gltfData.json;\n\n if (!gltf) {\n return defaultResult;\n }\n const meshTopologyTypes = getMeshTypesFromGLTF(gltf);\n const metadataClasses = getMetadataClassesFromGLTF(gltf);\n return {\n meshTopologyTypes,\n metadataClasses\n };\n};\n\n/**\n * Get mesh topology types that the glb content has\n * @param gltfJson - JSON part of GLB content\n * @returns array of mesh types found\n */\nconst getMeshTypesFromGLTF = (gltfJson: GLTF): Set<GLTFPrimitiveModeString> => {\n const result: Set<GLTFPrimitiveModeString> = new Set();\n for (const mesh of gltfJson.meshes || []) {\n for (const primitive of mesh.primitives) {\n let {mode} = primitive;\n if (typeof mode !== 'number') {\n mode = 4; // Default is 4 - TRIANGLES\n }\n result.add(GLTF_PRIMITIVE_MODES[mode]);\n }\n }\n return result;\n};\n\n/**\n * Get feature metadata classes from glTF\n * The tileset might contain multiple metadata classes provided by EXT_feature_metadata and EXT_structural_metadata extensions.\n * Every class is a set of properties. But I3S can consume only one set of properties.\n * On the pre-process we collect all classes from the tileset in order to show the prompt to select one class for conversion to I3S.\n * @param gltfJson - JSON part of GLB content\n * @returns array of classes\n */\nconst getMetadataClassesFromGLTF = (gltfJson: GLTF): Set<string> => {\n const result: Set<string> = new Set();\n\n // Try to parse from EXT_feature_metadata\n const extFeatureMetadataClasses = (\n gltfJson.extensions?.[EXT_FEATURE_METADATA] as GLTF_EXT_feature_metadata_GLTF\n )?.schema?.classes;\n\n if (extFeatureMetadataClasses) {\n for (const classKey of Object.keys(extFeatureMetadataClasses)) {\n result.add(classKey);\n }\n }\n\n // Try to parse from EXT_structural_metadata\n const extStructuralMetadataClasses = (\n gltfJson.extensions?.[EXT_STRUCTURAL_METADATA] as GLTF_EXT_structural_metadata_GLTF\n )?.schema?.classes;\n if (extStructuralMetadataClasses) {\n for (const classKey of Object.keys(extStructuralMetadataClasses)) {\n result.add(classKey);\n }\n }\n\n return result;\n};\n\n/**\n * Merge object2 into object1\n * @param object1\n * @param object2\n * @returns nothing\n */\nexport const mergePreprocessData = (object1: PreprocessData, object2: PreprocessData): void => {\n // Merge topology mesh types info\n for (const type of object2.meshTopologyTypes) {\n object1.meshTopologyTypes.add(type);\n }\n\n // Merge feature metadata classes\n for (const metadataClass of object2.metadataClasses) {\n object1.metadataClasses.add(metadataClass);\n }\n};\n"],"mappings":"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"}