@loaders.gl/tile-converter 4.0.0-beta.2 → 4.0.0-beta.3

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 (288) hide show
  1. package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/3d-tiles-converter.js +31 -32
  2. package/dist/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
  3. package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/helpers/b3dm-converter.js +5 -6
  4. package/dist/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -0
  5. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -0
  6. package/dist/3d-tiles-converter/helpers/load-i3s.js.map +1 -0
  7. package/dist/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
  8. package/dist/3d-tiles-converter/json-templates/tileset.js.map +1 -0
  9. package/dist/constants.js.map +1 -0
  10. package/dist/{esm/converter-cli.js → converter-cli.js} +37 -15
  11. package/dist/converter-cli.js.map +1 -0
  12. package/dist/converter.min.js +496 -328
  13. package/dist/{esm/deps-installer → deps-installer}/deps-installer.js +3 -3
  14. package/dist/deps-installer/deps-installer.js.map +1 -0
  15. package/dist/esm/i3s-server/bin/i3s-server.min.js +786 -428
  16. package/dist/{esm/i3s-converter → i3s-converter}/helpers/batch-ids-extensions.js +2 -2
  17. package/dist/i3s-converter/helpers/batch-ids-extensions.js.map +1 -0
  18. package/dist/i3s-converter/helpers/coordinate-converter.js.map +1 -0
  19. package/dist/{esm/i3s-converter → i3s-converter}/helpers/create-scene-server-path.js +2 -2
  20. package/dist/i3s-converter/helpers/create-scene-server-path.js.map +1 -0
  21. package/dist/{esm/i3s-converter → i3s-converter}/helpers/feature-attributes.js +1 -1
  22. package/dist/i3s-converter/helpers/feature-attributes.js.map +1 -0
  23. package/dist/i3s-converter/helpers/geometry-attributes.js.map +1 -0
  24. package/dist/{esm/i3s-converter → i3s-converter}/helpers/geometry-converter.js +11 -11
  25. package/dist/i3s-converter/helpers/geometry-converter.js.map +1 -0
  26. package/dist/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  27. package/dist/{esm/i3s-converter → i3s-converter}/helpers/load-3d-tiles.js +1 -1
  28. package/dist/i3s-converter/helpers/load-3d-tiles.js.map +1 -0
  29. package/dist/{esm/i3s-converter → i3s-converter}/helpers/node-debug.js +2 -2
  30. package/dist/i3s-converter/helpers/node-debug.js.map +1 -0
  31. package/dist/{esm/i3s-converter → i3s-converter}/helpers/node-index-document.js +14 -15
  32. package/dist/i3s-converter/helpers/node-index-document.js.map +1 -0
  33. package/dist/{esm/i3s-converter → i3s-converter}/helpers/node-pages.js +13 -14
  34. package/dist/i3s-converter/helpers/node-pages.js.map +1 -0
  35. package/dist/{esm/i3s-converter → i3s-converter}/helpers/preprocess-3d-tiles.js +1 -1
  36. package/dist/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -0
  37. package/dist/i3s-converter/helpers/tileset-traversal.js.map +1 -0
  38. package/dist/i3s-converter/i3s-converter.d.ts +6 -0
  39. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  40. package/dist/{esm/i3s-converter → i3s-converter}/i3s-converter.js +120 -111
  41. package/dist/i3s-converter/i3s-converter.js.map +1 -0
  42. package/dist/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  43. package/dist/{esm/i3s-converter → i3s-converter}/json-templates/layers.js +1 -1
  44. package/dist/i3s-converter/json-templates/layers.js.map +1 -0
  45. package/dist/i3s-converter/json-templates/metadata.js.map +1 -0
  46. package/dist/i3s-converter/json-templates/node.js.map +1 -0
  47. package/dist/i3s-converter/json-templates/scene-server.js.map +1 -0
  48. package/dist/{esm/i3s-converter → i3s-converter}/json-templates/shared-resources.js +2 -2
  49. package/dist/i3s-converter/json-templates/shared-resources.js.map +1 -0
  50. package/dist/i3s-converter/json-templates/store.js.map +1 -0
  51. package/dist/i3s-converter/types.js.map +1 -0
  52. package/dist/{esm/i3s-server → i3s-server}/app.js +1 -1
  53. package/dist/i3s-server/app.js.map +1 -0
  54. package/dist/{esm/i3s-server → i3s-server}/bin/www.js +4 -4
  55. package/dist/i3s-server/bin/www.js.map +1 -0
  56. package/dist/{esm/i3s-server → i3s-server}/controllers/index-controller.js +1 -1
  57. package/dist/i3s-server/controllers/index-controller.js.map +1 -0
  58. package/dist/i3s-server/controllers/slpk-controller.d.ts +2 -3
  59. package/dist/i3s-server/controllers/slpk-controller.d.ts.map +1 -1
  60. package/dist/i3s-server/controllers/slpk-controller.js +19 -0
  61. package/dist/i3s-server/controllers/slpk-controller.js.map +1 -0
  62. package/dist/i3s-server/routes/index.js.map +1 -0
  63. package/dist/{esm/i3s-server → i3s-server}/routes/slpk-router.js +2 -2
  64. package/dist/i3s-server/routes/slpk-router.js.map +1 -0
  65. package/dist/i3s-server/utils/create-scene-server.js.map +1 -0
  66. package/dist/{esm/i3s-server → i3s-server}/utils/server-utils.js +5 -5
  67. package/dist/i3s-server/utils/server-utils.js.map +1 -0
  68. package/dist/index.cjs +5129 -0
  69. package/dist/index.js +3 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/{esm/lib → lib}/utils/cli-utils.js +2 -2
  72. package/dist/lib/utils/cli-utils.js.map +1 -0
  73. package/dist/{esm/lib → lib}/utils/compress-util.js +15 -15
  74. package/dist/lib/utils/compress-util.js.map +1 -0
  75. package/dist/{esm/lib → lib}/utils/file-utils.js +5 -5
  76. package/dist/lib/utils/file-utils.js.map +1 -0
  77. package/dist/lib/utils/geometry-utils.js.map +1 -0
  78. package/dist/lib/utils/lod-conversion-utils.js.map +1 -0
  79. package/dist/lib/utils/queue.js.map +1 -0
  80. package/dist/lib/utils/statistic-utills.d.js +2 -0
  81. package/dist/lib/utils/statistic-utills.d.js.map +1 -0
  82. package/dist/{esm/lib → lib}/utils/statistic-utills.js +6 -6
  83. package/dist/lib/utils/statistic-utills.js.map +1 -0
  84. package/dist/{esm/lib → lib}/utils/write-queue.js +6 -7
  85. package/dist/lib/utils/write-queue.js.map +1 -0
  86. package/dist/{esm/pgm-loader.js → pgm-loader.js} +1 -1
  87. package/dist/pgm-loader.js.map +1 -0
  88. package/dist/{esm/slpk-extractor → slpk-extractor}/slpk-extractor.js +4 -4
  89. package/dist/slpk-extractor/slpk-extractor.js.map +1 -0
  90. package/dist/{esm/slpk-extractor-cli.js → slpk-extractor-cli.js} +6 -6
  91. package/dist/slpk-extractor-cli.js.map +1 -0
  92. package/dist/slpk-extractor.min.js +279 -133
  93. package/package.json +29 -22
  94. package/src/converter-cli.ts +32 -14
  95. package/src/i3s-converter/i3s-converter.ts +44 -30
  96. package/src/i3s-server/controllers/slpk-controller.ts +12 -10
  97. package/src/slpk-extractor/slpk-extractor.ts +1 -1
  98. package/dist/bundle.d.ts +0 -2
  99. package/dist/bundle.d.ts.map +0 -1
  100. package/dist/dist.min.js +0 -64291
  101. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +0 -447
  102. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +0 -1
  103. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +0 -295
  104. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +0 -1
  105. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +0 -18
  106. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +0 -1
  107. package/dist/es5/3d-tiles-converter/helpers/load-i3s.js +0 -63
  108. package/dist/es5/3d-tiles-converter/helpers/load-i3s.js.map +0 -1
  109. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +0 -33
  110. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +0 -1
  111. package/dist/es5/3d-tiles-converter/json-templates/tileset.js +0 -61
  112. package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +0 -1
  113. package/dist/es5/bundle.js +0 -6
  114. package/dist/es5/bundle.js.map +0 -1
  115. package/dist/es5/constants.js +0 -9
  116. package/dist/es5/constants.js.map +0 -1
  117. package/dist/es5/converter-cli.js +0 -249
  118. package/dist/es5/converter-cli.js.map +0 -1
  119. package/dist/es5/deps-installer/deps-installer.js +0 -198
  120. package/dist/es5/deps-installer/deps-installer.js.map +0 -1
  121. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +0 -146
  122. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +0 -1
  123. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +0 -89
  124. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +0 -1
  125. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +0 -41
  126. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +0 -1
  127. package/dist/es5/i3s-converter/helpers/feature-attributes.js +0 -164
  128. package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +0 -1
  129. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +0 -253
  130. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +0 -1
  131. package/dist/es5/i3s-converter/helpers/geometry-converter.js +0 -1190
  132. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +0 -1
  133. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +0 -113
  134. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +0 -1
  135. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js +0 -148
  136. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js.map +0 -1
  137. package/dist/es5/i3s-converter/helpers/node-debug.js +0 -76
  138. package/dist/es5/i3s-converter/helpers/node-debug.js.map +0 -1
  139. package/dist/es5/i3s-converter/helpers/node-index-document.js +0 -522
  140. package/dist/es5/i3s-converter/helpers/node-index-document.js.map +0 -1
  141. package/dist/es5/i3s-converter/helpers/node-pages.js +0 -519
  142. package/dist/es5/i3s-converter/helpers/node-pages.js.map +0 -1
  143. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +0 -146
  144. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +0 -1
  145. package/dist/es5/i3s-converter/helpers/tileset-traversal.js +0 -82
  146. package/dist/es5/i3s-converter/helpers/tileset-traversal.js.map +0 -1
  147. package/dist/es5/i3s-converter/i3s-converter.js +0 -1554
  148. package/dist/es5/i3s-converter/i3s-converter.js.map +0 -1
  149. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js +0 -107
  150. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js.map +0 -1
  151. package/dist/es5/i3s-converter/json-templates/layers.js +0 -163
  152. package/dist/es5/i3s-converter/json-templates/layers.js.map +0 -1
  153. package/dist/es5/i3s-converter/json-templates/metadata.js +0 -31
  154. package/dist/es5/i3s-converter/json-templates/metadata.js.map +0 -1
  155. package/dist/es5/i3s-converter/json-templates/node.js +0 -99
  156. package/dist/es5/i3s-converter/json-templates/node.js.map +0 -1
  157. package/dist/es5/i3s-converter/json-templates/scene-server.js +0 -39
  158. package/dist/es5/i3s-converter/json-templates/scene-server.js.map +0 -1
  159. package/dist/es5/i3s-converter/json-templates/shared-resources.js +0 -173
  160. package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +0 -1
  161. package/dist/es5/i3s-converter/json-templates/store.js +0 -107
  162. package/dist/es5/i3s-converter/json-templates/store.js.map +0 -1
  163. package/dist/es5/i3s-converter/types.js +0 -18
  164. package/dist/es5/i3s-converter/types.js.map +0 -1
  165. package/dist/es5/i3s-server/app.js +0 -35
  166. package/dist/es5/i3s-server/app.js.map +0 -1
  167. package/dist/es5/i3s-server/bin/www.js +0 -33
  168. package/dist/es5/i3s-server/bin/www.js.map +0 -1
  169. package/dist/es5/i3s-server/controllers/index-controller.js +0 -56
  170. package/dist/es5/i3s-server/controllers/index-controller.js.map +0 -1
  171. package/dist/es5/i3s-server/controllers/slpk-controller.js +0 -81
  172. package/dist/es5/i3s-server/controllers/slpk-controller.js.map +0 -1
  173. package/dist/es5/i3s-server/routes/index.js +0 -37
  174. package/dist/es5/i3s-server/routes/index.js.map +0 -1
  175. package/dist/es5/i3s-server/routes/slpk-router.js +0 -72
  176. package/dist/es5/i3s-server/routes/slpk-router.js.map +0 -1
  177. package/dist/es5/i3s-server/utils/create-scene-server.js +0 -20
  178. package/dist/es5/i3s-server/utils/create-scene-server.js.map +0 -1
  179. package/dist/es5/i3s-server/utils/server-utils.js +0 -49
  180. package/dist/es5/i3s-server/utils/server-utils.js.map +0 -1
  181. package/dist/es5/index.js +0 -21
  182. package/dist/es5/index.js.map +0 -1
  183. package/dist/es5/lib/utils/cli-utils.js +0 -57
  184. package/dist/es5/lib/utils/cli-utils.js.map +0 -1
  185. package/dist/es5/lib/utils/compress-util.js +0 -346
  186. package/dist/es5/lib/utils/compress-util.js.map +0 -1
  187. package/dist/es5/lib/utils/file-utils.js +0 -208
  188. package/dist/es5/lib/utils/file-utils.js.map +0 -1
  189. package/dist/es5/lib/utils/geometry-utils.js +0 -15
  190. package/dist/es5/lib/utils/geometry-utils.js.map +0 -1
  191. package/dist/es5/lib/utils/lod-conversion-utils.js +0 -50
  192. package/dist/es5/lib/utils/lod-conversion-utils.js.map +0 -1
  193. package/dist/es5/lib/utils/queue.js +0 -47
  194. package/dist/es5/lib/utils/queue.js.map +0 -1
  195. package/dist/es5/lib/utils/statistic-utills.d.ts +0 -25
  196. package/dist/es5/lib/utils/statistic-utills.js +0 -147
  197. package/dist/es5/lib/utils/statistic-utills.js.map +0 -1
  198. package/dist/es5/lib/utils/write-queue.js +0 -214
  199. package/dist/es5/lib/utils/write-queue.js.map +0 -1
  200. package/dist/es5/pgm-loader.js +0 -49
  201. package/dist/es5/pgm-loader.js.map +0 -1
  202. package/dist/es5/slpk-extractor/slpk-extractor.js +0 -171
  203. package/dist/es5/slpk-extractor/slpk-extractor.js.map +0 -1
  204. package/dist/es5/slpk-extractor-cli.js +0 -117
  205. package/dist/es5/slpk-extractor-cli.js.map +0 -1
  206. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +0 -1
  207. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +0 -1
  208. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +0 -1
  209. package/dist/esm/3d-tiles-converter/helpers/load-i3s.js.map +0 -1
  210. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +0 -1
  211. package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +0 -1
  212. package/dist/esm/bundle.js +0 -4
  213. package/dist/esm/bundle.js.map +0 -1
  214. package/dist/esm/constants.js.map +0 -1
  215. package/dist/esm/converter-cli.js.map +0 -1
  216. package/dist/esm/deps-installer/deps-installer.js.map +0 -1
  217. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +0 -1
  218. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +0 -1
  219. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +0 -1
  220. package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +0 -1
  221. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +0 -1
  222. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +0 -1
  223. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +0 -1
  224. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js.map +0 -1
  225. package/dist/esm/i3s-converter/helpers/node-debug.js.map +0 -1
  226. package/dist/esm/i3s-converter/helpers/node-index-document.js.map +0 -1
  227. package/dist/esm/i3s-converter/helpers/node-pages.js.map +0 -1
  228. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +0 -1
  229. package/dist/esm/i3s-converter/helpers/tileset-traversal.js.map +0 -1
  230. package/dist/esm/i3s-converter/i3s-converter.js.map +0 -1
  231. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js.map +0 -1
  232. package/dist/esm/i3s-converter/json-templates/layers.js.map +0 -1
  233. package/dist/esm/i3s-converter/json-templates/metadata.js.map +0 -1
  234. package/dist/esm/i3s-converter/json-templates/node.js.map +0 -1
  235. package/dist/esm/i3s-converter/json-templates/scene-server.js.map +0 -1
  236. package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +0 -1
  237. package/dist/esm/i3s-converter/json-templates/store.js.map +0 -1
  238. package/dist/esm/i3s-converter/types.js.map +0 -1
  239. package/dist/esm/i3s-server/README.md +0 -63
  240. package/dist/esm/i3s-server/app.js.map +0 -1
  241. package/dist/esm/i3s-server/bin/www.js.map +0 -1
  242. package/dist/esm/i3s-server/certs/cert.pem +0 -19
  243. package/dist/esm/i3s-server/certs/key.pem +0 -27
  244. package/dist/esm/i3s-server/controllers/index-controller.js.map +0 -1
  245. package/dist/esm/i3s-server/controllers/slpk-controller.js +0 -19
  246. package/dist/esm/i3s-server/controllers/slpk-controller.js.map +0 -1
  247. package/dist/esm/i3s-server/routes/index.js.map +0 -1
  248. package/dist/esm/i3s-server/routes/slpk-router.js.map +0 -1
  249. package/dist/esm/i3s-server/utils/create-scene-server.js.map +0 -1
  250. package/dist/esm/i3s-server/utils/server-utils.js.map +0 -1
  251. package/dist/esm/index.js +0 -3
  252. package/dist/esm/index.js.map +0 -1
  253. package/dist/esm/lib/utils/cli-utils.js.map +0 -1
  254. package/dist/esm/lib/utils/compress-util.js.map +0 -1
  255. package/dist/esm/lib/utils/file-utils.js.map +0 -1
  256. package/dist/esm/lib/utils/geometry-utils.js.map +0 -1
  257. package/dist/esm/lib/utils/lod-conversion-utils.js.map +0 -1
  258. package/dist/esm/lib/utils/queue.js.map +0 -1
  259. package/dist/esm/lib/utils/statistic-utills.d.ts +0 -25
  260. package/dist/esm/lib/utils/statistic-utills.js.map +0 -1
  261. package/dist/esm/lib/utils/write-queue.js.map +0 -1
  262. package/dist/esm/pgm-loader.js.map +0 -1
  263. package/dist/esm/slpk-extractor/slpk-extractor.js.map +0 -1
  264. package/dist/esm/slpk-extractor-cli.js.map +0 -1
  265. package/src/bundle.ts +0 -4
  266. /package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/helpers/i3s-obb-to-3d-tiles-obb.js +0 -0
  267. /package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/helpers/load-i3s.js +0 -0
  268. /package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/helpers/texture-atlas.js +0 -0
  269. /package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/json-templates/tileset.js +0 -0
  270. /package/dist/{esm/constants.js → constants.js} +0 -0
  271. /package/dist/{esm/i3s-converter → i3s-converter}/helpers/coordinate-converter.js +0 -0
  272. /package/dist/{esm/i3s-converter → i3s-converter}/helpers/geometry-attributes.js +0 -0
  273. /package/dist/{esm/i3s-converter → i3s-converter}/helpers/gltf-attributes.js +0 -0
  274. /package/dist/{esm/i3s-converter → i3s-converter}/helpers/tileset-traversal.js +0 -0
  275. /package/dist/{esm/i3s-converter → i3s-converter}/json-templates/geometry-definitions.js +0 -0
  276. /package/dist/{esm/i3s-converter → i3s-converter}/json-templates/metadata.js +0 -0
  277. /package/dist/{esm/i3s-converter → i3s-converter}/json-templates/node.js +0 -0
  278. /package/dist/{esm/i3s-converter → i3s-converter}/json-templates/scene-server.js +0 -0
  279. /package/dist/{esm/i3s-converter → i3s-converter}/json-templates/store.js +0 -0
  280. /package/dist/{esm/i3s-converter → i3s-converter}/types.js +0 -0
  281. /package/dist/{es5/i3s-server → i3s-server}/README.md +0 -0
  282. /package/dist/{es5/i3s-server → i3s-server}/certs/cert.pem +0 -0
  283. /package/dist/{es5/i3s-server → i3s-server}/certs/key.pem +0 -0
  284. /package/dist/{esm/i3s-server → i3s-server}/routes/index.js +0 -0
  285. /package/dist/{esm/i3s-server → i3s-server}/utils/create-scene-server.js +0 -0
  286. /package/dist/{esm/lib → lib}/utils/geometry-utils.js +0 -0
  287. /package/dist/{esm/lib → lib}/utils/lod-conversion-utils.js +0 -0
  288. /package/dist/{esm/lib → lib}/utils/queue.js +0 -0
@@ -1,447 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
- var _path = require("path");
15
- var _process = _interopRequireDefault(require("process"));
16
- var _jsonMapTransform = _interopRequireDefault(require("json-map-transform"));
17
- var _core = require("@loaders.gl/core");
18
- var _i3s = require("@loaders.gl/i3s");
19
- var _pgmLoader = require("../pgm-loader");
20
- var _i3sObbTo3dTilesObb = require("./helpers/i3s-obb-to-3d-tiles-obb");
21
- var _lodConversionUtils = require("../lib/utils/lod-conversion-utils");
22
- var _fileUtils = require("../lib/utils/file-utils");
23
- var _statisticUtills = require("../lib/utils/statistic-utills");
24
- var _tileset = require("./json-templates/tileset");
25
- var _coordinateConverter = require("../i3s-converter/helpers/coordinate-converter");
26
- var _workerUtils = require("@loaders.gl/worker-utils");
27
- var _constants = require("../constants");
28
- var _b3dmConverter = _interopRequireDefault(require("./helpers/b3dm-converter"));
29
- var _loadI3s = require("./helpers/load-i3s");
30
- 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; }
31
- 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; }
32
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
33
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
34
- 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; }
35
- var I3S = 'I3S';
36
- var Tiles3DConverter = function () {
37
- function Tiles3DConverter() {
38
- (0, _classCallCheck2.default)(this, Tiles3DConverter);
39
- (0, _defineProperty2.default)(this, "options", void 0);
40
- (0, _defineProperty2.default)(this, "tilesetPath", void 0);
41
- (0, _defineProperty2.default)(this, "vertexCounter", void 0);
42
- (0, _defineProperty2.default)(this, "conversionStartTime", void 0);
43
- (0, _defineProperty2.default)(this, "geoidHeightModel", void 0);
44
- (0, _defineProperty2.default)(this, "sourceTileset", void 0);
45
- (0, _defineProperty2.default)(this, "attributeStorageInfo", void 0);
46
- (0, _defineProperty2.default)(this, "workerSource", {});
47
- (0, _defineProperty2.default)(this, "loaderOptions", {
48
- _nodeWorkers: true,
49
- reuseWorkers: true,
50
- i3s: {
51
- coordinateSystem: _i3s.COORDINATE_SYSTEM.LNGLAT_OFFSETS,
52
- decodeTextures: false
53
- },
54
- 'i3s-content': {
55
- workerUrl: './modules/i3s/dist/i3s-content-worker-node.js'
56
- }
57
- });
58
- this.options = {};
59
- this.tilesetPath = '';
60
- this.vertexCounter = 0;
61
- this.conversionStartTime = [0, 0];
62
- this.geoidHeightModel = null;
63
- this.sourceTileset = null;
64
- this.attributeStorageInfo = null;
65
- this.workerSource = {};
66
- }
67
- (0, _createClass2.default)(Tiles3DConverter, [{
68
- key: "convert",
69
- value: function () {
70
- var _convert = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
71
- var _this$sourceTileset;
72
- var inputUrl, outputPath, tilesetName, maxDepth, egmFilePath, rootNode, rootTile, tileset, workerFarm;
73
- return _regenerator.default.wrap(function _callee$(_context) {
74
- while (1) switch (_context.prev = _context.next) {
75
- case 0:
76
- if (!_core.isBrowser) {
77
- _context.next = 3;
78
- break;
79
- }
80
- console.log(_constants.BROWSER_ERROR_MESSAGE);
81
- return _context.abrupt("return", _constants.BROWSER_ERROR_MESSAGE);
82
- case 3:
83
- inputUrl = options.inputUrl, outputPath = options.outputPath, tilesetName = options.tilesetName, maxDepth = options.maxDepth, egmFilePath = options.egmFilePath;
84
- this.conversionStartTime = _process.default.hrtime();
85
- this.options = {
86
- maxDepth: maxDepth
87
- };
88
- console.log('Loading egm file...');
89
- _context.next = 9;
90
- return (0, _core.load)(egmFilePath, _pgmLoader.PGMLoader);
91
- case 9:
92
- this.geoidHeightModel = _context.sent;
93
- console.log('Loading egm file completed!');
94
- _context.next = 13;
95
- return (0, _core.load)(inputUrl, _i3s.I3SLoader, this.loaderOptions);
96
- case 13:
97
- this.sourceTileset = _context.sent;
98
- if (this.sourceTileset) {
99
- _context.next = 16;
100
- break;
101
- }
102
- return _context.abrupt("return");
103
- case 16:
104
- rootNode = (_this$sourceTileset = this.sourceTileset) === null || _this$sourceTileset === void 0 ? void 0 : _this$sourceTileset.root;
105
- if (!rootNode.obb) {
106
- rootNode.obb = (0, _coordinateConverter.createObbFromMbs)(rootNode.mbs);
107
- }
108
- this.tilesetPath = (0, _path.join)("".concat(outputPath), "".concat(tilesetName));
109
- this.attributeStorageInfo = this.sourceTileset.attributeStorageInfo;
110
- _context.prev = 20;
111
- _context.next = 23;
112
- return (0, _fileUtils.removeDir)(this.tilesetPath);
113
- case 23:
114
- _context.next = 27;
115
- break;
116
- case 25:
117
- _context.prev = 25;
118
- _context.t0 = _context["catch"](20);
119
- case 27:
120
- rootTile = {
121
- boundingVolume: {
122
- box: (0, _i3sObbTo3dTilesObb.i3sObbTo3dTilesObb)(rootNode.obb, this.geoidHeightModel)
123
- },
124
- geometricError: (0, _lodConversionUtils.convertScreenThresholdToGeometricError)(rootNode),
125
- children: []
126
- };
127
- _context.next = 30;
128
- return this._addChildren(rootNode, rootTile, 1);
129
- case 30:
130
- tileset = (0, _jsonMapTransform.default)({
131
- root: rootTile
132
- }, (0, _tileset.TILESET)());
133
- _context.next = 33;
134
- return (0, _fileUtils.writeFile)(this.tilesetPath, JSON.stringify(tileset), 'tileset.json');
135
- case 33:
136
- this._finishConversion({
137
- slpk: false,
138
- outputPath: outputPath,
139
- tilesetName: tilesetName
140
- });
141
- workerFarm = _workerUtils.WorkerFarm.getWorkerFarm({});
142
- workerFarm.destroy();
143
- case 36:
144
- case "end":
145
- return _context.stop();
146
- }
147
- }, _callee, this, [[20, 25]]);
148
- }));
149
- function convert(_x) {
150
- return _convert.apply(this, arguments);
151
- }
152
- return convert;
153
- }()
154
- }, {
155
- key: "convertChildNode",
156
- value: function () {
157
- var _convertChildNode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(parentSourceNode, parentNode, level, childNodeInfo) {
158
- var sourceChild, content, featureAttributes, boundingVolume, child, i3sAttributesData, b3dmConverter, b3dm;
159
- return _regenerator.default.wrap(function _callee2$(_context2) {
160
- while (1) switch (_context2.prev = _context2.next) {
161
- case 0:
162
- _context2.next = 2;
163
- return this._loadChildNode(parentSourceNode, childNodeInfo);
164
- case 2:
165
- sourceChild = _context2.sent;
166
- if (!sourceChild.contentUrl) {
167
- _context2.next = 33;
168
- break;
169
- }
170
- _context2.next = 6;
171
- return (0, _loadI3s.loadI3SContent)(this.sourceTileset, sourceChild, this.loaderOptions);
172
- case 6:
173
- content = _context2.sent;
174
- if (content) {
175
- _context2.next = 11;
176
- break;
177
- }
178
- _context2.next = 10;
179
- return this._addChildren(sourceChild, parentNode, level + 1);
180
- case 10:
181
- return _context2.abrupt("return");
182
- case 11:
183
- this.vertexCounter += (content === null || content === void 0 ? void 0 : content.vertexCount) || 0;
184
- featureAttributes = null;
185
- if (!this.attributeStorageInfo) {
186
- _context2.next = 17;
187
- break;
188
- }
189
- _context2.next = 16;
190
- return this._loadChildAttributes(sourceChild, this.attributeStorageInfo);
191
- case 16:
192
- featureAttributes = _context2.sent;
193
- case 17:
194
- if (!sourceChild.obb) {
195
- sourceChild.obb = (0, _coordinateConverter.createObbFromMbs)(sourceChild.mbs);
196
- }
197
- boundingVolume = {
198
- box: (0, _i3sObbTo3dTilesObb.i3sObbTo3dTilesObb)(sourceChild.obb, this.geoidHeightModel)
199
- };
200
- child = {
201
- boundingVolume: boundingVolume,
202
- geometricError: (0, _lodConversionUtils.convertScreenThresholdToGeometricError)(sourceChild),
203
- children: []
204
- };
205
- i3sAttributesData = {
206
- tileContent: content,
207
- box: boundingVolume.box,
208
- textureFormat: sourceChild.textureFormat
209
- };
210
- b3dmConverter = new _b3dmConverter.default();
211
- _context2.next = 24;
212
- return b3dmConverter.convert(i3sAttributesData, featureAttributes);
213
- case 24:
214
- b3dm = _context2.sent;
215
- child.content = {
216
- uri: "".concat(sourceChild.id, ".b3dm"),
217
- boundingVolume: boundingVolume
218
- };
219
- _context2.next = 28;
220
- return (0, _fileUtils.writeFile)(this.tilesetPath, new Uint8Array(b3dm), "".concat(sourceChild.id, ".b3dm"));
221
- case 28:
222
- parentNode.children.push(child);
223
- _context2.next = 31;
224
- return this._addChildren(sourceChild, child, level + 1);
225
- case 31:
226
- _context2.next = 35;
227
- break;
228
- case 33:
229
- _context2.next = 35;
230
- return this._addChildren(sourceChild, parentNode, level + 1);
231
- case 35:
232
- case "end":
233
- return _context2.stop();
234
- }
235
- }, _callee2, this);
236
- }));
237
- function convertChildNode(_x2, _x3, _x4, _x5) {
238
- return _convertChildNode.apply(this, arguments);
239
- }
240
- return convertChildNode;
241
- }()
242
- }, {
243
- key: "_addChildren",
244
- value: function () {
245
- var _addChildren2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(parentSourceNode, parentNode, level) {
246
- var promises, _iterator, _step, childNodeInfo;
247
- return _regenerator.default.wrap(function _callee3$(_context3) {
248
- while (1) switch (_context3.prev = _context3.next) {
249
- case 0:
250
- if (!(this.options.maxDepth && level > this.options.maxDepth)) {
251
- _context3.next = 2;
252
- break;
253
- }
254
- return _context3.abrupt("return");
255
- case 2:
256
- promises = [];
257
- _iterator = _createForOfIteratorHelper(parentSourceNode.children || []);
258
- try {
259
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
260
- childNodeInfo = _step.value;
261
- promises.push(this.convertChildNode(parentSourceNode, parentNode, level, childNodeInfo));
262
- }
263
- } catch (err) {
264
- _iterator.e(err);
265
- } finally {
266
- _iterator.f();
267
- }
268
- _context3.next = 7;
269
- return Promise.all(promises);
270
- case 7:
271
- case "end":
272
- return _context3.stop();
273
- }
274
- }, _callee3, this);
275
- }));
276
- function _addChildren(_x6, _x7, _x8) {
277
- return _addChildren2.apply(this, arguments);
278
- }
279
- return _addChildren;
280
- }()
281
- }, {
282
- key: "_loadChildNode",
283
- value: function () {
284
- var _loadChildNode2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(parentNode, childNodeInfo) {
285
- var _this$sourceTileset2;
286
- var header, nodeUrl, options;
287
- return _regenerator.default.wrap(function _callee4$(_context4) {
288
- while (1) switch (_context4.prev = _context4.next) {
289
- case 0:
290
- if (!((_this$sourceTileset2 = this.sourceTileset) !== null && _this$sourceTileset2 !== void 0 && _this$sourceTileset2.nodePagesTile)) {
291
- _context4.next = 7;
292
- break;
293
- }
294
- console.log("Node conversion: ".concat(childNodeInfo.id));
295
- _context4.next = 4;
296
- return this.sourceTileset.nodePagesTile.formTileFromNodePages(parseInt(childNodeInfo.id));
297
- case 4:
298
- header = _context4.sent;
299
- _context4.next = 13;
300
- break;
301
- case 7:
302
- nodeUrl = this._relativeUrlToFullUrl(parentNode.url, childNodeInfo.href);
303
- options = {
304
- i3s: _objectSpread(_objectSpread({}, this.loaderOptions), {}, {
305
- isTileHeader: true,
306
- loadContent: false
307
- })
308
- };
309
- console.log("Node conversion: ".concat(nodeUrl));
310
- _context4.next = 12;
311
- return (0, _core.load)(nodeUrl, _i3s.I3SLoader, options);
312
- case 12:
313
- header = _context4.sent;
314
- case 13:
315
- return _context4.abrupt("return", header);
316
- case 14:
317
- case "end":
318
- return _context4.stop();
319
- }
320
- }, _callee4, this);
321
- }));
322
- function _loadChildNode(_x9, _x10) {
323
- return _loadChildNode2.apply(this, arguments);
324
- }
325
- return _loadChildNode;
326
- }()
327
- }, {
328
- key: "_relativeUrlToFullUrl",
329
- value: function _relativeUrlToFullUrl() {
330
- var baseUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
331
- var relativeUrl = arguments.length > 1 ? arguments[1] : undefined;
332
- var resultArray = baseUrl.split('/');
333
- var relativeUrlArray = relativeUrl.split('/');
334
- var _iterator2 = _createForOfIteratorHelper(relativeUrlArray),
335
- _step2;
336
- try {
337
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
338
- var folder = _step2.value;
339
- switch (folder) {
340
- case '.':
341
- continue;
342
- case '..':
343
- resultArray = resultArray.slice(0, -1);
344
- break;
345
- default:
346
- resultArray.push(folder);
347
- }
348
- }
349
- } catch (err) {
350
- _iterator2.e(err);
351
- } finally {
352
- _iterator2.f();
353
- }
354
- return resultArray.join('/');
355
- }
356
- }, {
357
- key: "_loadChildAttributes",
358
- value: function () {
359
- var _loadChildAttributes2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(sourceChild, attributeStorageInfo) {
360
- var promises, _sourceChild$attribut, attributeUrls, index, inputUrl, attribute, options, attributesList;
361
- return _regenerator.default.wrap(function _callee5$(_context5) {
362
- while (1) switch (_context5.prev = _context5.next) {
363
- case 0:
364
- promises = [];
365
- _sourceChild$attribut = sourceChild.attributeUrls, attributeUrls = _sourceChild$attribut === void 0 ? [] : _sourceChild$attribut;
366
- for (index = 0; index < attributeUrls.length; index++) {
367
- inputUrl = attributeUrls[index];
368
- attribute = attributeStorageInfo[index];
369
- options = {
370
- attributeName: attribute.name,
371
- attributeType: this._getAttributeType(attribute)
372
- };
373
- promises.push((0, _core.load)(inputUrl, _i3s.I3SAttributeLoader, options));
374
- }
375
- _context5.next = 5;
376
- return Promise.all(promises);
377
- case 5:
378
- attributesList = _context5.sent;
379
- this._replaceNestedArrays(attributesList);
380
- return _context5.abrupt("return", Object.assign.apply(Object, [{}].concat((0, _toConsumableArray2.default)(attributesList))));
381
- case 8:
382
- case "end":
383
- return _context5.stop();
384
- }
385
- }, _callee5, this);
386
- }));
387
- function _loadChildAttributes(_x11, _x12) {
388
- return _loadChildAttributes2.apply(this, arguments);
389
- }
390
- return _loadChildAttributes;
391
- }()
392
- }, {
393
- key: "_getAttributeType",
394
- value: function _getAttributeType(attribute) {
395
- if (attribute.attributeValues) {
396
- return attribute.attributeValues.valueType;
397
- } else if (attribute.objectIds) {
398
- return 'Oid32';
399
- }
400
- return '';
401
- }
402
- }, {
403
- key: "_replaceNestedArrays",
404
- value: function _replaceNestedArrays(attributesList) {
405
- for (var index = 0; index < attributesList.length; index++) {
406
- var attributeObject = attributesList[index];
407
- for (var _key in attributeObject) {
408
- attributeObject[_key] = Array.from(attributeObject[_key]);
409
- }
410
- }
411
- }
412
- }, {
413
- key: "_finishConversion",
414
- value: function () {
415
- var _finishConversion2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(params) {
416
- var filesSize, diff, conversionTime;
417
- return _regenerator.default.wrap(function _callee6$(_context6) {
418
- while (1) switch (_context6.prev = _context6.next) {
419
- case 0:
420
- _context6.next = 2;
421
- return (0, _statisticUtills.calculateFilesSize)(params);
422
- case 2:
423
- filesSize = _context6.sent;
424
- diff = _process.default.hrtime(this.conversionStartTime);
425
- conversionTime = (0, _statisticUtills.timeConverter)(diff);
426
- console.log("------------------------------------------------");
427
- console.log("Finish conversion of ".concat(I3S));
428
- console.log("Total conversion time: ".concat(conversionTime));
429
- console.log("Vertex count: ", this.vertexCounter);
430
- console.log("File(s) size: ", filesSize, ' bytes');
431
- console.log("------------------------------------------------");
432
- case 11:
433
- case "end":
434
- return _context6.stop();
435
- }
436
- }, _callee6, this);
437
- }));
438
- function _finishConversion(_x13) {
439
- return _finishConversion2.apply(this, arguments);
440
- }
441
- return _finishConversion;
442
- }()
443
- }]);
444
- return Tiles3DConverter;
445
- }();
446
- exports.default = Tiles3DConverter;
447
- //# sourceMappingURL=3d-tiles-converter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"3d-tiles-converter.js","names":["_path","require","_process","_interopRequireDefault","_jsonMapTransform","_core","_i3s","_pgmLoader","_i3sObbTo3dTilesObb","_lodConversionUtils","_fileUtils","_statisticUtills","_tileset","_coordinateConverter","_workerUtils","_constants","_b3dmConverter","_loadI3s","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","I3S","Tiles3DConverter","_classCallCheck2","_nodeWorkers","reuseWorkers","i3s","coordinateSystem","COORDINATE_SYSTEM","LNGLAT_OFFSETS","decodeTextures","workerUrl","options","tilesetPath","vertexCounter","conversionStartTime","geoidHeightModel","sourceTileset","attributeStorageInfo","workerSource","_createClass2","_convert","_asyncToGenerator2","_regenerator","mark","_callee","_this$sourceTileset","inputUrl","outputPath","tilesetName","maxDepth","egmFilePath","rootNode","rootTile","tileset","workerFarm","wrap","_callee$","_context","prev","isBrowser","console","log","BROWSER_ERROR_MESSAGE","abrupt","process","hrtime","load","PGMLoader","sent","I3SLoader","loaderOptions","root","obb","createObbFromMbs","mbs","join","concat","removeDir","t0","boundingVolume","box","i3sObbTo3dTilesObb","geometricError","convertScreenThresholdToGeometricError","children","_addChildren","transform","tilesetTemplate","writeFile","JSON","stringify","_finishConversion","slpk","WorkerFarm","getWorkerFarm","destroy","stop","convert","_x","_convertChildNode","_callee2","parentSourceNode","parentNode","level","childNodeInfo","sourceChild","content","featureAttributes","child","i3sAttributesData","b3dmConverter","b3dm","_callee2$","_context2","_loadChildNode","contentUrl","loadI3SContent","vertexCount","_loadChildAttributes","tileContent","textureFormat","B3dmConverter","uri","id","Uint8Array","convertChildNode","_x2","_x3","_x4","_x5","_addChildren2","_callee3","promises","_iterator","_step","_callee3$","_context3","Promise","all","_x6","_x7","_x8","_loadChildNode2","_callee4","_this$sourceTileset2","header","nodeUrl","_callee4$","_context4","nodePagesTile","formTileFromNodePages","parseInt","_relativeUrlToFullUrl","url","href","isTileHeader","loadContent","_x9","_x10","baseUrl","undefined","relativeUrl","resultArray","split","relativeUrlArray","_iterator2","_step2","folder","_loadChildAttributes2","_callee5","_sourceChild$attribut","attributeUrls","index","attribute","attributesList","_callee5$","_context5","attributeName","attributeType","_getAttributeType","I3SAttributeLoader","_replaceNestedArrays","assign","_toConsumableArray2","_x11","_x12","attributeValues","valueType","objectIds","attributeObject","_finishConversion2","_callee6","params","filesSize","diff","conversionTime","_callee6$","_context6","calculateFilesSize","timeConverter","_x13","exports"],"sources":["../../../src/3d-tiles-converter/3d-tiles-converter.ts"],"sourcesContent":["import type {\n AttributeStorageInfo,\n FeatureAttribute,\n NodeReference,\n I3STilesetHeader\n} from '@loaders.gl/i3s';\nimport type {Tiles3DTileJSON} from '@loaders.gl/3d-tiles';\n\nimport {join} from 'path';\nimport process from 'process';\nimport transform from 'json-map-transform';\nimport {load, isBrowser} from '@loaders.gl/core';\nimport {I3SLoader, I3SAttributeLoader, COORDINATE_SYSTEM} from '@loaders.gl/i3s';\nimport {Geoid} from '@math.gl/geoid';\n\nimport {PGMLoader} from '../pgm-loader';\nimport {i3sObbTo3dTilesObb} from './helpers/i3s-obb-to-3d-tiles-obb';\nimport {convertScreenThresholdToGeometricError} from '../lib/utils/lod-conversion-utils';\nimport {writeFile, removeDir} from '../lib/utils/file-utils';\nimport {calculateFilesSize, timeConverter} from '../lib/utils/statistic-utills';\nimport {TILESET as tilesetTemplate} from './json-templates/tileset';\nimport {createObbFromMbs} from '../i3s-converter/helpers/coordinate-converter';\nimport {WorkerFarm} from '@loaders.gl/worker-utils';\nimport {BROWSER_ERROR_MESSAGE} from '../constants';\nimport B3dmConverter, {I3SAttributesData} from './helpers/b3dm-converter';\nimport {I3STileHeader} from '@loaders.gl/i3s/src/types';\nimport {loadI3SContent} from './helpers/load-i3s';\nimport {I3SLoaderOptions} from '@loaders.gl/i3s/src/i3s-loader';\n\nconst I3S = 'I3S';\n\n/**\n * Converter from i3s to 3d-tiles\n */\nexport default class Tiles3DConverter {\n options: any;\n tilesetPath: string;\n vertexCounter: number;\n conversionStartTime: [number, number];\n geoidHeightModel: Geoid | null;\n sourceTileset: I3STilesetHeader | null;\n attributeStorageInfo?: AttributeStorageInfo[] | null;\n workerSource: {[key: string]: string} = {};\n loaderOptions: I3SLoaderOptions = {\n _nodeWorkers: true,\n reuseWorkers: true,\n i3s: {coordinateSystem: COORDINATE_SYSTEM.LNGLAT_OFFSETS, decodeTextures: false},\n // We need to load local fs workers because nodejs can't load workers from the Internet\n 'i3s-content': {\n workerUrl: './modules/i3s/dist/i3s-content-worker-node.js'\n }\n };\n\n constructor() {\n this.options = {};\n this.tilesetPath = '';\n this.vertexCounter = 0;\n this.conversionStartTime = [0, 0];\n this.geoidHeightModel = null;\n this.sourceTileset = null;\n this.attributeStorageInfo = null;\n this.workerSource = {};\n }\n\n /**\n * Convert i3s format data to 3dTiles\n * @param options\n * @param options.inputUrl the url to read the tileset from\n * @param options.outputPath the output filename\n * @param options.tilesetName the output name of the tileset\n * @param options.egmFilePath location of *.pgm file to convert heights from ellipsoidal to gravity-related format\n * @param options.maxDepth The max tree depth of conversion\n */\n public async convert(options: {\n inputUrl: string;\n outputPath: string;\n tilesetName: string;\n maxDepth?: number;\n egmFilePath: string;\n }): Promise<any> {\n if (isBrowser) {\n console.log(BROWSER_ERROR_MESSAGE);\n return BROWSER_ERROR_MESSAGE;\n }\n const {inputUrl, outputPath, tilesetName, maxDepth, egmFilePath} = options;\n this.conversionStartTime = process.hrtime();\n this.options = {maxDepth};\n\n console.log('Loading egm file...'); // eslint-disable-line\n this.geoidHeightModel = await load(egmFilePath, PGMLoader);\n console.log('Loading egm file completed!'); // eslint-disable-line\n\n this.sourceTileset = await load(inputUrl, I3SLoader, this.loaderOptions);\n\n if (!this.sourceTileset) {\n return;\n }\n\n const rootNode = this.sourceTileset?.root;\n if (!rootNode.obb) {\n rootNode.obb = createObbFromMbs(rootNode.mbs);\n }\n\n this.tilesetPath = join(`${outputPath}`, `${tilesetName}`);\n this.attributeStorageInfo = this.sourceTileset.attributeStorageInfo;\n // Removing the tilesetPath needed to exclude erroneous files after conversion\n try {\n await removeDir(this.tilesetPath);\n } catch (e) {\n // do nothing\n }\n\n const rootTile: Tiles3DTileJSON = {\n boundingVolume: {\n box: i3sObbTo3dTilesObb(rootNode.obb, this.geoidHeightModel)\n },\n geometricError: convertScreenThresholdToGeometricError(rootNode),\n children: []\n };\n\n await this._addChildren(rootNode, rootTile, 1);\n\n const tileset = transform({root: rootTile}, tilesetTemplate());\n await writeFile(this.tilesetPath, JSON.stringify(tileset), 'tileset.json');\n\n this._finishConversion({slpk: false, outputPath, tilesetName});\n\n // Clean up worker pools\n const workerFarm = WorkerFarm.getWorkerFarm({});\n workerFarm.destroy();\n }\n\n /**\n * Convert particular I3S Node\n * @param parentSourceNode the parent node tile object (@loaders.gl/tiles/Tile3D)\n * @param parentNode object in resulting tileset\n * @param level a current level of a tree depth\n * @param childNodeInfo child node to convert\n */\n private async convertChildNode(\n parentSourceNode: I3STileHeader,\n parentNode: Tiles3DTileJSON,\n level: number,\n childNodeInfo: NodeReference\n ): Promise<void> {\n const sourceChild = await this._loadChildNode(parentSourceNode, childNodeInfo);\n if (sourceChild.contentUrl) {\n const content = await loadI3SContent(this.sourceTileset, sourceChild, this.loaderOptions);\n\n if (!content) {\n await this._addChildren(sourceChild, parentNode, level + 1);\n return;\n }\n\n this.vertexCounter += content?.vertexCount || 0;\n\n let featureAttributes: FeatureAttribute | null = null;\n if (this.attributeStorageInfo) {\n featureAttributes = await this._loadChildAttributes(sourceChild, this.attributeStorageInfo);\n }\n\n if (!sourceChild.obb) {\n sourceChild.obb = createObbFromMbs(sourceChild.mbs);\n }\n\n const boundingVolume = {\n box: i3sObbTo3dTilesObb(sourceChild.obb, this.geoidHeightModel)\n };\n const child: Tiles3DTileJSON = {\n boundingVolume,\n geometricError: convertScreenThresholdToGeometricError(sourceChild),\n children: []\n };\n\n const i3sAttributesData: I3SAttributesData = {\n tileContent: content,\n box: boundingVolume.box,\n textureFormat: sourceChild.textureFormat\n };\n\n const b3dmConverter = new B3dmConverter();\n const b3dm = await b3dmConverter.convert(i3sAttributesData, featureAttributes);\n\n child.content = {\n uri: `${sourceChild.id}.b3dm`,\n boundingVolume\n };\n await writeFile(this.tilesetPath, new Uint8Array(b3dm), `${sourceChild.id}.b3dm`);\n parentNode.children.push(child);\n\n await this._addChildren(sourceChild, child, level + 1);\n } else {\n await this._addChildren(sourceChild, parentNode, level + 1);\n }\n }\n\n /**\n * The recursive function of traversal of a nodes tree\n * @param parentSourceNode the parent node tile object (@loaders.gl/tiles/Tile3D)\n * @param parentNode object in resulting tileset\n * @param level a current level of a tree depth\n */\n private async _addChildren(\n parentSourceNode: I3STileHeader,\n parentNode: Tiles3DTileJSON,\n level: number\n ): Promise<void> {\n if (this.options.maxDepth && level > this.options.maxDepth) {\n return;\n }\n const promises: Promise<void>[] = [];\n for (const childNodeInfo of parentSourceNode.children || []) {\n promises.push(this.convertChildNode(parentSourceNode, parentNode, level, childNodeInfo));\n }\n await Promise.all(promises);\n }\n\n /**\n * Load a child node having information from the node header\n * @param parentNode a parent node tile object (@loaders.gl/tiles/Tile3D)\n * @param childNodeInfo child information from 3DNodeIndexDocument\n * (https://github.com/Esri/i3s-spec/blob/master/docs/1.7/nodeReference.cmn.md)\n */\n private async _loadChildNode(\n parentNode: I3STileHeader,\n childNodeInfo: NodeReference\n ): Promise<I3STileHeader> {\n let header;\n if (this.sourceTileset?.nodePagesTile) {\n console.log(`Node conversion: ${childNodeInfo.id}`); // eslint-disable-line no-console,no-undef\n header = await this.sourceTileset.nodePagesTile.formTileFromNodePages(\n parseInt(childNodeInfo.id)\n );\n } else {\n const nodeUrl = this._relativeUrlToFullUrl(parentNode.url, childNodeInfo.href!);\n // load metadata\n const options = {\n i3s: {\n ...this.loaderOptions,\n isTileHeader: true,\n loadContent: false\n }\n };\n\n console.log(`Node conversion: ${nodeUrl}`); // eslint-disable-line no-console,no-undef\n header = await load(nodeUrl, I3SLoader, options);\n }\n return header;\n }\n\n /**\n * Make an url of a resource from its relative url having the base url\n * @param baseUrl the base url. A resulting url will be related from this url\n * @param relativeUrl a realtive url of a resource\n */\n private _relativeUrlToFullUrl(baseUrl: string = '', relativeUrl: string): string {\n let resultArray = baseUrl.split('/');\n const relativeUrlArray = relativeUrl.split('/');\n for (const folder of relativeUrlArray) {\n switch (folder) {\n case '.':\n continue; // eslint-disable-line no-continue\n case '..':\n resultArray = resultArray.slice(0, -1);\n break;\n default:\n resultArray.push(folder);\n }\n }\n return resultArray.join('/');\n }\n\n /**\n * Do loading all attributes related to particular node.\n * @param sourceChild\n * @param attributeStorageInfo\n * @returns Promise of attributes object.\n */\n private async _loadChildAttributes(\n sourceChild: I3STileHeader,\n attributeStorageInfo: AttributeStorageInfo[]\n ): Promise<FeatureAttribute> {\n const promises: any[] = [];\n const {attributeUrls = []} = sourceChild;\n\n for (let index = 0; index < attributeUrls.length; index++) {\n const inputUrl = attributeUrls[index];\n const attribute = attributeStorageInfo[index];\n const options = {\n attributeName: attribute.name,\n attributeType: this._getAttributeType(attribute)\n };\n\n promises.push(load(inputUrl, I3SAttributeLoader, options));\n }\n const attributesList = await Promise.all(promises);\n this._replaceNestedArrays(attributesList);\n return Object.assign({}, ...attributesList);\n }\n\n /**\n * Returns attribute type for loading attributes\n * @param attribute\n * Workaround for I3S v1.6. There is no attribute.attributeValues.valueType field in attribute.\n * There is an 'Oid32' type if attribute has objectIds property.\n * Doc: https://github.com/Esri/i3s-spec/blob/master/docs/1.6/attributeStorageInfo.cmn.md\n */\n private _getAttributeType(attribute: AttributeStorageInfo): string {\n if (attribute.attributeValues) {\n return attribute.attributeValues.valueType;\n } else if (attribute.objectIds) {\n return 'Oid32';\n }\n return '';\n }\n\n /**\n * Make simple arrays from attribute typed arrays.\n * @param attributesList\n */\n private _replaceNestedArrays(attributesList: FeatureAttribute[]): void {\n for (let index = 0; index < attributesList.length; index++) {\n const attributeObject = attributesList[index];\n\n for (const key in attributeObject) {\n attributeObject[key] = Array.from(attributeObject[key]);\n }\n }\n }\n\n /**\n * Print statistics in the end of conversion\n * @param params - output files data\n */\n private async _finishConversion(params: {\n slpk: boolean;\n outputPath: string;\n tilesetName: string;\n }): Promise<void> {\n const filesSize = await calculateFilesSize(params);\n const diff = process.hrtime(this.conversionStartTime);\n const conversionTime = timeConverter(diff);\n\n console.log(`------------------------------------------------`); // eslint-disable-line\n console.log(`Finish conversion of ${I3S}`); // eslint-disable-line\n console.log(`Total conversion time: ${conversionTime}`); // eslint-disable-line\n console.log(`Vertex count: `, this.vertexCounter); // eslint-disable-line\n console.log(`File(s) size: `, filesSize, ' bytes'); // eslint-disable-line\n console.log(`------------------------------------------------`); // eslint-disable-line\n }\n}\n"],"mappings":"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"}