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

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 (468) hide show
  1. package/bin/converter.js +1 -1
  2. package/dist/3d-tiles-attributes-worker.d.ts +28 -0
  3. package/dist/3d-tiles-attributes-worker.d.ts.map +1 -0
  4. package/dist/3d-tiles-attributes-worker.js +3 -0
  5. package/dist/3d-tiles-attributes-worker.js.map +7 -0
  6. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +90 -0
  7. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -0
  8. package/dist/3d-tiles-converter/3d-tiles-converter.js +275 -226
  9. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +71 -18
  10. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -0
  11. package/dist/3d-tiles-converter/helpers/b3dm-converter.js +256 -236
  12. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +4 -7
  13. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts.map +1 -0
  14. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +22 -9
  15. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts +9 -0
  16. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts.map +1 -0
  17. package/dist/3d-tiles-converter/helpers/texture-atlas.js +47 -28
  18. package/dist/3d-tiles-converter/json-templates/tileset.d.ts +15 -0
  19. package/dist/3d-tiles-converter/json-templates/tileset.d.ts.map +1 -0
  20. package/dist/3d-tiles-converter/json-templates/tileset.js +42 -36
  21. package/dist/bundle.d.ts +2 -0
  22. package/dist/bundle.d.ts.map +1 -0
  23. package/dist/bundle.js +2 -2
  24. package/dist/constants.d.ts +2 -0
  25. package/dist/constants.d.ts.map +1 -0
  26. package/dist/constants.js +4 -0
  27. package/dist/converter-cli.d.ts +2 -0
  28. package/dist/converter-cli.d.ts.map +1 -0
  29. package/dist/converter-cli.js +280 -0
  30. package/dist/converter.min.js +185 -190
  31. package/dist/deps-installer/deps-installer.d.ts +11 -3
  32. package/dist/deps-installer/deps-installer.d.ts.map +1 -0
  33. package/dist/deps-installer/deps-installer.js +61 -23
  34. package/dist/dist.min.js +64143 -0
  35. package/dist/es5/3d-tiles-attributes-worker.js +25 -0
  36. package/dist/es5/3d-tiles-attributes-worker.js.map +1 -0
  37. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +467 -0
  38. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
  39. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +293 -0
  40. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -0
  41. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +18 -0
  42. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -0
  43. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +33 -0
  44. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
  45. package/dist/es5/3d-tiles-converter/json-templates/tileset.js +61 -0
  46. package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +1 -0
  47. package/dist/es5/bundle.js +6 -0
  48. package/dist/es5/bundle.js.map +1 -0
  49. package/dist/es5/constants.js +9 -0
  50. package/dist/es5/constants.js.map +1 -0
  51. package/dist/es5/converter-cli.js +289 -0
  52. package/dist/es5/converter-cli.js.map +1 -0
  53. package/dist/es5/deps-installer/deps-installer.js +124 -0
  54. package/dist/es5/deps-installer/deps-installer.js.map +1 -0
  55. package/dist/es5/i3s-attributes-worker.js +25 -0
  56. package/dist/es5/i3s-attributes-worker.js.map +1 -0
  57. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +116 -0
  58. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -0
  59. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +89 -0
  60. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -0
  61. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +41 -0
  62. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +1 -0
  63. package/dist/es5/i3s-converter/helpers/feature-attributes.js +174 -0
  64. package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -0
  65. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +213 -0
  66. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -0
  67. package/dist/es5/i3s-converter/helpers/geometry-converter.js +1192 -0
  68. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -0
  69. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +113 -0
  70. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  71. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js +82 -0
  72. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js.map +1 -0
  73. package/dist/es5/i3s-converter/helpers/node-debug.js +76 -0
  74. package/dist/es5/i3s-converter/helpers/node-debug.js.map +1 -0
  75. package/dist/es5/i3s-converter/helpers/node-index-document.js +521 -0
  76. package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -0
  77. package/dist/es5/i3s-converter/helpers/node-pages.js +519 -0
  78. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -0
  79. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +111 -0
  80. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -0
  81. package/dist/es5/i3s-converter/helpers/tileset-traversal.js +82 -0
  82. package/dist/es5/i3s-converter/helpers/tileset-traversal.js.map +1 -0
  83. package/dist/es5/i3s-converter/i3s-converter.js +1541 -0
  84. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -0
  85. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js +107 -0
  86. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  87. package/dist/es5/i3s-converter/json-templates/layers.js +163 -0
  88. package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -0
  89. package/dist/es5/i3s-converter/json-templates/metadata.js +31 -0
  90. package/dist/es5/i3s-converter/json-templates/metadata.js.map +1 -0
  91. package/dist/es5/i3s-converter/json-templates/node.js +99 -0
  92. package/dist/es5/i3s-converter/json-templates/node.js.map +1 -0
  93. package/dist/es5/i3s-converter/json-templates/scene-server.js +39 -0
  94. package/dist/es5/i3s-converter/json-templates/scene-server.js.map +1 -0
  95. package/dist/es5/i3s-converter/json-templates/shared-resources.js +173 -0
  96. package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -0
  97. package/dist/es5/i3s-converter/json-templates/store.js +107 -0
  98. package/dist/es5/i3s-converter/json-templates/store.js.map +1 -0
  99. package/dist/es5/i3s-converter/types.js +18 -0
  100. package/dist/es5/i3s-converter/types.js.map +1 -0
  101. package/dist/es5/i3s-server/README.md +19 -0
  102. package/dist/es5/i3s-server/app.js +27 -0
  103. package/dist/es5/i3s-server/app.js.map +1 -0
  104. package/dist/es5/i3s-server/controllers/index-controller.js +55 -0
  105. package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -0
  106. package/dist/es5/i3s-server/controllers/slpk-controller.js +84 -0
  107. package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -0
  108. package/dist/es5/i3s-server/routes/index.js +37 -0
  109. package/dist/es5/i3s-server/routes/index.js.map +1 -0
  110. package/dist/es5/i3s-server/routes/slpk-router.js +71 -0
  111. package/dist/es5/i3s-server/routes/slpk-router.js.map +1 -0
  112. package/dist/es5/i3s-server/utils/create-scene-server.js +17 -0
  113. package/dist/es5/i3s-server/utils/create-scene-server.js.map +1 -0
  114. package/dist/es5/index.js +21 -0
  115. package/dist/es5/index.js.map +1 -0
  116. package/dist/es5/lib/utils/compress-util.js +346 -0
  117. package/dist/es5/lib/utils/compress-util.js.map +1 -0
  118. package/dist/es5/lib/utils/file-utils.js +208 -0
  119. package/dist/es5/lib/utils/file-utils.js.map +1 -0
  120. package/dist/es5/lib/utils/geometry-utils.js +15 -0
  121. package/dist/es5/lib/utils/geometry-utils.js.map +1 -0
  122. package/dist/es5/lib/utils/lod-conversion-utils.js +44 -0
  123. package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -0
  124. package/dist/es5/lib/utils/queue.js +47 -0
  125. package/dist/es5/lib/utils/queue.js.map +1 -0
  126. package/dist/es5/lib/utils/statistic-utills.d.ts +25 -0
  127. package/dist/es5/lib/utils/statistic-utills.js +147 -0
  128. package/dist/es5/lib/utils/statistic-utills.js.map +1 -0
  129. package/dist/es5/lib/utils/write-queue.js +214 -0
  130. package/dist/es5/lib/utils/write-queue.js.map +1 -0
  131. package/dist/es5/pgm-loader.js +41 -0
  132. package/dist/es5/pgm-loader.js.map +1 -0
  133. package/dist/es5/workers/3d-tiles-attributes-worker.js +28 -0
  134. package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -0
  135. package/dist/es5/workers/i3s-attributes-worker.js +30 -0
  136. package/dist/es5/workers/i3s-attributes-worker.js.map +1 -0
  137. package/dist/esm/3d-tiles-attributes-worker.js +16 -0
  138. package/dist/esm/3d-tiles-attributes-worker.js.map +1 -0
  139. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +245 -0
  140. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
  141. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +218 -0
  142. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -0
  143. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +10 -0
  144. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -0
  145. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js +27 -0
  146. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
  147. package/dist/esm/3d-tiles-converter/json-templates/tileset.js +37 -0
  148. package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +1 -0
  149. package/dist/esm/bundle.js +4 -0
  150. package/dist/esm/bundle.js.map +1 -0
  151. package/dist/esm/constants.js +2 -0
  152. package/dist/esm/constants.js.map +1 -0
  153. package/dist/esm/converter-cli.js +232 -0
  154. package/dist/esm/converter-cli.js.map +1 -0
  155. package/dist/esm/deps-installer/deps-installer.js +45 -0
  156. package/dist/esm/deps-installer/deps-installer.js.map +1 -0
  157. package/dist/esm/i3s-attributes-worker.js +16 -0
  158. package/dist/esm/i3s-attributes-worker.js.map +1 -0
  159. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +105 -0
  160. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -0
  161. package/dist/esm/i3s-converter/helpers/coordinate-converter.js +79 -0
  162. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -0
  163. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js +16 -0
  164. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +1 -0
  165. package/dist/esm/i3s-converter/helpers/feature-attributes.js +147 -0
  166. package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -0
  167. package/{src → dist/esm}/i3s-converter/helpers/geometry-attributes.js +80 -106
  168. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -0
  169. package/dist/esm/i3s-converter/helpers/geometry-converter.js +906 -0
  170. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -0
  171. package/dist/esm/i3s-converter/helpers/gltf-attributes.js +110 -0
  172. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  173. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js +35 -0
  174. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js.map +1 -0
  175. package/{src → dist/esm}/i3s-converter/helpers/node-debug.js +20 -41
  176. package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -0
  177. package/dist/esm/i3s-converter/helpers/node-index-document.js +201 -0
  178. package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -0
  179. package/dist/esm/i3s-converter/helpers/node-pages.js +206 -0
  180. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -0
  181. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js +48 -0
  182. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -0
  183. package/dist/esm/i3s-converter/helpers/tileset-traversal.js +14 -0
  184. package/dist/esm/i3s-converter/helpers/tileset-traversal.js.map +1 -0
  185. package/dist/esm/i3s-converter/i3s-converter.js +778 -0
  186. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -0
  187. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js +89 -0
  188. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  189. package/dist/esm/i3s-converter/json-templates/layers.js +133 -0
  190. package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -0
  191. package/dist/esm/i3s-converter/json-templates/metadata.js +22 -0
  192. package/dist/esm/i3s-converter/json-templates/metadata.js.map +1 -0
  193. package/dist/esm/i3s-converter/json-templates/node.js +80 -0
  194. package/dist/esm/i3s-converter/json-templates/node.js.map +1 -0
  195. package/dist/esm/i3s-converter/json-templates/scene-server.js +28 -0
  196. package/dist/esm/i3s-converter/json-templates/scene-server.js.map +1 -0
  197. package/dist/esm/i3s-converter/json-templates/shared-resources.js +123 -0
  198. package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -0
  199. package/dist/esm/i3s-converter/json-templates/store.js +98 -0
  200. package/dist/esm/i3s-converter/json-templates/store.js.map +1 -0
  201. package/dist/esm/i3s-converter/types.js +11 -0
  202. package/dist/esm/i3s-converter/types.js.map +1 -0
  203. package/dist/esm/i3s-server/README.md +19 -0
  204. package/dist/esm/i3s-server/app.js +26 -0
  205. package/dist/esm/i3s-server/app.js.map +1 -0
  206. package/dist/esm/i3s-server/bin/www +102 -0
  207. package/dist/esm/i3s-server/certs/cert.pem +19 -0
  208. package/dist/esm/i3s-server/certs/key.pem +27 -0
  209. package/dist/esm/i3s-server/controllers/index-controller.js +24 -0
  210. package/dist/esm/i3s-server/controllers/index-controller.js.map +1 -0
  211. package/dist/esm/i3s-server/controllers/slpk-controller.js +36 -0
  212. package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -0
  213. package/dist/esm/i3s-server/routes/index.js +16 -0
  214. package/dist/esm/i3s-server/routes/index.js.map +1 -0
  215. package/dist/esm/i3s-server/routes/slpk-router.js +33 -0
  216. package/dist/esm/i3s-server/routes/slpk-router.js.map +1 -0
  217. package/dist/esm/i3s-server/utils/create-scene-server.js +16 -0
  218. package/dist/esm/i3s-server/utils/create-scene-server.js.map +1 -0
  219. package/dist/esm/index.js +3 -0
  220. package/dist/esm/index.js.map +1 -0
  221. package/dist/esm/lib/utils/compress-util.js +168 -0
  222. package/dist/esm/lib/utils/compress-util.js.map +1 -0
  223. package/dist/esm/lib/utils/file-utils.js +87 -0
  224. package/dist/esm/lib/utils/file-utils.js.map +1 -0
  225. package/dist/esm/lib/utils/geometry-utils.js +8 -0
  226. package/dist/esm/lib/utils/geometry-utils.js.map +1 -0
  227. package/dist/esm/lib/utils/lod-conversion-utils.js +37 -0
  228. package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -0
  229. package/dist/esm/lib/utils/queue.js +15 -0
  230. package/dist/esm/lib/utils/queue.js.map +1 -0
  231. package/dist/esm/lib/utils/statistic-utills.d.ts +25 -0
  232. package/dist/esm/lib/utils/statistic-utills.js +62 -0
  233. package/dist/esm/lib/utils/statistic-utills.js.map +1 -0
  234. package/dist/esm/lib/utils/write-queue.js +85 -0
  235. package/dist/esm/lib/utils/write-queue.js.map +1 -0
  236. package/dist/esm/pgm-loader.js +15 -0
  237. package/dist/esm/pgm-loader.js.map +1 -0
  238. package/dist/esm/workers/3d-tiles-attributes-worker.js +8 -0
  239. package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -0
  240. package/dist/esm/workers/i3s-attributes-worker.js +7 -0
  241. package/dist/esm/workers/i3s-attributes-worker.js.map +1 -0
  242. package/dist/i3s-attributes-worker.d.ts +45 -0
  243. package/dist/i3s-attributes-worker.d.ts.map +1 -0
  244. package/dist/i3s-attributes-worker.js +9 -0
  245. package/dist/i3s-attributes-worker.js.map +7 -0
  246. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +13 -0
  247. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -0
  248. package/dist/i3s-converter/helpers/batch-ids-extensions.js +138 -0
  249. package/dist/i3s-converter/helpers/coordinate-converter.d.ts +40 -0
  250. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -0
  251. package/dist/i3s-converter/helpers/coordinate-converter.js +119 -42
  252. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts +9 -0
  253. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts.map +1 -0
  254. package/dist/i3s-converter/helpers/create-scene-server-path.js +27 -15
  255. package/dist/i3s-converter/helpers/feature-attributes.d.ts +56 -0
  256. package/dist/i3s-converter/helpers/feature-attributes.d.ts.map +1 -0
  257. package/dist/i3s-converter/helpers/feature-attributes.js +216 -0
  258. package/dist/i3s-converter/helpers/geometry-attributes.d.ts +8 -0
  259. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -0
  260. package/dist/i3s-converter/helpers/geometry-attributes.js +188 -185
  261. package/dist/i3s-converter/helpers/geometry-converter.d.ts +41 -35
  262. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -0
  263. package/dist/i3s-converter/helpers/geometry-converter.js +1179 -650
  264. package/dist/i3s-converter/helpers/gltf-attributes.d.ts +28 -0
  265. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -0
  266. package/dist/i3s-converter/helpers/gltf-attributes.js +128 -0
  267. package/dist/i3s-converter/helpers/load-3d-tiles.d.ts +18 -0
  268. package/dist/i3s-converter/helpers/load-3d-tiles.d.ts.map +1 -0
  269. package/dist/i3s-converter/helpers/load-3d-tiles.js +53 -0
  270. package/dist/i3s-converter/helpers/node-debug.d.ts +8 -0
  271. package/dist/i3s-converter/helpers/node-debug.d.ts.map +1 -0
  272. package/dist/i3s-converter/helpers/node-debug.js +106 -74
  273. package/dist/i3s-converter/helpers/node-index-document.d.ts +103 -0
  274. package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -0
  275. package/dist/i3s-converter/helpers/node-index-document.js +268 -0
  276. package/dist/i3s-converter/helpers/node-pages.d.ts +125 -113
  277. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -0
  278. package/dist/i3s-converter/helpers/node-pages.js +313 -133
  279. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts +23 -0
  280. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -0
  281. package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +76 -0
  282. package/dist/i3s-converter/helpers/tileset-traversal.d.ts +25 -0
  283. package/dist/i3s-converter/helpers/tileset-traversal.d.ts.map +1 -0
  284. package/dist/i3s-converter/helpers/tileset-traversal.js +29 -0
  285. package/dist/i3s-converter/i3s-converter.d.ts +267 -0
  286. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -0
  287. package/dist/i3s-converter/i3s-converter.js +891 -867
  288. package/dist/i3s-converter/json-templates/geometry-definitions.d.ts +7 -0
  289. package/dist/i3s-converter/json-templates/geometry-definitions.d.ts.map +1 -0
  290. package/dist/i3s-converter/json-templates/geometry-definitions.js +87 -0
  291. package/dist/i3s-converter/json-templates/layers.d.ts +70 -0
  292. package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -0
  293. package/dist/i3s-converter/json-templates/layers.js +138 -190
  294. package/dist/i3s-converter/json-templates/metadata.d.ts +22 -0
  295. package/dist/i3s-converter/json-templates/metadata.d.ts.map +1 -0
  296. package/dist/i3s-converter/json-templates/metadata.js +25 -22
  297. package/dist/i3s-converter/json-templates/node.d.ts +61 -0
  298. package/dist/i3s-converter/json-templates/node.d.ts.map +1 -0
  299. package/dist/i3s-converter/json-templates/node.js +88 -79
  300. package/dist/i3s-converter/json-templates/scene-server.d.ts +28 -0
  301. package/dist/i3s-converter/json-templates/scene-server.d.ts.map +1 -0
  302. package/dist/i3s-converter/json-templates/scene-server.js +31 -28
  303. package/dist/i3s-converter/json-templates/shared-resources.d.ts +14 -0
  304. package/dist/i3s-converter/json-templates/shared-resources.d.ts.map +1 -0
  305. package/dist/i3s-converter/json-templates/shared-resources.js +124 -125
  306. package/dist/i3s-converter/json-templates/store.d.ts +95 -0
  307. package/dist/i3s-converter/json-templates/store.d.ts.map +1 -0
  308. package/dist/i3s-converter/json-templates/store.js +100 -95
  309. package/dist/i3s-converter/types.d.ts +163 -0
  310. package/dist/i3s-converter/types.d.ts.map +1 -0
  311. package/dist/i3s-converter/types.js +17 -0
  312. package/dist/i3s-server/app.d.ts +3 -0
  313. package/dist/i3s-server/app.d.ts.map +1 -0
  314. package/dist/i3s-server/app.js +11 -10
  315. package/dist/i3s-server/controllers/index-controller.d.ts +2 -0
  316. package/dist/i3s-server/controllers/index-controller.d.ts.map +1 -0
  317. package/dist/i3s-server/controllers/index-controller.js +16 -24
  318. package/dist/i3s-server/controllers/slpk-controller.d.ts +3 -0
  319. package/dist/i3s-server/controllers/slpk-controller.d.ts.map +1 -0
  320. package/dist/i3s-server/controllers/slpk-controller.js +32 -0
  321. package/dist/i3s-server/routes/index.d.ts +3 -0
  322. package/dist/i3s-server/routes/index.d.ts.map +1 -0
  323. package/dist/i3s-server/routes/index.js +11 -15
  324. package/dist/i3s-server/routes/slpk-router.d.ts +3 -0
  325. package/dist/i3s-server/routes/slpk-router.d.ts.map +1 -0
  326. package/dist/i3s-server/routes/slpk-router.js +33 -0
  327. package/dist/i3s-server/utils/create-scene-server.d.ts +11 -0
  328. package/dist/i3s-server/utils/create-scene-server.d.ts.map +1 -0
  329. package/dist/i3s-server/utils/create-scene-server.js +14 -0
  330. package/dist/index.d.ts +3 -0
  331. package/dist/index.d.ts.map +1 -0
  332. package/dist/index.js +10 -5
  333. package/dist/lib/utils/compress-util.d.ts +45 -0
  334. package/dist/lib/utils/compress-util.d.ts.map +1 -0
  335. package/dist/lib/utils/compress-util.js +238 -160
  336. package/dist/lib/utils/file-utils.d.ts +22 -14
  337. package/dist/lib/utils/file-utils.d.ts.map +1 -0
  338. package/dist/lib/utils/file-utils.js +134 -36
  339. package/dist/lib/utils/geometry-utils.d.ts +9 -0
  340. package/dist/lib/utils/geometry-utils.d.ts.map +1 -0
  341. package/dist/lib/utils/geometry-utils.js +18 -0
  342. package/dist/lib/utils/lod-conversion-utils.d.ts +23 -13
  343. package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -0
  344. package/dist/lib/utils/lod-conversion-utils.js +72 -39
  345. package/dist/lib/utils/queue.d.ts +7 -0
  346. package/dist/lib/utils/queue.d.ts.map +1 -0
  347. package/dist/lib/utils/queue.js +18 -0
  348. package/dist/lib/utils/statistic-utills.d.ts +3 -25
  349. package/dist/lib/utils/statistic-utills.d.ts.map +1 -0
  350. package/dist/lib/utils/statistic-utills.js +58 -67
  351. package/dist/lib/utils/write-queue.d.ts +39 -0
  352. package/dist/lib/utils/write-queue.d.ts.map +1 -0
  353. package/dist/lib/utils/write-queue.js +80 -0
  354. package/dist/pgm-loader.d.ts +6 -0
  355. package/dist/pgm-loader.d.ts.map +1 -0
  356. package/dist/pgm-loader.js +23 -14
  357. package/dist/workers/3d-tiles-attributes-worker.d.ts +2 -0
  358. package/dist/workers/3d-tiles-attributes-worker.d.ts.map +1 -0
  359. package/dist/workers/3d-tiles-attributes-worker.js +9 -0
  360. package/dist/workers/i3s-attributes-worker.d.ts +2 -0
  361. package/dist/workers/i3s-attributes-worker.d.ts.map +1 -0
  362. package/dist/workers/i3s-attributes-worker.js +5 -0
  363. package/package.json +34 -24
  364. package/src/3d-tiles-attributes-worker.ts +43 -0
  365. package/src/3d-tiles-converter/3d-tiles-converter.ts +131 -63
  366. package/src/3d-tiles-converter/helpers/{b3dm-converter.js → b3dm-converter.ts} +72 -53
  367. package/src/3d-tiles-converter/helpers/{i3s-obb-to-3d-tiles-obb.js → i3s-obb-to-3d-tiles-obb.ts} +16 -1
  368. package/src/3d-tiles-converter/helpers/texture-atlas.ts +4 -4
  369. package/src/3d-tiles-converter/json-templates/{tileset.js → tileset.ts} +9 -9
  370. package/src/constants.ts +2 -0
  371. package/src/converter-cli.ts +370 -0
  372. package/src/deps-installer/deps-installer.ts +72 -0
  373. package/src/i3s-attributes-worker.ts +59 -0
  374. package/src/i3s-converter/helpers/batch-ids-extensions.ts +202 -0
  375. package/src/i3s-converter/helpers/coordinate-converter.ts +94 -33
  376. package/src/i3s-converter/helpers/create-scene-server-path.ts +29 -0
  377. package/src/i3s-converter/helpers/feature-attributes.ts +247 -0
  378. package/src/i3s-converter/helpers/geometry-attributes.ts +267 -0
  379. package/src/i3s-converter/helpers/geometry-converter.ts +1667 -0
  380. package/src/i3s-converter/helpers/gltf-attributes.ts +163 -0
  381. package/src/i3s-converter/helpers/load-3d-tiles.ts +68 -0
  382. package/src/i3s-converter/helpers/node-debug.ts +146 -0
  383. package/src/i3s-converter/helpers/node-index-document.ts +335 -0
  384. package/src/i3s-converter/helpers/node-pages.ts +344 -0
  385. package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +81 -0
  386. package/src/i3s-converter/helpers/tileset-traversal.ts +51 -0
  387. package/src/i3s-converter/i3s-converter.ts +650 -669
  388. package/src/i3s-converter/json-templates/geometry-definitions.ts +83 -0
  389. package/src/i3s-converter/json-templates/layers.ts +137 -0
  390. package/src/i3s-converter/json-templates/{metadata.js → metadata.ts} +2 -2
  391. package/src/i3s-converter/json-templates/{node.js → node.ts} +12 -12
  392. package/src/i3s-converter/json-templates/{scene-server.js → scene-server.ts} +2 -2
  393. package/src/i3s-converter/json-templates/{shared-resources.js → shared-resources.ts} +17 -17
  394. package/src/i3s-converter/types.ts +185 -0
  395. package/src/i3s-server/README.md +19 -0
  396. package/src/i3s-server/app.js +8 -1
  397. package/src/i3s-server/controllers/slpk-controller.js +38 -0
  398. package/src/i3s-server/routes/slpk-router.js +33 -0
  399. package/src/i3s-server/utils/create-scene-server.js +15 -0
  400. package/src/index.ts +0 -4
  401. package/src/lib/utils/{compress-util.js → compress-util.ts} +105 -18
  402. package/src/lib/utils/file-utils.ts +140 -0
  403. package/src/lib/utils/geometry-utils.ts +14 -0
  404. package/src/lib/utils/{lod-conversion-utils.js → lod-conversion-utils.ts} +31 -5
  405. package/src/lib/utils/queue.ts +17 -0
  406. package/src/lib/utils/write-queue.ts +110 -0
  407. package/src/pgm-loader.ts +3 -3
  408. package/src/workers/3d-tiles-attributes-worker.ts +6 -0
  409. package/src/workers/i3s-attributes-worker.ts +7 -0
  410. package/dist/3d-tiles-converter/3d-tiles-converter.js.map +0 -1
  411. package/dist/3d-tiles-converter/helpers/b3dm-converter.js.map +0 -1
  412. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +0 -1
  413. package/dist/3d-tiles-converter/helpers/texture-atlas.js.map +0 -1
  414. package/dist/3d-tiles-converter/json-templates/tileset.js.map +0 -1
  415. package/dist/bundle.js.map +0 -1
  416. package/dist/deps-installer/deps-installer.js.map +0 -1
  417. package/dist/i3s-converter/helpers/coordinate-converter.js.map +0 -1
  418. package/dist/i3s-converter/helpers/create-scene-server-path.js.map +0 -1
  419. package/dist/i3s-converter/helpers/geometry-attributes.js.map +0 -1
  420. package/dist/i3s-converter/helpers/geometry-converter.js.map +0 -1
  421. package/dist/i3s-converter/helpers/node-debug.js.map +0 -1
  422. package/dist/i3s-converter/helpers/node-pages.js.map +0 -1
  423. package/dist/i3s-converter/i3s-converter.js.map +0 -1
  424. package/dist/i3s-converter/json-templates/layers.js.map +0 -1
  425. package/dist/i3s-converter/json-templates/metadata.js.map +0 -1
  426. package/dist/i3s-converter/json-templates/node.js.map +0 -1
  427. package/dist/i3s-converter/json-templates/scene-server.js.map +0 -1
  428. package/dist/i3s-converter/json-templates/shared-resources.js.map +0 -1
  429. package/dist/i3s-converter/json-templates/store.js.map +0 -1
  430. package/dist/i3s-server/app.js.map +0 -1
  431. package/dist/i3s-server/controllers/index-controller.js.map +0 -1
  432. package/dist/i3s-server/routes/index.js.map +0 -1
  433. package/dist/index.js.map +0 -1
  434. package/dist/lib/geoid-height-model.d.ts +0 -41
  435. package/dist/lib/geoid-height-model.js +0 -140
  436. package/dist/lib/geoid-height-model.js.map +0 -1
  437. package/dist/lib/pgm-parser.d.ts +0 -14
  438. package/dist/lib/pgm-parser.js +0 -183
  439. package/dist/lib/pgm-parser.js.map +0 -1
  440. package/dist/lib/utils/compress-util.js.map +0 -1
  441. package/dist/lib/utils/compress-utils.d.ts +0 -53
  442. package/dist/lib/utils/file-utils.js.map +0 -1
  443. package/dist/lib/utils/lod-conversion-utils.js.map +0 -1
  444. package/dist/lib/utils/statistic-utills.js.map +0 -1
  445. package/dist/pgm-loader.js.map +0 -1
  446. package/src/3d-tiles-converter/helpers/b3dm-converter.d.ts +0 -23
  447. package/src/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +0 -16
  448. package/src/deps-installer/deps-installer.d.ts +0 -10
  449. package/src/deps-installer/deps-installer.js +0 -22
  450. package/src/i3s-converter/helpers/create-scene-server-path.js +0 -25
  451. package/src/i3s-converter/helpers/geometry-converter.d.ts +0 -40
  452. package/src/i3s-converter/helpers/geometry-converter.js +0 -915
  453. package/src/i3s-converter/helpers/node-pages.d.ts +0 -144
  454. package/src/i3s-converter/helpers/node-pages.js +0 -208
  455. package/src/i3s-converter/json-templates/layers.js +0 -199
  456. package/src/lib/geoid-height-model.d.ts +0 -41
  457. package/src/lib/geoid-height-model.js +0 -239
  458. package/src/lib/pgm-parser.d.ts +0 -14
  459. package/src/lib/pgm-parser.js +0 -179
  460. package/src/lib/utils/compress-utils.d.ts +0 -53
  461. package/src/lib/utils/file-utils.d.ts +0 -43
  462. package/src/lib/utils/file-utils.js +0 -38
  463. package/src/lib/utils/lod-conversion-utils.d.ts +0 -32
  464. /package/dist/{i3s-server → es5/i3s-server}/bin/www +0 -0
  465. /package/dist/{i3s-server → es5/i3s-server}/certs/cert.pem +0 -0
  466. /package/dist/{i3s-server → es5/i3s-server}/certs/key.pem +0 -0
  467. /package/src/i3s-converter/json-templates/{store.js → store.ts} +0 -0
  468. /package/src/lib/utils/{statistic-utills.js → statistic-utills.ts} +0 -0
@@ -0,0 +1,214 @@
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 _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
16
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
+ var _queue = require("./queue");
19
+ var _process = _interopRequireDefault(require("process"));
20
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
21
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
22
+ var MEMORY_LIMIT = 4 * 1024 * 1024 * 1024;
23
+ var WriteQueue = function (_Queue) {
24
+ (0, _inherits2.default)(WriteQueue, _Queue);
25
+ var _super = _createSuper(WriteQueue);
26
+ function WriteQueue() {
27
+ var _this;
28
+ var listeningInterval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 2000;
29
+ var writeConcurrency = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;
30
+ (0, _classCallCheck2.default)(this, WriteQueue);
31
+ _this = _super.call(this);
32
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "intervalId", void 0);
33
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "writePromise", null);
34
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fileMap", {});
35
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "listeningInterval", void 0);
36
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "writeConcurrency", void 0);
37
+ _this.listeningInterval = listeningInterval;
38
+ _this.writeConcurrency = writeConcurrency;
39
+ return _this;
40
+ }
41
+ (0, _createClass2.default)(WriteQueue, [{
42
+ key: "enqueue",
43
+ value: function () {
44
+ var _enqueue = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(val) {
45
+ var writeImmediately,
46
+ _ref,
47
+ archiveKey,
48
+ writePromise,
49
+ result,
50
+ _args = arguments;
51
+ return _regenerator.default.wrap(function _callee$(_context) {
52
+ while (1) switch (_context.prev = _context.next) {
53
+ case 0:
54
+ writeImmediately = _args.length > 1 && _args[1] !== undefined ? _args[1] : false;
55
+ if (!writeImmediately) {
56
+ _context.next = 9;
57
+ break;
58
+ }
59
+ _ref = val, archiveKey = _ref.archiveKey, writePromise = _ref.writePromise;
60
+ _context.next = 5;
61
+ return writePromise();
62
+ case 5:
63
+ result = _context.sent;
64
+ if (archiveKey && result) {
65
+ this.fileMap[archiveKey] = result;
66
+ }
67
+ _context.next = 13;
68
+ break;
69
+ case 9:
70
+ (0, _get2.default)((0, _getPrototypeOf2.default)(WriteQueue.prototype), "enqueue", this).call(this, val);
71
+ if (!(_process.default.memoryUsage().rss > MEMORY_LIMIT)) {
72
+ _context.next = 13;
73
+ break;
74
+ }
75
+ _context.next = 13;
76
+ return this.startWrite();
77
+ case 13:
78
+ case "end":
79
+ return _context.stop();
80
+ }
81
+ }, _callee, this);
82
+ }));
83
+ function enqueue(_x) {
84
+ return _enqueue.apply(this, arguments);
85
+ }
86
+ return enqueue;
87
+ }()
88
+ }, {
89
+ key: "startListening",
90
+ value: function startListening() {
91
+ this.intervalId = setInterval(this.startWrite.bind(this), this.listeningInterval);
92
+ }
93
+ }, {
94
+ key: "stopListening",
95
+ value: function stopListening() {
96
+ if (this.intervalId) {
97
+ clearInterval(this.intervalId);
98
+ }
99
+ }
100
+ }, {
101
+ key: "startWrite",
102
+ value: function () {
103
+ var _startWrite = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {
104
+ return _regenerator.default.wrap(function _callee2$(_context2) {
105
+ while (1) switch (_context2.prev = _context2.next) {
106
+ case 0:
107
+ if (!this.writePromise) {
108
+ this.writePromise = this.doWrite();
109
+ }
110
+ _context2.next = 3;
111
+ return this.writePromise;
112
+ case 3:
113
+ this.writePromise = null;
114
+ case 4:
115
+ case "end":
116
+ return _context2.stop();
117
+ }
118
+ }, _callee2, this);
119
+ }));
120
+ function startWrite() {
121
+ return _startWrite.apply(this, arguments);
122
+ }
123
+ return startWrite;
124
+ }()
125
+ }, {
126
+ key: "finalize",
127
+ value: function () {
128
+ var _finalize = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3() {
129
+ return _regenerator.default.wrap(function _callee3$(_context3) {
130
+ while (1) switch (_context3.prev = _context3.next) {
131
+ case 0:
132
+ this.stopListening();
133
+ _context3.next = 3;
134
+ return this.startWrite();
135
+ case 3:
136
+ case "end":
137
+ return _context3.stop();
138
+ }
139
+ }, _callee3, this);
140
+ }));
141
+ function finalize() {
142
+ return _finalize.apply(this, arguments);
143
+ }
144
+ return finalize;
145
+ }()
146
+ }, {
147
+ key: "doWrite",
148
+ value: function () {
149
+ var _doWrite = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4() {
150
+ var promises, archiveKeys, i, item, _ref2, archiveKey, writePromise, promise, writeResults;
151
+ return _regenerator.default.wrap(function _callee4$(_context4) {
152
+ while (1) switch (_context4.prev = _context4.next) {
153
+ case 0:
154
+ if (!this.length) {
155
+ _context4.next = 21;
156
+ break;
157
+ }
158
+ promises = [];
159
+ archiveKeys = [];
160
+ i = 0;
161
+ case 4:
162
+ if (!(i < this.writeConcurrency)) {
163
+ _context4.next = 15;
164
+ break;
165
+ }
166
+ item = this.dequeue();
167
+ if (item) {
168
+ _context4.next = 8;
169
+ break;
170
+ }
171
+ return _context4.abrupt("break", 15);
172
+ case 8:
173
+ _ref2 = item, archiveKey = _ref2.archiveKey, writePromise = _ref2.writePromise;
174
+ archiveKeys.push(archiveKey);
175
+ promise = writePromise();
176
+ promises.push(promise);
177
+ case 12:
178
+ i++;
179
+ _context4.next = 4;
180
+ break;
181
+ case 15:
182
+ _context4.next = 17;
183
+ return Promise.allSettled(promises);
184
+ case 17:
185
+ writeResults = _context4.sent;
186
+ this.updateFileMap(archiveKeys, writeResults);
187
+ _context4.next = 0;
188
+ break;
189
+ case 21:
190
+ case "end":
191
+ return _context4.stop();
192
+ }
193
+ }, _callee4, this);
194
+ }));
195
+ function doWrite() {
196
+ return _doWrite.apply(this, arguments);
197
+ }
198
+ return doWrite;
199
+ }()
200
+ }, {
201
+ key: "updateFileMap",
202
+ value: function updateFileMap(archiveKeys, writeResults) {
203
+ for (var i = 0; i < archiveKeys.length; i++) {
204
+ var archiveKey = archiveKeys[i];
205
+ if (archiveKey && 'value' in writeResults[i]) {
206
+ this.fileMap[archiveKey] = writeResults[i].value;
207
+ }
208
+ }
209
+ }
210
+ }]);
211
+ return WriteQueue;
212
+ }(_queue.Queue);
213
+ exports.default = WriteQueue;
214
+ //# sourceMappingURL=write-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-queue.js","names":["_queue","require","_process","_interopRequireDefault","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","MEMORY_LIMIT","WriteQueue","_Queue","_inherits2","_super","_this","listeningInterval","length","undefined","writeConcurrency","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_createClass2","key","value","_enqueue","_asyncToGenerator2","_regenerator","mark","_callee","val","writeImmediately","_ref","archiveKey","writePromise","_args","wrap","_callee$","_context","prev","next","sent","fileMap","_get2","process","memoryUsage","rss","startWrite","stop","enqueue","_x","startListening","intervalId","setInterval","bind","stopListening","clearInterval","_startWrite","_callee2","_callee2$","_context2","doWrite","_finalize","_callee3","_callee3$","_context3","finalize","_doWrite","_callee4","promises","archiveKeys","i","item","_ref2","promise","writeResults","_callee4$","_context4","dequeue","abrupt","push","Promise","allSettled","updateFileMap","Queue","exports"],"sources":["../../../../src/lib/utils/write-queue.ts"],"sourcesContent":["import {Queue} from './queue';\nimport process from 'process';\n\n/** Memory limit size is based on testing */\nconst MEMORY_LIMIT = 4 * 1024 * 1024 * 1024; // 4GB\n\nexport type WriteQueueItem = {\n archiveKey?: string;\n /**\n * writePromise() returns a Promise that will be awaited in Promise.allSettled(promises);\n * Arguments for this call are specified in writeQueue.enqueue call like this:\n * await writeQueue.enqueue({\n * archiveKey: `nodePages/xxx.json.gz`,\n * writePromise: () => writeFileForSlpk(slpkPath, data, `xxx.json`)\n * });\n * Note, a function like writeFileForSlpk should NOT be called when initializing the object for enqueue().\n * If he function is called, the promise will be created\n * and the function will allocate resources (file descriptors) for file writing.\n * It will be done for ALL items in the queue, which is not supposed to happen.\n * That's why the function should be passed as\n * writePromise: () => writeFileForSlpk(slpkPath, content, `xxx.json`)\n * instead of\n * writePromise: writeFileForSlpk(slpkPath, content, `xxx.json`) // INCORRECT !\n */\n writePromise: () => Promise<string | null>;\n};\n\nexport default class WriteQueue<T extends WriteQueueItem> extends Queue<T> {\n private intervalId?: NodeJS.Timeout;\n public writePromise: Promise<void> | null = null;\n public fileMap: {[key: string]: string} = {};\n public listeningInterval: number;\n public writeConcurrency: number;\n\n constructor(listeningInterval: number = 2000, writeConcurrency: number = 400) {\n super();\n this.listeningInterval = listeningInterval;\n this.writeConcurrency = writeConcurrency;\n }\n\n async enqueue(val: T, writeImmediately: boolean = false) {\n if (writeImmediately) {\n const {archiveKey, writePromise} = val as WriteQueueItem;\n const result = await writePromise();\n if (archiveKey && result) {\n this.fileMap[archiveKey] = result;\n }\n } else {\n super.enqueue(val);\n /** https://nodejs.org/docs/latest-v14.x/api/process.html#process_process_memoryusage */\n if (process.memoryUsage().rss > MEMORY_LIMIT) {\n await this.startWrite();\n }\n }\n }\n\n startListening() {\n this.intervalId = setInterval(this.startWrite.bind(this), this.listeningInterval);\n }\n\n stopListening() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n }\n\n async startWrite(): Promise<void> {\n if (!this.writePromise) {\n this.writePromise = this.doWrite();\n }\n await this.writePromise;\n this.writePromise = null;\n }\n\n async finalize(): Promise<void> {\n this.stopListening();\n await this.startWrite();\n }\n\n private async doWrite(): Promise<void> {\n while (this.length) {\n const promises: Promise<string | null>[] = [];\n const archiveKeys: (string | undefined)[] = [];\n for (let i = 0; i < this.writeConcurrency; i++) {\n const item = this.dequeue();\n if (!item) {\n break;\n }\n const {archiveKey, writePromise} = item as WriteQueueItem;\n archiveKeys.push(archiveKey);\n const promise = writePromise();\n promises.push(promise);\n }\n const writeResults = await Promise.allSettled(promises);\n this.updateFileMap(archiveKeys, writeResults);\n }\n }\n\n private updateFileMap(\n archiveKeys: (string | undefined)[],\n writeResults: PromiseSettledResult<string | null>[]\n ) {\n for (let i = 0; i < archiveKeys.length; i++) {\n const archiveKey = archiveKeys[i];\n if (archiveKey && 'value' in writeResults[i]) {\n this.fileMap[archiveKey] = (writeResults[i] as PromiseFulfilledResult<string>).value;\n }\n }\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.PGMLoader = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _geoid = require("@math.gl/geoid");
11
+ var VERSION = typeof "4.0.0-alpha.10" !== 'undefined' ? "4.0.0-alpha.10" : 'latest';
12
+ var PGMLoader = {
13
+ name: 'PGM - Netpbm grayscale image format',
14
+ id: 'pgm',
15
+ module: 'tile-converter',
16
+ version: VERSION,
17
+ mimeTypes: ['image/x-portable-graymap'],
18
+ parse: function () {
19
+ var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
20
+ return _regenerator.default.wrap(function _callee$(_context) {
21
+ while (1) switch (_context.prev = _context.next) {
22
+ case 0:
23
+ return _context.abrupt("return", (0, _geoid.parsePGM)(new Uint8Array(arrayBuffer), options));
24
+ case 1:
25
+ case "end":
26
+ return _context.stop();
27
+ }
28
+ }, _callee);
29
+ }));
30
+ function parse(_x, _x2) {
31
+ return _parse.apply(this, arguments);
32
+ }
33
+ return parse;
34
+ }(),
35
+ extensions: ['pgm'],
36
+ options: {
37
+ cubic: false
38
+ }
39
+ };
40
+ exports.PGMLoader = PGMLoader;
41
+ //# sourceMappingURL=pgm-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pgm-loader.js","names":["_geoid","require","VERSION","PGMLoader","name","id","module","version","mimeTypes","parse","_parse","_asyncToGenerator2","default","_regenerator","mark","_callee","arrayBuffer","options","wrap","_callee$","_context","prev","next","abrupt","parsePGM","Uint8Array","stop","_x","_x2","apply","arguments","extensions","cubic","exports"],"sources":["../../src/pgm-loader.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {parsePGM} from '@math.gl/geoid';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * Loader for PGM - Netpbm grayscale image format\n */\nexport const PGMLoader: LoaderWithParser = {\n name: 'PGM - Netpbm grayscale image format',\n id: 'pgm',\n module: 'tile-converter',\n version: VERSION,\n mimeTypes: ['image/x-portable-graymap'],\n // @ts-expect-error LoaderOptions does not have cubic parameter\n parse: async (arrayBuffer, options) => parsePGM(new Uint8Array(arrayBuffer), options),\n extensions: ['pgm'],\n options: {\n // TODO - use pgm namespace\n cubic: false\n }\n};\n"],"mappings":";;;;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAKpE,IAAMC,SAA2B,GAAG;EACzCC,IAAI,EAAE,qCAAqC;EAC3CC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,gBAAgB;EACxBC,OAAO,EAAEL,OAAO;EAChBM,SAAS,EAAE,CAAC,0BAA0B,CAAC;EAEvCC,KAAK;IAAA,IAAAC,MAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAOC,WAAW,EAAEC,OAAO;MAAA,OAAAJ,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WAAK,IAAAC,eAAQ,EAAC,IAAIC,UAAU,CAACT,WAAW,CAAC,EAAEC,OAAO,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAM,IAAA;QAAA;MAAA,GAAAX,OAAA;IAAA;IAAA,SAAAN,MAAAkB,EAAA,EAAAC,GAAA;MAAA,OAAAlB,MAAA,CAAAmB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAArB,KAAA;EAAA;EACrFsB,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBd,OAAO,EAAE;IAEPe,KAAK,EAAE;EACT;AACF,CAAC;AAACC,OAAA,CAAA9B,SAAA,GAAAA,SAAA"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _workerUtils = require("@loaders.gl/worker-utils");
7
+ var _b3dmConverter = _interopRequireDefault(require("../3d-tiles-converter/helpers/b3dm-converter"));
8
+ var b3dmConverter = new _b3dmConverter.default();
9
+ (0, _workerUtils.createWorker)(function () {
10
+ var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data) {
11
+ var options,
12
+ _args = arguments;
13
+ return _regenerator.default.wrap(function _callee$(_context) {
14
+ while (1) switch (_context.prev = _context.next) {
15
+ case 0:
16
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
17
+ return _context.abrupt("return", b3dmConverter.convert(data, options.featureAttributes));
18
+ case 2:
19
+ case "end":
20
+ return _context.stop();
21
+ }
22
+ }, _callee);
23
+ }));
24
+ return function (_x) {
25
+ return _ref.apply(this, arguments);
26
+ };
27
+ }());
28
+ //# sourceMappingURL=3d-tiles-attributes-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3d-tiles-attributes-worker.js","names":["_workerUtils","require","_b3dmConverter","_interopRequireDefault","b3dmConverter","B3dmConverter","createWorker","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","data","options","_args","arguments","wrap","_callee$","_context","prev","next","length","undefined","abrupt","convert","featureAttributes","stop","_x","apply"],"sources":["../../../src/workers/3d-tiles-attributes-worker.ts"],"sourcesContent":["import {createWorker} from '@loaders.gl/worker-utils';\nimport B3dmConverter from '../3d-tiles-converter/helpers/b3dm-converter';\n\nconst b3dmConverter = new B3dmConverter();\n\ncreateWorker(async (data, options = {}) => b3dmConverter.convert(data, options.featureAttributes));\n"],"mappings":";;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAMG,aAAa,GAAG,IAAIC,sBAAa,CAAC,CAAC;AAEzC,IAAAC,yBAAY;EAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAC,SAAAC,QAAOC,IAAI;IAAA,IAAAC,OAAA;MAAAC,KAAA,GAAAC,SAAA;IAAA,OAAAN,YAAA,CAAAD,OAAA,CAAAQ,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAEP,OAAO,GAAAC,KAAA,CAAAO,MAAA,QAAAP,KAAA,QAAAQ,SAAA,GAAAR,KAAA,MAAG,CAAC,CAAC;UAAA,OAAAI,QAAA,CAAAK,MAAA,WAAKpB,aAAa,CAACqB,OAAO,CAACZ,IAAI,EAAEC,OAAO,CAACY,iBAAiB,CAAC;QAAA;QAAA;UAAA,OAAAP,QAAA,CAAAQ,IAAA;MAAA;IAAA,GAAAf,OAAA;EAAA;EAAA,iBAAAgB,EAAA;IAAA,OAAArB,IAAA,CAAAsB,KAAA,OAAAb,SAAA;EAAA;AAAA,IAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _workerUtils = require("@loaders.gl/worker-utils");
7
+ var _geometryConverter = require("../i3s-converter/helpers/geometry-converter");
8
+ (0, _workerUtils.createWorker)(function () {
9
+ var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data) {
10
+ var options,
11
+ _args = arguments;
12
+ return _regenerator.default.wrap(function _callee$(_context) {
13
+ while (1) switch (_context.prev = _context.next) {
14
+ case 0:
15
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
16
+ _context.next = 3;
17
+ return (0, _geometryConverter.convertAttributes)(data, options.materialAndTextureList, options.useCartesianPositions);
18
+ case 3:
19
+ return _context.abrupt("return", _context.sent);
20
+ case 4:
21
+ case "end":
22
+ return _context.stop();
23
+ }
24
+ }, _callee);
25
+ }));
26
+ return function (_x) {
27
+ return _ref.apply(this, arguments);
28
+ };
29
+ }());
30
+ //# sourceMappingURL=i3s-attributes-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i3s-attributes-worker.js","names":["_workerUtils","require","_geometryConverter","createWorker","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","data","options","_args","arguments","wrap","_callee$","_context","prev","next","length","undefined","convertAttributes","materialAndTextureList","useCartesianPositions","abrupt","sent","stop","_x","apply"],"sources":["../../../src/workers/i3s-attributes-worker.ts"],"sourcesContent":["import {createWorker} from '@loaders.gl/worker-utils';\nimport {convertAttributes} from '../i3s-converter/helpers/geometry-converter';\n\ncreateWorker(\n async (data, options = {}) =>\n await convertAttributes(data, options.materialAndTextureList, options.useCartesianPositions)\n);\n"],"mappings":";;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAEA,IAAAE,yBAAY;EAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CACV,SAAAC,QAAOC,IAAI;IAAA,IAAAC,OAAA;MAAAC,KAAA,GAAAC,SAAA;IAAA,OAAAN,YAAA,CAAAD,OAAA,CAAAQ,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAEP,OAAO,GAAAC,KAAA,CAAAO,MAAA,QAAAP,KAAA,QAAAQ,SAAA,GAAAR,KAAA,MAAG,CAAC,CAAC;UAAAI,QAAA,CAAAE,IAAA;UAAA,OACjB,IAAAG,oCAAiB,EAACX,IAAI,EAAEC,OAAO,CAACW,sBAAsB,EAAEX,OAAO,CAACY,qBAAqB,CAAC;QAAA;UAAA,OAAAP,QAAA,CAAAQ,MAAA,WAAAR,QAAA,CAAAS,IAAA;QAAA;QAAA;UAAA,OAAAT,QAAA,CAAAU,IAAA;MAAA;IAAA,GAAAjB,OAAA;EAAA;EAAA,iBAAAkB,EAAA;IAAA,OAAAvB,IAAA,CAAAwB,KAAA,OAAAf,SAAA;EAAA;AAAA,GAChG,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { processOnWorker } from '@loaders.gl/worker-utils';
2
+ const VERSION = typeof "4.0.0-alpha.10" !== 'undefined' ? "4.0.0-alpha.10" : 'latest';
3
+ export const Tile3dAttributesWorker = {
4
+ id: '3d-tiles-attributes',
5
+ name: '3DTiles Attributes Worker',
6
+ module: 'tile-converter',
7
+ version: VERSION,
8
+ options: {
9
+ featureAttributes: null
10
+ }
11
+ };
12
+ export function transform3DTilesAttributesOnWorker(i3sAttributesData, options) {
13
+ return processOnWorker(Tile3dAttributesWorker, i3sAttributesData, options);
14
+ }
15
+ export const _typecheckI3SAttributesWorker = Tile3dAttributesWorker;
16
+ //# sourceMappingURL=3d-tiles-attributes-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3d-tiles-attributes-worker.js","names":["processOnWorker","VERSION","Tile3dAttributesWorker","id","name","module","version","options","featureAttributes","transform3DTilesAttributesOnWorker","i3sAttributesData","_typecheckI3SAttributesWorker"],"sources":["../../src/3d-tiles-attributes-worker.ts"],"sourcesContent":["import type {WorkerObject} from '@loaders.gl/worker-utils';\nimport type {FeatureAttribute} from '@loaders.gl/i3s';\n\nimport {processOnWorker} from '@loaders.gl/worker-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type Tile3DAttributesWorkerOptions = {\n featureAttributes: FeatureAttribute | null;\n source: string;\n};\n\nexport type I3SAttributesData = {\n tileContent: any;\n textureFormat: string;\n};\n\n/**\n * I3S Attributes Worker to handle B3DM object\n */\nexport const Tile3dAttributesWorker = {\n id: '3d-tiles-attributes',\n name: '3DTiles Attributes Worker',\n module: 'tile-converter',\n version: VERSION,\n options: {\n featureAttributes: null\n }\n};\n\n/**\n * Performs I3S attributes transformation\n */\nexport function transform3DTilesAttributesOnWorker(\n i3sAttributesData: I3SAttributesData,\n options: Tile3DAttributesWorkerOptions\n): Promise<ArrayBuffer> {\n return processOnWorker(Tile3dAttributesWorker, i3sAttributesData, options);\n}\n\nexport const _typecheckI3SAttributesWorker: WorkerObject = Tile3dAttributesWorker;\n"],"mappings":"AAGA,SAAQA,eAAe,QAAO,0BAA0B;AAIxD,MAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAe3E,OAAO,MAAMC,sBAAsB,GAAG;EACpCC,EAAE,EAAE,qBAAqB;EACzBC,IAAI,EAAE,2BAA2B;EACjCC,MAAM,EAAE,gBAAgB;EACxBC,OAAO,EAAEL,OAAO;EAChBM,OAAO,EAAE;IACPC,iBAAiB,EAAE;EACrB;AACF,CAAC;AAKD,OAAO,SAASC,kCAAkCA,CAChDC,iBAAoC,EACpCH,OAAsC,EAChB;EACtB,OAAOP,eAAe,CAACE,sBAAsB,EAAEQ,iBAAiB,EAAEH,OAAO,CAAC;AAC5E;AAEA,OAAO,MAAMI,6BAA2C,GAAGT,sBAAsB"}
@@ -0,0 +1,245 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import { join } from 'path';
3
+ import process from 'process';
4
+ import transform from 'json-map-transform';
5
+ import { fetchFile, getLoaderOptions, load, isBrowser } from '@loaders.gl/core';
6
+ import { I3SLoader, I3SAttributeLoader, COORDINATE_SYSTEM } from '@loaders.gl/i3s';
7
+ import { Tileset3D, Tile3D } from '@loaders.gl/tiles';
8
+ import { PGMLoader } from '../pgm-loader';
9
+ import { i3sObbTo3dTilesObb } from './helpers/i3s-obb-to-3d-tiles-obb';
10
+ import { convertScreenThresholdToGeometricError } from '../lib/utils/lod-conversion-utils';
11
+ import { writeFile, removeDir } from '../lib/utils/file-utils';
12
+ import { calculateFilesSize, timeConverter } from '../lib/utils/statistic-utills';
13
+ import { TILESET as tilesetTemplate } from './json-templates/tileset';
14
+ import { createObbFromMbs } from '../i3s-converter/helpers/coordinate-converter';
15
+ import { Tile3dAttributesWorker, transform3DTilesAttributesOnWorker } from '../3d-tiles-attributes-worker';
16
+ import { getWorkerURL, WorkerFarm } from '@loaders.gl/worker-utils';
17
+ import { BROWSER_ERROR_MESSAGE } from '../constants';
18
+ const I3S = 'I3S';
19
+ export default class Tiles3DConverter {
20
+ constructor() {
21
+ _defineProperty(this, "options", void 0);
22
+ _defineProperty(this, "tilesetPath", void 0);
23
+ _defineProperty(this, "vertexCounter", void 0);
24
+ _defineProperty(this, "conversionStartTime", void 0);
25
+ _defineProperty(this, "geoidHeightModel", void 0);
26
+ _defineProperty(this, "sourceTileset", void 0);
27
+ _defineProperty(this, "attributeStorageInfo", void 0);
28
+ _defineProperty(this, "workerSource", {});
29
+ this.options = {};
30
+ this.tilesetPath = '';
31
+ this.vertexCounter = 0;
32
+ this.conversionStartTime = [0, 0];
33
+ this.geoidHeightModel = null;
34
+ this.sourceTileset = null;
35
+ this.attributeStorageInfo = null;
36
+ this.workerSource = {};
37
+ }
38
+ async convert(options) {
39
+ if (isBrowser) {
40
+ console.log(BROWSER_ERROR_MESSAGE);
41
+ return BROWSER_ERROR_MESSAGE;
42
+ }
43
+ const {
44
+ inputUrl,
45
+ outputPath,
46
+ tilesetName,
47
+ maxDepth,
48
+ egmFilePath
49
+ } = options;
50
+ this.conversionStartTime = process.hrtime();
51
+ this.options = {
52
+ maxDepth
53
+ };
54
+ console.log('Loading egm file...');
55
+ this.geoidHeightModel = await load(egmFilePath, PGMLoader);
56
+ console.log('Loading egm file completed!');
57
+ await this.loadWorkers();
58
+ const sourceTilesetJson = await load(inputUrl, I3SLoader, {});
59
+ this.sourceTileset = new Tileset3D(sourceTilesetJson, {
60
+ loadOptions: {
61
+ _nodeWorkers: true,
62
+ reuseWorkers: true,
63
+ i3s: {
64
+ coordinateSystem: COORDINATE_SYSTEM.LNGLAT_OFFSETS,
65
+ decodeTextures: false
66
+ }
67
+ }
68
+ });
69
+ await this.sourceTileset.tilesetInitializationPromise;
70
+ const rootNode = this.sourceTileset.root;
71
+ if (!rootNode.header.obb) {
72
+ rootNode.header.obb = createObbFromMbs(rootNode.header.mbs);
73
+ }
74
+ this.tilesetPath = join("".concat(outputPath), "".concat(tilesetName));
75
+ this.attributeStorageInfo = sourceTilesetJson.attributeStorageInfo;
76
+ try {
77
+ await removeDir(this.tilesetPath);
78
+ } catch (e) {}
79
+ const rootTile = {
80
+ boundingVolume: {
81
+ box: i3sObbTo3dTilesObb(rootNode.header.obb, this.geoidHeightModel)
82
+ },
83
+ geometricError: convertScreenThresholdToGeometricError(rootNode),
84
+ children: []
85
+ };
86
+ await this._addChildren(rootNode, rootTile, 1);
87
+ const tileset = transform({
88
+ root: rootTile
89
+ }, tilesetTemplate());
90
+ await writeFile(this.tilesetPath, JSON.stringify(tileset), 'tileset.json');
91
+ this._finishConversion({
92
+ slpk: false,
93
+ outputPath,
94
+ tilesetName
95
+ });
96
+ const workerFarm = WorkerFarm.getWorkerFarm({});
97
+ workerFarm.destroy();
98
+ }
99
+ async convertChildNode(parentSourceNode, parentNode, level, childNodeInfo) {
100
+ const sourceChild = await this._loadChildNode(parentSourceNode, childNodeInfo);
101
+ parentSourceNode.children.push(sourceChild);
102
+ if (sourceChild.contentUrl) {
103
+ var _sourceChild$header;
104
+ await this.sourceTileset._loadTile(sourceChild);
105
+ this.vertexCounter += sourceChild.content.vertexCount;
106
+ let featureAttributes = null;
107
+ if (this.attributeStorageInfo) {
108
+ featureAttributes = await this._loadChildAttributes(sourceChild, this.attributeStorageInfo);
109
+ }
110
+ if (!sourceChild.header.obb) {
111
+ sourceChild.header.obb = createObbFromMbs(sourceChild.header.mbs);
112
+ }
113
+ const boundingVolume = {
114
+ box: i3sObbTo3dTilesObb(sourceChild.header.obb, this.geoidHeightModel)
115
+ };
116
+ const child = {
117
+ boundingVolume,
118
+ geometricError: convertScreenThresholdToGeometricError(sourceChild),
119
+ children: []
120
+ };
121
+ const i3sAttributesData = {
122
+ tileContent: sourceChild.content,
123
+ textureFormat: sourceChild === null || sourceChild === void 0 ? void 0 : (_sourceChild$header = sourceChild.header) === null || _sourceChild$header === void 0 ? void 0 : _sourceChild$header.textureFormat
124
+ };
125
+ const b3dm = await transform3DTilesAttributesOnWorker(i3sAttributesData, {
126
+ source: this.workerSource.tile3dWorkerSource,
127
+ featureAttributes
128
+ });
129
+ child.content = {
130
+ uri: "".concat(sourceChild.id, ".b3dm"),
131
+ boundingVolume
132
+ };
133
+ await writeFile(this.tilesetPath, new Uint8Array(b3dm), "".concat(sourceChild.id, ".b3dm"));
134
+ parentNode.children.push(child);
135
+ sourceChild.unloadContent();
136
+ await this._addChildren(sourceChild, child, level + 1);
137
+ } else {
138
+ await this._addChildren(sourceChild, parentNode, level + 1);
139
+ }
140
+ }
141
+ async _addChildren(parentSourceNode, parentNode, level) {
142
+ if (this.options.maxDepth && level > this.options.maxDepth) {
143
+ return;
144
+ }
145
+ const promises = [];
146
+ for (const childNodeInfo of parentSourceNode.header.children || []) {
147
+ promises.push(this.convertChildNode(parentSourceNode, parentNode, level, childNodeInfo));
148
+ }
149
+ await Promise.all(promises);
150
+ }
151
+ async _loadChildNode(parentNode, childNodeInfo) {
152
+ let header;
153
+ if (this.sourceTileset.tileset.nodePages) {
154
+ console.log("Node conversion: ".concat(childNodeInfo.id));
155
+ header = await this.sourceTileset.tileset.nodePagesTile.formTileFromNodePages(childNodeInfo.id);
156
+ } else {
157
+ const {
158
+ loader
159
+ } = this.sourceTileset;
160
+ const nodeUrl = this._relativeUrlToFullUrl(parentNode.url, childNodeInfo.href);
161
+ const options = {
162
+ i3s: {
163
+ ...this.sourceTileset.loadOptions,
164
+ isTileHeader: true,
165
+ loadContent: false
166
+ }
167
+ };
168
+ console.log("Node conversion: ".concat(nodeUrl));
169
+ header = await load(nodeUrl, loader, options);
170
+ }
171
+ return new Tile3D(this.sourceTileset, header, parentNode);
172
+ }
173
+ _relativeUrlToFullUrl(baseUrl, relativeUrl) {
174
+ let resultArray = baseUrl.split('/');
175
+ const relativeUrlArray = relativeUrl.split('/');
176
+ for (const folder of relativeUrlArray) {
177
+ switch (folder) {
178
+ case '.':
179
+ continue;
180
+ case '..':
181
+ resultArray = resultArray.slice(0, -1);
182
+ break;
183
+ default:
184
+ resultArray.push(folder);
185
+ }
186
+ }
187
+ return resultArray.join('/');
188
+ }
189
+ async _loadChildAttributes(sourceChild, attributeStorageInfo) {
190
+ const promises = [];
191
+ const {
192
+ attributeUrls
193
+ } = sourceChild.header;
194
+ for (let index = 0; index < attributeUrls.length; index++) {
195
+ const inputUrl = attributeUrls[index];
196
+ const attribute = attributeStorageInfo[index];
197
+ const options = {
198
+ attributeName: attribute.name,
199
+ attributeType: this._getAttributeType(attribute)
200
+ };
201
+ promises.push(load(inputUrl, I3SAttributeLoader, options));
202
+ }
203
+ const attributesList = await Promise.all(promises);
204
+ this._replaceNestedArrays(attributesList);
205
+ return Object.assign({}, ...attributesList);
206
+ }
207
+ _getAttributeType(attribute) {
208
+ if (attribute.attributeValues) {
209
+ return attribute.attributeValues.valueType;
210
+ } else if (attribute.objectIds) {
211
+ return 'Oid32';
212
+ }
213
+ return '';
214
+ }
215
+ _replaceNestedArrays(attributesList) {
216
+ for (let index = 0; index < attributesList.length; index++) {
217
+ const attributeObject = attributesList[index];
218
+ for (const key in attributeObject) {
219
+ attributeObject[key] = Array.from(attributeObject[key]);
220
+ }
221
+ }
222
+ }
223
+ async _finishConversion(params) {
224
+ const filesSize = await calculateFilesSize(params);
225
+ const diff = process.hrtime(this.conversionStartTime);
226
+ const conversionTime = timeConverter(diff);
227
+ console.log("------------------------------------------------");
228
+ console.log("Finish conversion of ".concat(I3S));
229
+ console.log("Total conversion time: ".concat(conversionTime));
230
+ console.log("Vertex count: ", this.vertexCounter);
231
+ console.log("File(s) size: ", filesSize, ' bytes');
232
+ console.log("------------------------------------------------");
233
+ }
234
+ async loadWorkers() {
235
+ console.log("Loading workers source...");
236
+ const tile3dAttributesWorkerUrl = getWorkerURL(Tile3dAttributesWorker, {
237
+ ...getLoaderOptions()
238
+ });
239
+ const sourceResponse = await fetchFile(tile3dAttributesWorkerUrl);
240
+ const source = await sourceResponse.text();
241
+ this.workerSource.tile3dWorkerSource = source;
242
+ console.log("Loading workers source completed!");
243
+ }
244
+ }
245
+ //# sourceMappingURL=3d-tiles-converter.js.map