@loaders.gl/tile-converter 4.0.0-alpha.8 → 4.0.0-beta.1

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 (300) hide show
  1. package/bin/i3s-server.js +4 -0
  2. package/bin/slpk-extractor.js +4 -0
  3. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +5 -5
  4. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
  5. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +10 -5
  6. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -1
  7. package/dist/3d-tiles-converter/helpers/load-i3s.d.ts +10 -0
  8. package/dist/3d-tiles-converter/helpers/load-i3s.d.ts.map +1 -0
  9. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts +2 -1
  10. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts.map +1 -1
  11. package/dist/converter.min.js +172 -103
  12. package/dist/deps-installer/deps-installer.d.ts +3 -2
  13. package/dist/deps-installer/deps-installer.d.ts.map +1 -1
  14. package/dist/dist.min.js +32718 -32568
  15. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +97 -117
  16. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  17. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +24 -22
  18. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  19. package/dist/es5/3d-tiles-converter/helpers/load-i3s.js +63 -0
  20. package/dist/es5/3d-tiles-converter/helpers/load-i3s.js.map +1 -0
  21. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
  22. package/dist/es5/converter-cli.js +25 -65
  23. package/dist/es5/converter-cli.js.map +1 -1
  24. package/dist/es5/deps-installer/deps-installer.js +115 -40
  25. package/dist/es5/deps-installer/deps-installer.js.map +1 -1
  26. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +45 -15
  27. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  28. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  29. package/dist/es5/i3s-converter/helpers/feature-attributes.js +8 -18
  30. package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -1
  31. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +83 -43
  32. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  33. package/dist/es5/i3s-converter/helpers/geometry-converter.js +100 -102
  34. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  35. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -1
  36. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js +70 -4
  37. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js.map +1 -1
  38. package/dist/es5/i3s-converter/helpers/node-index-document.js +3 -2
  39. package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -1
  40. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +47 -12
  41. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
  42. package/dist/es5/i3s-converter/i3s-converter.js +187 -174
  43. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  44. package/dist/es5/i3s-converter/types.js +11 -11
  45. package/dist/es5/i3s-converter/types.js.map +1 -1
  46. package/dist/es5/i3s-server/README.md +46 -2
  47. package/dist/es5/i3s-server/app.js +23 -15
  48. package/dist/es5/i3s-server/app.js.map +1 -1
  49. package/dist/es5/i3s-server/bin/www.js +33 -0
  50. package/dist/es5/i3s-server/bin/www.js.map +1 -0
  51. package/dist/es5/i3s-server/controllers/index-controller.js +23 -22
  52. package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -1
  53. package/dist/es5/i3s-server/controllers/slpk-controller.js +35 -38
  54. package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -1
  55. package/dist/es5/i3s-server/routes/index.js +2 -2
  56. package/dist/es5/i3s-server/routes/index.js.map +1 -1
  57. package/dist/es5/i3s-server/routes/slpk-router.js +14 -13
  58. package/dist/es5/i3s-server/routes/slpk-router.js.map +1 -1
  59. package/dist/es5/i3s-server/utils/create-scene-server.js +7 -4
  60. package/dist/es5/i3s-server/utils/create-scene-server.js.map +1 -1
  61. package/dist/es5/i3s-server/utils/server-utils.js +49 -0
  62. package/dist/es5/i3s-server/utils/server-utils.js.map +1 -0
  63. package/dist/es5/lib/utils/cli-utils.js +57 -0
  64. package/dist/es5/lib/utils/cli-utils.js.map +1 -0
  65. package/dist/es5/lib/utils/compress-util.js +1 -1
  66. package/dist/es5/lib/utils/compress-util.js.map +1 -1
  67. package/dist/es5/lib/utils/lod-conversion-utils.js +10 -4
  68. package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
  69. package/dist/es5/pgm-loader.js +11 -3
  70. package/dist/es5/pgm-loader.js.map +1 -1
  71. package/dist/es5/slpk-extractor/slpk-extractor.js +171 -0
  72. package/dist/es5/slpk-extractor/slpk-extractor.js.map +1 -0
  73. package/dist/es5/slpk-extractor-cli.js +117 -0
  74. package/dist/es5/slpk-extractor-cli.js.map +1 -0
  75. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +51 -58
  76. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  77. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +12 -11
  78. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  79. package/dist/esm/3d-tiles-converter/helpers/load-i3s.js +32 -0
  80. package/dist/esm/3d-tiles-converter/helpers/load-i3s.js.map +1 -0
  81. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
  82. package/dist/esm/converter-cli.js +8 -48
  83. package/dist/esm/converter-cli.js.map +1 -1
  84. package/dist/esm/deps-installer/deps-installer.js +40 -13
  85. package/dist/esm/deps-installer/deps-installer.js.map +1 -1
  86. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +28 -11
  87. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  88. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  89. package/dist/esm/i3s-converter/helpers/feature-attributes.js +10 -8
  90. package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -1
  91. package/dist/esm/i3s-converter/helpers/geometry-attributes.js +77 -34
  92. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  93. package/dist/esm/i3s-converter/helpers/geometry-converter.js +60 -61
  94. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  95. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -1
  96. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js +33 -4
  97. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js.map +1 -1
  98. package/dist/esm/i3s-converter/helpers/node-index-document.js +2 -1
  99. package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -1
  100. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js +37 -12
  101. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
  102. package/dist/esm/i3s-converter/i3s-converter.js +101 -73
  103. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  104. package/dist/esm/i3s-converter/types.js +9 -9
  105. package/dist/esm/i3s-converter/types.js.map +1 -1
  106. package/dist/esm/i3s-server/README.md +46 -2
  107. package/dist/esm/i3s-server/app.js +13 -11
  108. package/dist/esm/i3s-server/app.js.map +1 -1
  109. package/dist/esm/i3s-server/bin/i3s-server.min.js +516 -0
  110. package/dist/esm/i3s-server/bin/www.js +30 -0
  111. package/dist/esm/i3s-server/bin/www.js.map +1 -0
  112. package/dist/esm/i3s-server/controllers/index-controller.js +4 -7
  113. package/dist/esm/i3s-server/controllers/index-controller.js.map +1 -1
  114. package/dist/esm/i3s-server/controllers/slpk-controller.js +9 -26
  115. package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -1
  116. package/dist/esm/i3s-server/routes/index.js +1 -1
  117. package/dist/esm/i3s-server/routes/index.js.map +1 -1
  118. package/dist/esm/i3s-server/routes/slpk-router.js +5 -11
  119. package/dist/esm/i3s-server/routes/slpk-router.js.map +1 -1
  120. package/dist/esm/i3s-server/utils/create-scene-server.js +2 -5
  121. package/dist/esm/i3s-server/utils/create-scene-server.js.map +1 -1
  122. package/dist/esm/i3s-server/utils/server-utils.js +40 -0
  123. package/dist/esm/i3s-server/utils/server-utils.js.map +1 -0
  124. package/dist/esm/lib/utils/cli-utils.js +47 -0
  125. package/dist/esm/lib/utils/cli-utils.js.map +1 -0
  126. package/dist/esm/lib/utils/compress-util.js +1 -1
  127. package/dist/esm/lib/utils/compress-util.js.map +1 -1
  128. package/dist/esm/lib/utils/lod-conversion-utils.js +6 -4
  129. package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
  130. package/dist/esm/pgm-loader.js +7 -4
  131. package/dist/esm/pgm-loader.js.map +1 -1
  132. package/dist/esm/slpk-extractor/slpk-extractor.js +63 -0
  133. package/dist/esm/slpk-extractor/slpk-extractor.js.map +1 -0
  134. package/dist/esm/slpk-extractor-cli.js +74 -0
  135. package/dist/esm/slpk-extractor-cli.js.map +1 -0
  136. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +15 -2
  137. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -1
  138. package/dist/i3s-converter/helpers/coordinate-converter.d.ts +1 -2
  139. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -1
  140. package/dist/i3s-converter/helpers/feature-attributes.d.ts +8 -8
  141. package/dist/i3s-converter/helpers/feature-attributes.d.ts.map +1 -1
  142. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -1
  143. package/dist/i3s-converter/helpers/geometry-converter.d.ts +9 -9
  144. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
  145. package/dist/i3s-converter/helpers/gltf-attributes.d.ts +3 -3
  146. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -1
  147. package/dist/i3s-converter/helpers/load-3d-tiles.d.ts +15 -0
  148. package/dist/i3s-converter/helpers/load-3d-tiles.d.ts.map +1 -1
  149. package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -1
  150. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts +4 -5
  151. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -1
  152. package/dist/i3s-converter/i3s-converter.d.ts +3 -2
  153. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  154. package/dist/i3s-converter/types.d.ts +48 -7
  155. package/dist/i3s-converter/types.d.ts.map +1 -1
  156. package/dist/i3s-server/app.d.ts +1 -2
  157. package/dist/i3s-server/app.d.ts.map +1 -1
  158. package/dist/i3s-server/bin/www.d.ts +3 -0
  159. package/dist/i3s-server/bin/www.d.ts.map +1 -0
  160. package/dist/i3s-server/controllers/index-controller.d.ts +6 -1
  161. package/dist/i3s-server/controllers/index-controller.d.ts.map +1 -1
  162. package/dist/i3s-server/controllers/slpk-controller.d.ts +13 -2
  163. package/dist/i3s-server/controllers/slpk-controller.d.ts.map +1 -1
  164. package/dist/i3s-server/routes/index.d.ts +1 -2
  165. package/dist/i3s-server/routes/index.d.ts.map +1 -1
  166. package/dist/i3s-server/routes/slpk-router.d.ts +2 -2
  167. package/dist/i3s-server/routes/slpk-router.d.ts.map +1 -1
  168. package/dist/i3s-server/utils/create-scene-server.d.ts +11 -5
  169. package/dist/i3s-server/utils/create-scene-server.d.ts.map +1 -1
  170. package/dist/i3s-server/utils/server-utils.d.ts +24 -0
  171. package/dist/i3s-server/utils/server-utils.d.ts.map +1 -0
  172. package/dist/lib/utils/cli-utils.d.ts +34 -0
  173. package/dist/lib/utils/cli-utils.d.ts.map +1 -0
  174. package/dist/lib/utils/lod-conversion-utils.d.ts +2 -2
  175. package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -1
  176. package/dist/pgm-loader.d.ts +9 -2
  177. package/dist/pgm-loader.d.ts.map +1 -1
  178. package/dist/slpk-extractor/slpk-extractor.d.ts +23 -0
  179. package/dist/slpk-extractor/slpk-extractor.d.ts.map +1 -0
  180. package/dist/slpk-extractor-cli.d.ts +17 -0
  181. package/dist/slpk-extractor-cli.d.ts.map +1 -0
  182. package/dist/slpk-extractor.min.js +189 -0
  183. package/package.json +28 -22
  184. package/src/3d-tiles-converter/3d-tiles-converter.ts +65 -69
  185. package/src/3d-tiles-converter/helpers/b3dm-converter.ts +23 -19
  186. package/src/3d-tiles-converter/helpers/load-i3s.ts +52 -0
  187. package/src/3d-tiles-converter/helpers/texture-atlas.ts +6 -2
  188. package/src/converter-cli.ts +16 -74
  189. package/src/deps-installer/deps-installer.ts +58 -12
  190. package/src/i3s-converter/helpers/batch-ids-extensions.ts +77 -32
  191. package/src/i3s-converter/helpers/coordinate-converter.ts +1 -2
  192. package/src/i3s-converter/helpers/feature-attributes.ts +23 -18
  193. package/src/i3s-converter/helpers/geometry-attributes.ts +81 -44
  194. package/src/i3s-converter/helpers/geometry-converter.ts +149 -126
  195. package/src/i3s-converter/helpers/gltf-attributes.ts +9 -10
  196. package/src/i3s-converter/helpers/load-3d-tiles.ts +61 -5
  197. package/src/i3s-converter/helpers/node-index-document.ts +5 -1
  198. package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +70 -21
  199. package/src/i3s-converter/i3s-converter.ts +145 -73
  200. package/src/i3s-converter/types.ts +49 -7
  201. package/src/i3s-server/README.md +46 -2
  202. package/src/i3s-server/{app.js → app.ts} +11 -9
  203. package/src/i3s-server/bin/www.ts +38 -0
  204. package/src/i3s-server/controllers/{index-controller.js → index-controller.ts} +10 -9
  205. package/src/i3s-server/controllers/slpk-controller.ts +32 -0
  206. package/src/i3s-server/routes/{index.js → index.ts} +2 -1
  207. package/src/i3s-server/routes/{slpk-router.js → slpk-router.ts} +5 -10
  208. package/src/i3s-server/utils/create-scene-server.ts +20 -0
  209. package/src/i3s-server/utils/server-utils.ts +70 -0
  210. package/src/lib/utils/cli-utils.ts +78 -0
  211. package/src/lib/utils/compress-util.ts +1 -1
  212. package/src/lib/utils/lod-conversion-utils.ts +10 -6
  213. package/src/pgm-loader.ts +15 -7
  214. package/src/slpk-extractor/slpk-extractor.ts +101 -0
  215. package/src/slpk-extractor-cli.ts +128 -0
  216. package/dist/3d-tiles-attributes-worker.d.ts +0 -28
  217. package/dist/3d-tiles-attributes-worker.d.ts.map +0 -1
  218. package/dist/3d-tiles-attributes-worker.js +0 -3
  219. package/dist/3d-tiles-attributes-worker.js.map +0 -7
  220. package/dist/3d-tiles-converter/3d-tiles-converter.js +0 -288
  221. package/dist/3d-tiles-converter/helpers/b3dm-converter.js +0 -269
  222. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +0 -23
  223. package/dist/3d-tiles-converter/helpers/texture-atlas.js +0 -52
  224. package/dist/3d-tiles-converter/json-templates/tileset.js +0 -43
  225. package/dist/bundle.js +0 -5
  226. package/dist/constants.js +0 -4
  227. package/dist/converter-cli.js +0 -280
  228. package/dist/deps-installer/deps-installer.js +0 -62
  229. package/dist/es5/3d-tiles-attributes-worker.js +0 -25
  230. package/dist/es5/3d-tiles-attributes-worker.js.map +0 -1
  231. package/dist/es5/i3s-attributes-worker.js +0 -25
  232. package/dist/es5/i3s-attributes-worker.js.map +0 -1
  233. package/dist/es5/i3s-server/bin/www +0 -102
  234. package/dist/es5/workers/3d-tiles-attributes-worker.js +0 -28
  235. package/dist/es5/workers/3d-tiles-attributes-worker.js.map +0 -1
  236. package/dist/es5/workers/i3s-attributes-worker.js +0 -30
  237. package/dist/es5/workers/i3s-attributes-worker.js.map +0 -1
  238. package/dist/esm/3d-tiles-attributes-worker.js +0 -16
  239. package/dist/esm/3d-tiles-attributes-worker.js.map +0 -1
  240. package/dist/esm/i3s-attributes-worker.js +0 -16
  241. package/dist/esm/i3s-attributes-worker.js.map +0 -1
  242. package/dist/esm/i3s-server/bin/www +0 -102
  243. package/dist/esm/workers/3d-tiles-attributes-worker.js +0 -8
  244. package/dist/esm/workers/3d-tiles-attributes-worker.js.map +0 -1
  245. package/dist/esm/workers/i3s-attributes-worker.js +0 -7
  246. package/dist/esm/workers/i3s-attributes-worker.js.map +0 -1
  247. package/dist/i3s-attributes-worker.d.ts +0 -45
  248. package/dist/i3s-attributes-worker.d.ts.map +0 -1
  249. package/dist/i3s-attributes-worker.js +0 -9
  250. package/dist/i3s-attributes-worker.js.map +0 -7
  251. package/dist/i3s-converter/helpers/batch-ids-extensions.js +0 -138
  252. package/dist/i3s-converter/helpers/coordinate-converter.js +0 -123
  253. package/dist/i3s-converter/helpers/create-scene-server-path.js +0 -28
  254. package/dist/i3s-converter/helpers/feature-attributes.js +0 -216
  255. package/dist/i3s-converter/helpers/geometry-attributes.js +0 -202
  256. package/dist/i3s-converter/helpers/geometry-converter.js +0 -1225
  257. package/dist/i3s-converter/helpers/gltf-attributes.js +0 -128
  258. package/dist/i3s-converter/helpers/load-3d-tiles.js +0 -53
  259. package/dist/i3s-converter/helpers/node-debug.js +0 -120
  260. package/dist/i3s-converter/helpers/node-index-document.js +0 -268
  261. package/dist/i3s-converter/helpers/node-pages.js +0 -316
  262. package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +0 -76
  263. package/dist/i3s-converter/helpers/tileset-traversal.js +0 -29
  264. package/dist/i3s-converter/i3s-converter.js +0 -911
  265. package/dist/i3s-converter/json-templates/geometry-definitions.js +0 -87
  266. package/dist/i3s-converter/json-templates/layers.js +0 -139
  267. package/dist/i3s-converter/json-templates/metadata.js +0 -25
  268. package/dist/i3s-converter/json-templates/node.js +0 -89
  269. package/dist/i3s-converter/json-templates/scene-server.js +0 -31
  270. package/dist/i3s-converter/json-templates/shared-resources.js +0 -129
  271. package/dist/i3s-converter/json-templates/store.js +0 -103
  272. package/dist/i3s-converter/types.js +0 -17
  273. package/dist/i3s-server/app.js +0 -22
  274. package/dist/i3s-server/controllers/index-controller.js +0 -23
  275. package/dist/i3s-server/controllers/slpk-controller.js +0 -32
  276. package/dist/i3s-server/routes/index.js +0 -16
  277. package/dist/i3s-server/routes/slpk-router.js +0 -33
  278. package/dist/i3s-server/utils/create-scene-server.js +0 -14
  279. package/dist/index.js +0 -10
  280. package/dist/lib/utils/compress-util.js +0 -257
  281. package/dist/lib/utils/file-utils.js +0 -139
  282. package/dist/lib/utils/geometry-utils.js +0 -18
  283. package/dist/lib/utils/lod-conversion-utils.js +0 -76
  284. package/dist/lib/utils/queue.js +0 -18
  285. package/dist/lib/utils/statistic-utills.js +0 -64
  286. package/dist/lib/utils/write-queue.js +0 -80
  287. package/dist/pgm-loader.js +0 -24
  288. package/dist/workers/3d-tiles-attributes-worker.d.ts +0 -2
  289. package/dist/workers/3d-tiles-attributes-worker.d.ts.map +0 -1
  290. package/dist/workers/3d-tiles-attributes-worker.js +0 -9
  291. package/dist/workers/i3s-attributes-worker.d.ts +0 -2
  292. package/dist/workers/i3s-attributes-worker.d.ts.map +0 -1
  293. package/dist/workers/i3s-attributes-worker.js +0 -5
  294. package/src/3d-tiles-attributes-worker.ts +0 -43
  295. package/src/i3s-attributes-worker.ts +0 -59
  296. package/src/i3s-server/bin/www +0 -102
  297. package/src/i3s-server/controllers/slpk-controller.js +0 -38
  298. package/src/i3s-server/utils/create-scene-server.js +0 -15
  299. package/src/workers/3d-tiles-attributes-worker.ts +0 -6
  300. package/src/workers/i3s-attributes-worker.ts +0 -7
@@ -36,9 +36,7 @@ var _textures = require("@loaders.gl/textures");
36
36
  var _images = require("@loaders.gl/images");
37
37
  var _types = require("./types");
38
38
  var _workerUtils = require("@loaders.gl/worker-utils");
39
- var _draco = require("@loaders.gl/draco");
40
39
  var _writeQueue = _interopRequireDefault(require("../lib/utils/write-queue"));
41
- var _i3sAttributesWorker = require("../i3s-attributes-worker");
42
40
  var _constants = require("../constants");
43
41
  var _featureAttributes = require("./helpers/feature-attributes");
44
42
  var _nodeIndexDocument = require("./helpers/node-index-document");
@@ -55,7 +53,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
55
53
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
56
54
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
57
55
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
58
- var ION_DEFAULT_TOKEN = ((_process$env = _process.default.env) === null || _process$env === void 0 ? void 0 : _process$env.IonToken) || 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ';
56
+ var ION_DEFAULT_TOKEN = (_process$env = _process.default.env) === null || _process$env === void 0 ? void 0 : _process$env.IonToken;
59
57
  var HARDCODED_NODES_PER_PAGE = 64;
60
58
  var _3D_TILES = '3DTILES';
61
59
  var _3D_OBJECT_LAYER_TYPE = '3DObject';
@@ -83,6 +81,7 @@ var I3SConverter = function () {
83
81
  (0, _defineProperty2.default)(this, "loadOptions", {
84
82
  _nodeWorkers: true,
85
83
  reuseWorkers: true,
84
+ useLocalLibraries: true,
86
85
  basis: {
87
86
  format: 'rgba32',
88
87
  workerUrl: './modules/textures/dist/basis-worker-node.js'
@@ -90,7 +89,8 @@ var I3SConverter = function () {
90
89
  draco: {
91
90
  workerUrl: './modules/draco/dist/draco-worker-node.js'
92
91
  },
93
- fetch: {}
92
+ fetch: {},
93
+ modules: {}
94
94
  });
95
95
  (0, _defineProperty2.default)(this, "geoidHeightModel", null);
96
96
  (0, _defineProperty2.default)(this, "Loader", _dTiles.Tiles3DLoader);
@@ -101,7 +101,8 @@ var I3SConverter = function () {
101
101
  (0, _defineProperty2.default)(this, "writeQueue", new _writeQueue.default());
102
102
  (0, _defineProperty2.default)(this, "compressList", null);
103
103
  (0, _defineProperty2.default)(this, "preprocessData", {
104
- meshTopologyTypes: new Set()
104
+ meshTopologyTypes: new Set(),
105
+ metadataClasses: new Set()
105
106
  });
106
107
  this.nodePages = new _nodePages.default(_fileUtils.writeFile, HARDCODED_NODES_PER_PAGE, this);
107
108
  this.options = {};
@@ -127,7 +128,7 @@ var I3SConverter = function () {
127
128
  key: "convert",
128
129
  value: function () {
129
130
  var _convert = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
130
- var tilesetName, slpk, egmFilePath, inputUrl, validate, outputPath, _options$draco, draco, sevenZipExe, maxDepth, token, generateTextures, generateBoundingVolumes, _options$instantNodeW, instantNodeWriting, _options$mergeMateria, mergeMaterials, preloadOptions, preprocessResult, workerFarm;
131
+ var tilesetName, slpk, egmFilePath, inputUrl, validate, outputPath, _options$draco, draco, sevenZipExe, maxDepth, token, generateTextures, generateBoundingVolumes, _options$instantNodeW, instantNodeWriting, _options$mergeMateria, mergeMaterials, inquirer, metadataClass, preloadOptions, tilesetUrl, preprocessResult, workerFarm;
131
132
  return _regenerator.default.wrap(function _callee$(_context) {
132
133
  while (1) switch (_context.prev = _context.next) {
133
134
  case 0:
@@ -139,7 +140,7 @@ var I3SConverter = function () {
139
140
  return _context.abrupt("return", _constants.BROWSER_ERROR_MESSAGE);
140
141
  case 3:
141
142
  this.conversionStartTime = _process.default.hrtime();
142
- tilesetName = options.tilesetName, slpk = options.slpk, egmFilePath = options.egmFilePath, inputUrl = options.inputUrl, validate = options.validate, outputPath = options.outputPath, _options$draco = options.draco, draco = _options$draco === void 0 ? true : _options$draco, sevenZipExe = options.sevenZipExe, maxDepth = options.maxDepth, token = options.token, generateTextures = options.generateTextures, generateBoundingVolumes = options.generateBoundingVolumes, _options$instantNodeW = options.instantNodeWriting, instantNodeWriting = _options$instantNodeW === void 0 ? false : _options$instantNodeW, _options$mergeMateria = options.mergeMaterials, mergeMaterials = _options$mergeMateria === void 0 ? true : _options$mergeMateria;
143
+ tilesetName = options.tilesetName, slpk = options.slpk, egmFilePath = options.egmFilePath, inputUrl = options.inputUrl, validate = options.validate, outputPath = options.outputPath, _options$draco = options.draco, draco = _options$draco === void 0 ? true : _options$draco, sevenZipExe = options.sevenZipExe, maxDepth = options.maxDepth, token = options.token, generateTextures = options.generateTextures, generateBoundingVolumes = options.generateBoundingVolumes, _options$instantNodeW = options.instantNodeWriting, instantNodeWriting = _options$instantNodeW === void 0 ? false : _options$instantNodeW, _options$mergeMateria = options.mergeMaterials, mergeMaterials = _options$mergeMateria === void 0 ? true : _options$mergeMateria, inquirer = options.inquirer, metadataClass = options.metadataClass;
143
144
  this.options = {
144
145
  maxDepth: maxDepth,
145
146
  slpk: slpk,
@@ -149,7 +150,9 @@ var I3SConverter = function () {
149
150
  token: token,
150
151
  inputUrl: inputUrl,
151
152
  instantNodeWriting: instantNodeWriting,
152
- mergeMaterials: mergeMaterials
153
+ mergeMaterials: mergeMaterials,
154
+ inquirer: inquirer,
155
+ metadataClass: metadataClass
153
156
  };
154
157
  this.compressList = this.options.instantNodeWriting && [] || null;
155
158
  this.validate = Boolean(validate);
@@ -167,21 +170,22 @@ var I3SConverter = function () {
167
170
  if (slpk) {
168
171
  this.nodePages.useWriteFunction(_fileUtils.writeFileForSlpk);
169
172
  }
170
- _context.next = 21;
171
- return this.loadWorkers();
172
- case 21:
173
- _context.prev = 21;
174
- _context.next = 24;
173
+ _context.prev = 19;
174
+ _context.next = 22;
175
175
  return this._fetchPreloadOptions();
176
- case 24:
176
+ case 22:
177
177
  preloadOptions = _context.sent;
178
+ tilesetUrl = inputUrl;
179
+ if (preloadOptions.url) {
180
+ tilesetUrl = preloadOptions.url;
181
+ }
178
182
  if (preloadOptions.headers) {
179
183
  this.loadOptions.fetch = {
180
184
  headers: preloadOptions.headers
181
185
  };
182
186
  }
183
187
  _context.next = 28;
184
- return (0, _core.load)(inputUrl, this.Loader, this.loadOptions);
188
+ return (0, _load3dTiles.loadFromArchive)(tilesetUrl, this.Loader, this.loadOptions);
185
189
  case 28:
186
190
  this.sourceTileset = _context.sent;
187
191
  _context.next = 31;
@@ -206,7 +210,7 @@ var I3SConverter = function () {
206
210
  break;
207
211
  case 39:
208
212
  _context.prev = 39;
209
- _context.t0 = _context["catch"](21);
213
+ _context.t0 = _context["catch"](19);
210
214
  throw _context.t0;
211
215
  case 42:
212
216
  _context.prev = 42;
@@ -222,7 +226,7 @@ var I3SConverter = function () {
222
226
  case "end":
223
227
  return _context.stop();
224
228
  }
225
- }, _callee, this, [[21, 39, 42, 48]]);
229
+ }, _callee, this, [[19, 39, 42, 48]]);
226
230
  }));
227
231
  function convert(_x) {
228
232
  return _convert.apply(this, arguments);
@@ -233,7 +237,7 @@ var I3SConverter = function () {
233
237
  key: "preprocessConversion",
234
238
  value: function () {
235
239
  var _preprocessConversion = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {
236
- var sourceRootTile, meshTopologyTypes;
240
+ var sourceRootTile, _this$preprocessData, meshTopologyTypes, metadataClasses, _this$options$metadat, result;
237
241
  return _regenerator.default.wrap(function _callee2$(_context2) {
238
242
  while (1) switch (_context2.prev = _context2.next) {
239
243
  case 0:
@@ -242,21 +246,60 @@ var I3SConverter = function () {
242
246
  _context2.next = 4;
243
247
  return (0, _tilesetTraversal.traverseDatasetWith)(sourceRootTile, null, this.analyzeTile.bind(this), undefined, this.options.maxDepth);
244
248
  case 4:
245
- meshTopologyTypes = this.preprocessData.meshTopologyTypes;
249
+ _this$preprocessData = this.preprocessData, meshTopologyTypes = _this$preprocessData.meshTopologyTypes, metadataClasses = _this$preprocessData.metadataClasses;
246
250
  console.log("------------------------------------------------");
247
251
  console.log("Preprocess results:");
248
252
  console.log("glTF mesh topology types: ".concat(Array.from(meshTopologyTypes).join(', ')));
253
+ if (metadataClasses.size) {
254
+ console.log("Feature metadata classes have been found: ".concat(Array.from(metadataClasses).join(', ')));
255
+ } else {
256
+ console.log('Feature metadata classes have not been found');
257
+ }
249
258
  console.log("------------------------------------------------");
250
- if (!(!meshTopologyTypes.has(_types.GltfPrimitiveModeString.TRIANGLES) && !meshTopologyTypes.has(_types.GltfPrimitiveModeString.TRIANGLE_STRIP))) {
251
- _context2.next = 13;
259
+ if (!(!meshTopologyTypes.has(_types.GLTFPrimitiveModeString.TRIANGLES) && !meshTopologyTypes.has(_types.GLTFPrimitiveModeString.TRIANGLE_STRIP))) {
260
+ _context2.next = 14;
252
261
  break;
253
262
  }
254
263
  console.log('The tileset is of unsupported mesh topology types. The conversion will be interrupted.');
255
264
  console.log("------------------------------------------------");
256
265
  return _context2.abrupt("return", false);
257
- case 13:
258
- return _context2.abrupt("return", true);
259
266
  case 14:
267
+ if (!(metadataClasses.size > 1)) {
268
+ _context2.next = 30;
269
+ break;
270
+ }
271
+ if (!((_this$options$metadat = this.options.metadataClass) !== null && _this$options$metadat !== void 0 && _this$options$metadat.length)) {
272
+ _context2.next = 19;
273
+ break;
274
+ }
275
+ console.log("".concat(this.options.metadataClass, " has been selected"));
276
+ _context2.next = 30;
277
+ break;
278
+ case 19:
279
+ if (!this.options.inquirer) {
280
+ _context2.next = 27;
281
+ break;
282
+ }
283
+ _context2.next = 22;
284
+ return this.options.inquirer.prompt([{
285
+ name: 'metadataClass',
286
+ type: 'list',
287
+ message: 'Select feature metadata data class to convert...',
288
+ choices: Array.from(metadataClasses)
289
+ }]);
290
+ case 22:
291
+ result = _context2.sent;
292
+ this.options.metadataClass = result.metadataClass;
293
+ console.log("".concat(result.metadataClass, " has been selected"));
294
+ _context2.next = 30;
295
+ break;
296
+ case 27:
297
+ console.log("A feature metadata class has not been selected. Start the converter with option \"--metadata-class\". For example, \"npx tile-converter ... --metadata-class ".concat(Array.from(metadataClasses)[0], "\""));
298
+ console.log("------------------------------------------------");
299
+ return _context2.abrupt("return", false);
300
+ case 30:
301
+ return _context2.abrupt("return", true);
302
+ case 31:
260
303
  case "end":
261
304
  return _context2.stop();
262
305
  }
@@ -271,41 +314,51 @@ var I3SConverter = function () {
271
314
  key: "analyzeTile",
272
315
  value: function () {
273
316
  var _analyzeTile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(sourceTile, traversalProps) {
274
- var tileContent, tilePreprocessData;
317
+ var isTileset, tileContent, tilePreprocessData;
275
318
  return _regenerator.default.wrap(function _callee3$(_context3) {
276
319
  while (1) switch (_context3.prev = _context3.next) {
277
320
  case 0:
278
- if (!(sourceTile.type === 'json')) {
279
- _context3.next = 4;
321
+ isTileset = (0, _load3dTiles.isNestedTileset)(sourceTile);
322
+ if (!isTileset) {
323
+ _context3.next = 5;
280
324
  break;
281
325
  }
282
- _context3.next = 3;
326
+ _context3.next = 4;
283
327
  return (0, _load3dTiles.loadNestedTileset)(this.sourceTileset, sourceTile, this.loadOptions);
284
- case 3:
285
- return _context3.abrupt("return", null);
286
328
  case 4:
329
+ return _context3.abrupt("return", null);
330
+ case 5:
287
331
  if (sourceTile.id) {
288
332
  console.log("[analyze]: ".concat(sourceTile.id));
289
333
  }
290
- _context3.next = 7;
334
+ tileContent = null;
335
+ _context3.prev = 7;
336
+ _context3.next = 10;
291
337
  return (0, _load3dTiles.loadTile3DContent)(this.sourceTileset, sourceTile, _objectSpread(_objectSpread({}, this.loadOptions), {}, {
292
338
  '3d-tiles': _objectSpread(_objectSpread({}, this.loadOptions['3d-tiles']), {}, {
293
339
  loadGLTF: false
294
340
  })
295
341
  }));
296
- case 7:
297
- tileContent = _context3.sent;
298
- _context3.next = 10;
299
- return (0, _preprocess3dTiles.analyzeTileContent)(sourceTile, tileContent);
300
342
  case 10:
343
+ tileContent = _context3.sent;
344
+ _context3.next = 16;
345
+ break;
346
+ case 13:
347
+ _context3.prev = 13;
348
+ _context3.t0 = _context3["catch"](7);
349
+ console.log("[warning]: Failed to load ".concat(sourceTile.contentUrl, ". An I3S tile with empty content will be added to the output tileset"));
350
+ case 16:
351
+ _context3.next = 18;
352
+ return (0, _preprocess3dTiles.analyzeTileContent)(tileContent);
353
+ case 18:
301
354
  tilePreprocessData = _context3.sent;
302
355
  (0, _preprocess3dTiles.mergePreprocessData)(this.preprocessData, tilePreprocessData);
303
356
  return _context3.abrupt("return", null);
304
- case 13:
357
+ case 21:
305
358
  case "end":
306
359
  return _context3.stop();
307
360
  }
308
- }, _callee3, this);
361
+ }, _callee3, this, [[7, 13]]);
309
362
  }));
310
363
  function analyzeTile(_x2, _x3) {
311
364
  return _analyzeTile.apply(this, arguments);
@@ -536,26 +589,27 @@ var I3SConverter = function () {
536
589
  key: "convertTile",
537
590
  value: function () {
538
591
  var _convertTile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(sourceTile, traversalProps) {
539
- var parentNodes, transform, transformationMatrix, parentNode, childNodes, newTraversalProps;
592
+ var isTileset, parentNodes, transform, transformationMatrix, parentNode, childNodes, newTraversalProps;
540
593
  return _regenerator.default.wrap(function _callee7$(_context7) {
541
594
  while (1) switch (_context7.prev = _context7.next) {
542
595
  case 0:
543
- if (!(sourceTile.type === 'json' || sourceTile.type === 'empty')) {
544
- _context7.next = 6;
596
+ isTileset = (0, _load3dTiles.isNestedTileset)(sourceTile);
597
+ if (!(isTileset || sourceTile.type === 'empty')) {
598
+ _context7.next = 7;
545
599
  break;
546
600
  }
547
- if (!(sourceTile.type === 'json')) {
548
- _context7.next = 5;
601
+ if (!isTileset) {
602
+ _context7.next = 6;
549
603
  break;
550
604
  }
551
605
  if (sourceTile.id) {
552
606
  console.log("[load]: ".concat(sourceTile.id));
553
607
  }
554
- _context7.next = 5;
608
+ _context7.next = 6;
555
609
  return (0, _load3dTiles.loadNestedTileset)(this.sourceTileset, sourceTile, this.loadOptions);
556
- case 5:
557
- return _context7.abrupt("return", traversalProps);
558
610
  case 6:
611
+ return _context7.abrupt("return", traversalProps);
612
+ case 7:
559
613
  if (sourceTile.id) {
560
614
  console.log("[convert]: ".concat(sourceTile.id));
561
615
  }
@@ -565,19 +619,19 @@ var I3SConverter = function () {
565
619
  transformationMatrix = transformationMatrix.multiplyRight(sourceTile.transform);
566
620
  }
567
621
  parentNode = parentNodes[0];
568
- _context7.next = 13;
622
+ _context7.next = 14;
569
623
  return this._createNode(parentNode, sourceTile, transformationMatrix);
570
- case 13:
624
+ case 14:
571
625
  childNodes = _context7.sent;
572
- _context7.next = 16;
626
+ _context7.next = 17;
573
627
  return parentNode.addChildren(childNodes);
574
- case 16:
628
+ case 17:
575
629
  newTraversalProps = {
576
630
  transform: transformationMatrix,
577
631
  parentNodes: childNodes
578
632
  };
579
633
  return _context7.abrupt("return", newTraversalProps);
580
- case 18:
634
+ case 19:
581
635
  case "end":
582
636
  return _context7.stop();
583
637
  }
@@ -685,7 +739,6 @@ var I3SConverter = function () {
685
739
  key: "_createNode",
686
740
  value: function () {
687
741
  var _createNode2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee9(parentNode, sourceTile, transformationMatrix) {
688
- var _this$layers, _this$layers$attribut;
689
742
  var tileContent, sourceBoundingVolume, boundingVolumes, propertyTable, resourcesData, nodes, nodeIds, nodesInPage, emptyResources, _iterator5, _step5, resources, lodSelection, maxScreenThresholdSQ, nodeInPage, nodeData, node, _console;
690
743
  return _regenerator.default.wrap(function _callee9$(_context9) {
691
744
  while (1) switch (_context9.prev = _context9.next) {
@@ -694,19 +747,28 @@ var I3SConverter = function () {
694
747
  _context9.next = 3;
695
748
  return this._updateTilesetOptions();
696
749
  case 3:
697
- _context9.next = 5;
750
+ tileContent = null;
751
+ _context9.prev = 4;
752
+ _context9.next = 7;
698
753
  return (0, _load3dTiles.loadTile3DContent)(this.sourceTileset, sourceTile, this.loadOptions);
699
- case 5:
754
+ case 7:
700
755
  tileContent = _context9.sent;
756
+ _context9.next = 13;
757
+ break;
758
+ case 10:
759
+ _context9.prev = 10;
760
+ _context9.t0 = _context9["catch"](4);
761
+ console.log("[warning]: Failed to load ".concat(sourceTile.contentUrl));
762
+ case 13:
701
763
  sourceBoundingVolume = (0, _tiles.createBoundingVolume)(sourceTile.boundingVolume, transformationMatrix, null);
702
764
  boundingVolumes = (0, _coordinateConverter.createBoundingVolumes)(sourceBoundingVolume, this.geoidHeightModel);
703
- propertyTable = (0, _geometryConverter.getPropertyTable)(tileContent);
704
- if (propertyTable && !((_this$layers = this.layers0) !== null && _this$layers !== void 0 && (_this$layers$attribut = _this$layers.attributeStorageInfo) !== null && _this$layers$attribut !== void 0 && _this$layers$attribut.length)) {
765
+ propertyTable = (0, _geometryConverter.getPropertyTable)(tileContent, this.options.metadataClass);
766
+ if (propertyTable) {
705
767
  this._convertPropertyTableToNodeAttributes(propertyTable);
706
768
  }
707
- _context9.next = 12;
769
+ _context9.next = 19;
708
770
  return this._convertResources(sourceTile, transformationMatrix, sourceBoundingVolume, tileContent, parentNode.inPageId, propertyTable);
709
- case 12:
771
+ case 19:
710
772
  resourcesData = _context9.sent;
711
773
  nodes = [];
712
774
  nodeIds = [];
@@ -724,11 +786,11 @@ var I3SConverter = function () {
724
786
  boundingVolumes: null
725
787
  };
726
788
  _iterator5 = _createForOfIteratorHelper(resourcesData || [emptyResources]);
727
- _context9.prev = 18;
789
+ _context9.prev = 25;
728
790
  _iterator5.s();
729
- case 20:
791
+ case 27:
730
792
  if ((_step5 = _iterator5.n()).done) {
731
- _context9.next = 44;
793
+ _context9.next = 51;
732
794
  break;
733
795
  }
734
796
  resources = _step5.value;
@@ -742,26 +804,26 @@ var I3SConverter = function () {
742
804
  }) || {
743
805
  maxError: 0
744
806
  };
745
- _context9.next = 28;
807
+ _context9.next = 35;
746
808
  return this._updateNodeInNodePages(maxScreenThresholdSQ, boundingVolumes, sourceTile, parentNode.inPageId, resources);
747
- case 28:
809
+ case 35:
748
810
  nodeInPage = _context9.sent;
749
- _context9.next = 31;
811
+ _context9.next = 38;
750
812
  return _nodeIndexDocument.NodeIndexDocument.createNodeIndexDocument(parentNode, boundingVolumes, lodSelection, nodeInPage, resources);
751
- case 31:
813
+ case 38:
752
814
  nodeData = _context9.sent;
753
- _context9.next = 34;
815
+ _context9.next = 41;
754
816
  return new _nodeIndexDocument.NodeIndexDocument(nodeInPage.index, this).addData(nodeData);
755
- case 34:
817
+ case 41:
756
818
  node = _context9.sent;
757
819
  nodes.push(node);
758
820
  if (!nodeInPage.mesh) {
759
- _context9.next = 39;
821
+ _context9.next = 46;
760
822
  break;
761
823
  }
762
- _context9.next = 39;
824
+ _context9.next = 46;
763
825
  return this._writeResources(resources, node.id);
764
- case 39:
826
+ case 46:
765
827
  if (this.validate) {
766
828
  this.boundingVolumeWarnings = (0, _nodeDebug.validateNodeBoundingVolumes)(nodeData);
767
829
  if (this.boundingVolumeWarnings && this.boundingVolumeWarnings.length) {
@@ -770,27 +832,27 @@ var I3SConverter = function () {
770
832
  }
771
833
  nodeIds.push(nodeInPage.index);
772
834
  nodesInPage.push(nodeInPage);
773
- case 42:
774
- _context9.next = 20;
835
+ case 49:
836
+ _context9.next = 27;
775
837
  break;
776
- case 44:
777
- _context9.next = 49;
838
+ case 51:
839
+ _context9.next = 56;
778
840
  break;
779
- case 46:
780
- _context9.prev = 46;
781
- _context9.t0 = _context9["catch"](18);
782
- _iterator5.e(_context9.t0);
783
- case 49:
784
- _context9.prev = 49;
841
+ case 53:
842
+ _context9.prev = 53;
843
+ _context9.t1 = _context9["catch"](25);
844
+ _iterator5.e(_context9.t1);
845
+ case 56:
846
+ _context9.prev = 56;
785
847
  _iterator5.f();
786
- return _context9.finish(49);
787
- case 52:
848
+ return _context9.finish(56);
849
+ case 59:
788
850
  return _context9.abrupt("return", nodes);
789
- case 53:
851
+ case 60:
790
852
  case "end":
791
853
  return _context9.stop();
792
854
  }
793
- }, _callee9, this, [[18, 46, 49, 52]]);
855
+ }, _callee9, this, [[4, 10], [25, 53, 56, 59]]);
794
856
  }));
795
857
  function _createNode(_x11, _x12, _x13) {
796
858
  return _createNode2.apply(this, arguments);
@@ -802,7 +864,7 @@ var I3SConverter = function () {
802
864
  value: function () {
803
865
  var _convertResources2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee11(sourceTile, transformationMatrix, boundingVolume, tileContent, parentId, propertyTable) {
804
866
  var _this3 = this,
805
- _this$layers2;
867
+ _this$layers;
806
868
  var draftObb, resourcesData;
807
869
  return _regenerator.default.wrap(function _callee11$(_context11) {
808
870
  while (1) switch (_context11.prev = _context11.next) {
@@ -835,7 +897,7 @@ var I3SConverter = function () {
835
897
  return _context10.stop();
836
898
  }
837
899
  }, _callee10);
838
- })), propertyTable, this.featuresHashArray, (_this$layers2 = this.layers0) === null || _this$layers2 === void 0 ? void 0 : _this$layers2.attributeStorageInfo, this.options.draco, this.generateBoundingVolumes, this.options.mergeMaterials, this.geoidHeightModel, this.workerSource);
900
+ })), propertyTable, this.featuresHashArray, (_this$layers = this.layers0) === null || _this$layers === void 0 ? void 0 : _this$layers.attributeStorageInfo, this.options.draco, this.generateBoundingVolumes, this.options.mergeMaterials, this.geoidHeightModel, this.loadOptions.modules, this.options.metadataClass);
839
901
  case 5:
840
902
  resourcesData = _context11.sent;
841
903
  return _context11.abrupt("return", resourcesData);
@@ -896,6 +958,9 @@ var I3SConverter = function () {
896
958
  case 12:
897
959
  node = _context12.sent;
898
960
  case 13:
961
+ if (!nodeInPage.mesh) {
962
+ console.log("[warning]: node ".concat(node.index, " is created with empty content"));
963
+ }
899
964
  _nodePages.default.updateAll(node, nodeInPage);
900
965
  if (meshMaterial) {
901
966
  _nodePages.default.updateMaterialByNodeId(node, this._findOrCreateMaterial(meshMaterial));
@@ -914,7 +979,7 @@ var I3SConverter = function () {
914
979
  }
915
980
  this.nodePages.saveNode(node);
916
981
  return _context12.abrupt("return", node);
917
- case 21:
982
+ case 22:
918
983
  case "end":
919
984
  return _context12.stop();
920
985
  }
@@ -1083,7 +1148,7 @@ var I3SConverter = function () {
1083
1148
  key: "_writeTexture",
1084
1149
  value: function () {
1085
1150
  var _writeTexture2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee16(texture, childPath, slpkChildPath) {
1086
- var format, formats, textureData, copyArrayBuffer, arrayToEncode, ktx2TextureData, decodedFromKTX2TextureData;
1151
+ var format, formats, textureData, _objectSpread2, copyArrayBuffer, arrayToEncode, ktx2TextureData, decodedFromKTX2TextureData;
1087
1152
  return _regenerator.default.wrap(function _callee16$(_context16) {
1088
1153
  while (1) switch (_context16.prev = _context16.next) {
1089
1154
  case 0:
@@ -1117,11 +1182,9 @@ var I3SConverter = function () {
1117
1182
  arrayToEncode = new Uint8Array(copyArrayBuffer);
1118
1183
  ktx2TextureData = (0, _core.encode)(_objectSpread(_objectSpread({}, texture.image), {}, {
1119
1184
  data: arrayToEncode
1120
- }), _textures.KTX2BasisWriterWorker, _objectSpread(_objectSpread({}, _textures.KTX2BasisWriterWorker.options), {}, {
1121
- source: this.workerSource.ktx2,
1122
- reuseWorkers: true,
1123
- _nodeWorkers: true
1124
- }));
1185
+ }), _textures.KTX2BasisWriterWorker, _objectSpread(_objectSpread({}, _textures.KTX2BasisWriterWorker.options), {}, (_objectSpread2 = {}, (0, _defineProperty2.default)(_objectSpread2, 'ktx2-basis-writer', {
1186
+ workerUrl: './modules/textures/dist/ktx2-basis-writer-worker-node.js'
1187
+ }), (0, _defineProperty2.default)(_objectSpread2, "reuseWorkers", true), (0, _defineProperty2.default)(_objectSpread2, "_nodeWorkers", true), (0, _defineProperty2.default)(_objectSpread2, "useLocalLibraries", true), _objectSpread2)));
1125
1188
  _context16.next = 17;
1126
1189
  return this.writeTextureFile(ktx2TextureData, '1', 'ktx2', childPath, slpkChildPath);
1127
1190
  case 17:
@@ -1213,12 +1276,13 @@ var I3SConverter = function () {
1213
1276
  key: "_writeAttributes",
1214
1277
  value: function () {
1215
1278
  var _writeAttributes2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee18() {
1216
- var _this$layers3,
1217
- _this$layers3$attribu,
1279
+ var _this$layers2,
1280
+ _this$layers2$attribu,
1218
1281
  _this4 = this;
1219
1282
  var attributes,
1220
1283
  childPath,
1221
1284
  slpkChildPath,
1285
+ minimumLength,
1222
1286
  _loop,
1223
1287
  index,
1224
1288
  _args19 = arguments;
@@ -1228,10 +1292,11 @@ var I3SConverter = function () {
1228
1292
  attributes = _args19.length > 0 && _args19[0] !== undefined ? _args19[0] : [];
1229
1293
  childPath = _args19.length > 1 ? _args19[1] : undefined;
1230
1294
  slpkChildPath = _args19.length > 2 ? _args19[2] : undefined;
1231
- if (!(attributes !== null && attributes !== void 0 && attributes.length && (_this$layers3 = this.layers0) !== null && _this$layers3 !== void 0 && (_this$layers3$attribu = _this$layers3.attributeStorageInfo) !== null && _this$layers3$attribu !== void 0 && _this$layers3$attribu.length)) {
1232
- _context19.next = 11;
1295
+ if (!(attributes !== null && attributes !== void 0 && attributes.length && (_this$layers2 = this.layers0) !== null && _this$layers2 !== void 0 && (_this$layers2$attribu = _this$layers2.attributeStorageInfo) !== null && _this$layers2$attribu !== void 0 && _this$layers2$attribu.length)) {
1296
+ _context19.next = 12;
1233
1297
  break;
1234
1298
  }
1299
+ minimumLength = attributes.length < this.layers0.attributeStorageInfo.length ? attributes.length : this.layers0.attributeStorageInfo.length;
1235
1300
  _loop = _regenerator.default.mark(function _loop() {
1236
1301
  var folderName, fileBuffer, slpkAttributesPath, attributesPath;
1237
1302
  return _regenerator.default.wrap(function _loop$(_context18) {
@@ -1269,17 +1334,17 @@ var I3SConverter = function () {
1269
1334
  }, _loop);
1270
1335
  });
1271
1336
  index = 0;
1272
- case 6:
1273
- if (!(index < attributes.length)) {
1274
- _context19.next = 11;
1337
+ case 7:
1338
+ if (!(index < minimumLength)) {
1339
+ _context19.next = 12;
1275
1340
  break;
1276
1341
  }
1277
- return _context19.delegateYield(_loop(), "t0", 8);
1278
- case 8:
1342
+ return _context19.delegateYield(_loop(), "t0", 9);
1343
+ case 9:
1279
1344
  index++;
1280
- _context19.next = 6;
1345
+ _context19.next = 7;
1281
1346
  break;
1282
- case 11:
1347
+ case 12:
1283
1348
  case "end":
1284
1349
  return _context19.stop();
1285
1350
  }
@@ -1333,22 +1398,31 @@ var I3SConverter = function () {
1333
1398
  }, {
1334
1399
  key: "_convertPropertyTableToNodeAttributes",
1335
1400
  value: function _convertPropertyTableToNodeAttributes(propertyTable) {
1401
+ var _this5 = this;
1336
1402
  var attributeIndex = 0;
1337
1403
  var propertyTableWithObjectId = _objectSpread({
1338
1404
  OBJECTID: [0]
1339
1405
  }, propertyTable);
1340
- for (var _key in propertyTableWithObjectId) {
1341
- var firstAttribute = propertyTableWithObjectId[_key][0];
1342
- var attributeType = (0, _featureAttributes.getAttributeType)(_key, firstAttribute);
1343
- var storageAttribute = (0, _featureAttributes.createdStorageAttribute)(attributeIndex, _key, attributeType);
1344
- var fieldAttributeType = (0, _featureAttributes.getFieldAttributeType)(attributeType);
1345
- var fieldAttribute = (0, _featureAttributes.createFieldAttribute)(_key, fieldAttributeType);
1346
- var popupInfo = (0, _featureAttributes.createPopupInfo)(propertyTableWithObjectId);
1347
- this.layers0.attributeStorageInfo.push(storageAttribute);
1348
- this.layers0.fields.push(fieldAttribute);
1349
- this.layers0.popupInfo = popupInfo;
1350
- this.layers0.layerType = _3D_OBJECT_LAYER_TYPE;
1406
+ var _loop2 = function _loop2(_key) {
1407
+ var found = _this5.layers0.attributeStorageInfo.find(function (element) {
1408
+ return element.name === _key;
1409
+ });
1410
+ if (!found) {
1411
+ var firstAttribute = propertyTableWithObjectId[_key][0];
1412
+ var attributeType = (0, _featureAttributes.getAttributeType)(_key, firstAttribute);
1413
+ var storageAttribute = (0, _featureAttributes.createdStorageAttribute)(attributeIndex, _key, attributeType);
1414
+ var fieldAttributeType = (0, _featureAttributes.getFieldAttributeType)(attributeType);
1415
+ var fieldAttribute = (0, _featureAttributes.createFieldAttribute)(_key, fieldAttributeType);
1416
+ var popupInfo = (0, _featureAttributes.createPopupInfo)(propertyTableWithObjectId);
1417
+ _this5.layers0.attributeStorageInfo.push(storageAttribute);
1418
+ _this5.layers0.fields.push(fieldAttribute);
1419
+ _this5.layers0.popupInfo = popupInfo;
1420
+ _this5.layers0.layerType = _3D_OBJECT_LAYER_TYPE;
1421
+ }
1351
1422
  attributeIndex += 1;
1423
+ };
1424
+ for (var _key in propertyTableWithObjectId) {
1425
+ _loop2(_key);
1352
1426
  }
1353
1427
  }
1354
1428
  }, {
@@ -1473,67 +1547,6 @@ var I3SConverter = function () {
1473
1547
  value: function isContentSupported(sourceTile) {
1474
1548
  return ['b3dm', 'glTF', 'scenegraph'].includes(sourceTile.type || '');
1475
1549
  }
1476
- }, {
1477
- key: "loadWorkers",
1478
- value: function () {
1479
- var _loadWorkers = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee22() {
1480
- var url, _sourceResponse, _source, _url, _sourceResponse2, _source2, i3sAttributesWorkerUrl, sourceResponse, source;
1481
- return _regenerator.default.wrap(function _callee22$(_context23) {
1482
- while (1) switch (_context23.prev = _context23.next) {
1483
- case 0:
1484
- console.log("Loading workers source...");
1485
- if (!this.options.draco) {
1486
- _context23.next = 10;
1487
- break;
1488
- }
1489
- url = (0, _workerUtils.getWorkerURL)(_draco.DracoWriterWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1490
- _context23.next = 5;
1491
- return (0, _core.fetchFile)(url);
1492
- case 5:
1493
- _sourceResponse = _context23.sent;
1494
- _context23.next = 8;
1495
- return _sourceResponse.text();
1496
- case 8:
1497
- _source = _context23.sent;
1498
- this.workerSource.draco = _source;
1499
- case 10:
1500
- if (!this.generateTextures) {
1501
- _context23.next = 19;
1502
- break;
1503
- }
1504
- _url = (0, _workerUtils.getWorkerURL)(_textures.KTX2BasisWriterWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1505
- _context23.next = 14;
1506
- return (0, _core.fetchFile)(_url);
1507
- case 14:
1508
- _sourceResponse2 = _context23.sent;
1509
- _context23.next = 17;
1510
- return _sourceResponse2.text();
1511
- case 17:
1512
- _source2 = _context23.sent;
1513
- this.workerSource.ktx2 = _source2;
1514
- case 19:
1515
- i3sAttributesWorkerUrl = (0, _workerUtils.getWorkerURL)(_i3sAttributesWorker.I3SAttributesWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1516
- _context23.next = 22;
1517
- return (0, _core.fetchFile)(i3sAttributesWorkerUrl);
1518
- case 22:
1519
- sourceResponse = _context23.sent;
1520
- _context23.next = 25;
1521
- return sourceResponse.text();
1522
- case 25:
1523
- source = _context23.sent;
1524
- this.workerSource.I3SAttributes = source;
1525
- console.log("Loading workers source completed!");
1526
- case 28:
1527
- case "end":
1528
- return _context23.stop();
1529
- }
1530
- }, _callee22, this);
1531
- }));
1532
- function loadWorkers() {
1533
- return _loadWorkers.apply(this, arguments);
1534
- }
1535
- return loadWorkers;
1536
- }()
1537
1550
  }]);
1538
1551
  return I3SConverter;
1539
1552
  }();