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

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 (502) hide show
  1. package/bin/converter.js +1 -1
  2. package/bin/slpk-extractor.js +4 -0
  3. package/dist/3d-tiles-attributes-worker.d.ts +28 -0
  4. package/dist/3d-tiles-attributes-worker.d.ts.map +1 -0
  5. package/dist/3d-tiles-attributes-worker.js +3 -0
  6. package/dist/3d-tiles-attributes-worker.js.map +7 -0
  7. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +90 -0
  8. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -0
  9. package/dist/3d-tiles-converter/3d-tiles-converter.js +275 -226
  10. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +71 -18
  11. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -0
  12. package/dist/3d-tiles-converter/helpers/b3dm-converter.js +256 -236
  13. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +4 -7
  14. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts.map +1 -0
  15. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +22 -9
  16. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts +9 -0
  17. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts.map +1 -0
  18. package/dist/3d-tiles-converter/helpers/texture-atlas.js +47 -28
  19. package/dist/3d-tiles-converter/json-templates/tileset.d.ts +15 -0
  20. package/dist/3d-tiles-converter/json-templates/tileset.d.ts.map +1 -0
  21. package/dist/3d-tiles-converter/json-templates/tileset.js +42 -36
  22. package/dist/bundle.d.ts +2 -0
  23. package/dist/bundle.d.ts.map +1 -0
  24. package/dist/bundle.js +2 -2
  25. package/dist/constants.d.ts +2 -0
  26. package/dist/constants.d.ts.map +1 -0
  27. package/dist/constants.js +4 -0
  28. package/dist/converter-cli.d.ts +2 -0
  29. package/dist/converter-cli.d.ts.map +1 -0
  30. package/dist/converter-cli.js +214 -0
  31. package/dist/converter.min.js +185 -190
  32. package/dist/deps-installer/deps-installer.d.ts +11 -3
  33. package/dist/deps-installer/deps-installer.d.ts.map +1 -0
  34. package/dist/deps-installer/deps-installer.js +61 -23
  35. package/dist/dist.min.js +64143 -0
  36. package/dist/es5/3d-tiles-attributes-worker.js +25 -0
  37. package/dist/es5/3d-tiles-attributes-worker.js.map +1 -0
  38. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +467 -0
  39. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
  40. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +293 -0
  41. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -0
  42. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +18 -0
  43. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -0
  44. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +33 -0
  45. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
  46. package/dist/es5/3d-tiles-converter/json-templates/tileset.js +61 -0
  47. package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +1 -0
  48. package/dist/es5/bundle.js +6 -0
  49. package/dist/es5/bundle.js.map +1 -0
  50. package/dist/es5/constants.js +9 -0
  51. package/dist/es5/constants.js.map +1 -0
  52. package/dist/es5/converter-cli.js +244 -0
  53. package/dist/es5/converter-cli.js.map +1 -0
  54. package/dist/es5/deps-installer/deps-installer.js +124 -0
  55. package/dist/es5/deps-installer/deps-installer.js.map +1 -0
  56. package/dist/es5/i3s-attributes-worker.js +25 -0
  57. package/dist/es5/i3s-attributes-worker.js.map +1 -0
  58. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +116 -0
  59. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -0
  60. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +89 -0
  61. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -0
  62. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +41 -0
  63. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +1 -0
  64. package/dist/es5/i3s-converter/helpers/feature-attributes.js +174 -0
  65. package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -0
  66. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +213 -0
  67. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -0
  68. package/dist/es5/i3s-converter/helpers/geometry-converter.js +1192 -0
  69. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -0
  70. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +113 -0
  71. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  72. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js +82 -0
  73. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js.map +1 -0
  74. package/dist/es5/i3s-converter/helpers/node-debug.js +76 -0
  75. package/dist/es5/i3s-converter/helpers/node-debug.js.map +1 -0
  76. package/dist/es5/i3s-converter/helpers/node-index-document.js +521 -0
  77. package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -0
  78. package/dist/es5/i3s-converter/helpers/node-pages.js +519 -0
  79. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -0
  80. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +111 -0
  81. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -0
  82. package/dist/es5/i3s-converter/helpers/tileset-traversal.js +82 -0
  83. package/dist/es5/i3s-converter/helpers/tileset-traversal.js.map +1 -0
  84. package/dist/es5/i3s-converter/i3s-converter.js +1541 -0
  85. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -0
  86. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js +107 -0
  87. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  88. package/dist/es5/i3s-converter/json-templates/layers.js +163 -0
  89. package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -0
  90. package/dist/es5/i3s-converter/json-templates/metadata.js +31 -0
  91. package/dist/es5/i3s-converter/json-templates/metadata.js.map +1 -0
  92. package/dist/es5/i3s-converter/json-templates/node.js +99 -0
  93. package/dist/es5/i3s-converter/json-templates/node.js.map +1 -0
  94. package/dist/es5/i3s-converter/json-templates/scene-server.js +39 -0
  95. package/dist/es5/i3s-converter/json-templates/scene-server.js.map +1 -0
  96. package/dist/es5/i3s-converter/json-templates/shared-resources.js +173 -0
  97. package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -0
  98. package/dist/es5/i3s-converter/json-templates/store.js +107 -0
  99. package/dist/es5/i3s-converter/json-templates/store.js.map +1 -0
  100. package/dist/es5/i3s-converter/types.js +18 -0
  101. package/dist/es5/i3s-converter/types.js.map +1 -0
  102. package/dist/es5/i3s-server/README.md +19 -0
  103. package/dist/es5/i3s-server/app.js +27 -0
  104. package/dist/es5/i3s-server/app.js.map +1 -0
  105. package/dist/es5/i3s-server/controllers/index-controller.js +55 -0
  106. package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -0
  107. package/dist/es5/i3s-server/controllers/slpk-controller.js +84 -0
  108. package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -0
  109. package/dist/es5/i3s-server/routes/index.js +37 -0
  110. package/dist/es5/i3s-server/routes/index.js.map +1 -0
  111. package/dist/es5/i3s-server/routes/slpk-router.js +71 -0
  112. package/dist/es5/i3s-server/routes/slpk-router.js.map +1 -0
  113. package/dist/es5/i3s-server/utils/create-scene-server.js +17 -0
  114. package/dist/es5/i3s-server/utils/create-scene-server.js.map +1 -0
  115. package/dist/es5/index.js +21 -0
  116. package/dist/es5/index.js.map +1 -0
  117. package/dist/es5/lib/utils/cli-utils.js +57 -0
  118. package/dist/es5/lib/utils/cli-utils.js.map +1 -0
  119. package/dist/es5/lib/utils/compress-util.js +346 -0
  120. package/dist/es5/lib/utils/compress-util.js.map +1 -0
  121. package/dist/es5/lib/utils/file-utils.js +208 -0
  122. package/dist/es5/lib/utils/file-utils.js.map +1 -0
  123. package/dist/es5/lib/utils/geometry-utils.js +15 -0
  124. package/dist/es5/lib/utils/geometry-utils.js.map +1 -0
  125. package/dist/es5/lib/utils/lod-conversion-utils.js +44 -0
  126. package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -0
  127. package/dist/es5/lib/utils/queue.js +47 -0
  128. package/dist/es5/lib/utils/queue.js.map +1 -0
  129. package/dist/es5/lib/utils/statistic-utills.d.ts +25 -0
  130. package/dist/es5/lib/utils/statistic-utills.js +147 -0
  131. package/dist/es5/lib/utils/statistic-utills.js.map +1 -0
  132. package/dist/es5/lib/utils/write-queue.js +214 -0
  133. package/dist/es5/lib/utils/write-queue.js.map +1 -0
  134. package/dist/es5/pgm-loader.js +41 -0
  135. package/dist/es5/pgm-loader.js.map +1 -0
  136. package/dist/es5/slpk-extractor/helpers/file-handle-provider.js +181 -0
  137. package/dist/es5/slpk-extractor/helpers/file-handle-provider.js.map +1 -0
  138. package/dist/es5/slpk-extractor/slpk-extractor.js +172 -0
  139. package/dist/es5/slpk-extractor/slpk-extractor.js.map +1 -0
  140. package/dist/es5/slpk-extractor-cli.js +117 -0
  141. package/dist/es5/slpk-extractor-cli.js.map +1 -0
  142. package/dist/es5/workers/3d-tiles-attributes-worker.js +28 -0
  143. package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -0
  144. package/dist/es5/workers/i3s-attributes-worker.js +30 -0
  145. package/dist/es5/workers/i3s-attributes-worker.js.map +1 -0
  146. package/dist/esm/3d-tiles-attributes-worker.js +16 -0
  147. package/dist/esm/3d-tiles-attributes-worker.js.map +1 -0
  148. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +245 -0
  149. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
  150. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +218 -0
  151. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -0
  152. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +10 -0
  153. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -0
  154. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js +27 -0
  155. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
  156. package/dist/esm/3d-tiles-converter/json-templates/tileset.js +37 -0
  157. package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +1 -0
  158. package/dist/esm/bundle.js +4 -0
  159. package/dist/esm/bundle.js.map +1 -0
  160. package/dist/esm/constants.js +2 -0
  161. package/dist/esm/constants.js.map +1 -0
  162. package/dist/esm/converter-cli.js +187 -0
  163. package/dist/esm/converter-cli.js.map +1 -0
  164. package/dist/esm/deps-installer/deps-installer.js +45 -0
  165. package/dist/esm/deps-installer/deps-installer.js.map +1 -0
  166. package/dist/esm/i3s-attributes-worker.js +16 -0
  167. package/dist/esm/i3s-attributes-worker.js.map +1 -0
  168. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +105 -0
  169. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -0
  170. package/dist/esm/i3s-converter/helpers/coordinate-converter.js +79 -0
  171. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -0
  172. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js +16 -0
  173. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +1 -0
  174. package/dist/esm/i3s-converter/helpers/feature-attributes.js +147 -0
  175. package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -0
  176. package/{src → dist/esm}/i3s-converter/helpers/geometry-attributes.js +80 -106
  177. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -0
  178. package/dist/esm/i3s-converter/helpers/geometry-converter.js +906 -0
  179. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -0
  180. package/dist/esm/i3s-converter/helpers/gltf-attributes.js +110 -0
  181. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  182. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js +35 -0
  183. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js.map +1 -0
  184. package/{src → dist/esm}/i3s-converter/helpers/node-debug.js +20 -41
  185. package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -0
  186. package/dist/esm/i3s-converter/helpers/node-index-document.js +201 -0
  187. package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -0
  188. package/dist/esm/i3s-converter/helpers/node-pages.js +206 -0
  189. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -0
  190. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js +48 -0
  191. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -0
  192. package/dist/esm/i3s-converter/helpers/tileset-traversal.js +14 -0
  193. package/dist/esm/i3s-converter/helpers/tileset-traversal.js.map +1 -0
  194. package/dist/esm/i3s-converter/i3s-converter.js +778 -0
  195. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -0
  196. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js +89 -0
  197. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  198. package/dist/esm/i3s-converter/json-templates/layers.js +133 -0
  199. package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -0
  200. package/dist/esm/i3s-converter/json-templates/metadata.js +22 -0
  201. package/dist/esm/i3s-converter/json-templates/metadata.js.map +1 -0
  202. package/dist/esm/i3s-converter/json-templates/node.js +80 -0
  203. package/dist/esm/i3s-converter/json-templates/node.js.map +1 -0
  204. package/dist/esm/i3s-converter/json-templates/scene-server.js +28 -0
  205. package/dist/esm/i3s-converter/json-templates/scene-server.js.map +1 -0
  206. package/dist/esm/i3s-converter/json-templates/shared-resources.js +123 -0
  207. package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -0
  208. package/dist/esm/i3s-converter/json-templates/store.js +98 -0
  209. package/dist/esm/i3s-converter/json-templates/store.js.map +1 -0
  210. package/dist/esm/i3s-converter/types.js +11 -0
  211. package/dist/esm/i3s-converter/types.js.map +1 -0
  212. package/dist/esm/i3s-server/README.md +19 -0
  213. package/dist/esm/i3s-server/app.js +26 -0
  214. package/dist/esm/i3s-server/app.js.map +1 -0
  215. package/dist/esm/i3s-server/bin/www +102 -0
  216. package/dist/esm/i3s-server/certs/cert.pem +19 -0
  217. package/dist/esm/i3s-server/certs/key.pem +27 -0
  218. package/dist/esm/i3s-server/controllers/index-controller.js +24 -0
  219. package/dist/esm/i3s-server/controllers/index-controller.js.map +1 -0
  220. package/dist/esm/i3s-server/controllers/slpk-controller.js +36 -0
  221. package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -0
  222. package/dist/esm/i3s-server/routes/index.js +16 -0
  223. package/dist/esm/i3s-server/routes/index.js.map +1 -0
  224. package/dist/esm/i3s-server/routes/slpk-router.js +33 -0
  225. package/dist/esm/i3s-server/routes/slpk-router.js.map +1 -0
  226. package/dist/esm/i3s-server/utils/create-scene-server.js +16 -0
  227. package/dist/esm/i3s-server/utils/create-scene-server.js.map +1 -0
  228. package/dist/esm/index.js +3 -0
  229. package/dist/esm/index.js.map +1 -0
  230. package/dist/esm/lib/utils/cli-utils.js +47 -0
  231. package/dist/esm/lib/utils/cli-utils.js.map +1 -0
  232. package/dist/esm/lib/utils/compress-util.js +168 -0
  233. package/dist/esm/lib/utils/compress-util.js.map +1 -0
  234. package/dist/esm/lib/utils/file-utils.js +87 -0
  235. package/dist/esm/lib/utils/file-utils.js.map +1 -0
  236. package/dist/esm/lib/utils/geometry-utils.js +8 -0
  237. package/dist/esm/lib/utils/geometry-utils.js.map +1 -0
  238. package/dist/esm/lib/utils/lod-conversion-utils.js +37 -0
  239. package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -0
  240. package/dist/esm/lib/utils/queue.js +15 -0
  241. package/dist/esm/lib/utils/queue.js.map +1 -0
  242. package/dist/esm/lib/utils/statistic-utills.d.ts +25 -0
  243. package/dist/esm/lib/utils/statistic-utills.js +62 -0
  244. package/dist/esm/lib/utils/statistic-utills.js.map +1 -0
  245. package/dist/esm/lib/utils/write-queue.js +85 -0
  246. package/dist/esm/lib/utils/write-queue.js.map +1 -0
  247. package/dist/esm/pgm-loader.js +15 -0
  248. package/dist/esm/pgm-loader.js.map +1 -0
  249. package/dist/esm/slpk-extractor/helpers/file-handle-provider.js +43 -0
  250. package/dist/esm/slpk-extractor/helpers/file-handle-provider.js.map +1 -0
  251. package/dist/esm/slpk-extractor/slpk-extractor.js +63 -0
  252. package/dist/esm/slpk-extractor/slpk-extractor.js.map +1 -0
  253. package/dist/esm/slpk-extractor-cli.js +74 -0
  254. package/dist/esm/slpk-extractor-cli.js.map +1 -0
  255. package/dist/esm/workers/3d-tiles-attributes-worker.js +8 -0
  256. package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -0
  257. package/dist/esm/workers/i3s-attributes-worker.js +7 -0
  258. package/dist/esm/workers/i3s-attributes-worker.js.map +1 -0
  259. package/dist/i3s-attributes-worker.d.ts +45 -0
  260. package/dist/i3s-attributes-worker.d.ts.map +1 -0
  261. package/dist/i3s-attributes-worker.js +9 -0
  262. package/dist/i3s-attributes-worker.js.map +7 -0
  263. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +13 -0
  264. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -0
  265. package/dist/i3s-converter/helpers/batch-ids-extensions.js +138 -0
  266. package/dist/i3s-converter/helpers/coordinate-converter.d.ts +39 -0
  267. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -0
  268. package/dist/i3s-converter/helpers/coordinate-converter.js +118 -42
  269. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts +9 -0
  270. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts.map +1 -0
  271. package/dist/i3s-converter/helpers/create-scene-server-path.js +27 -15
  272. package/dist/i3s-converter/helpers/feature-attributes.d.ts +56 -0
  273. package/dist/i3s-converter/helpers/feature-attributes.d.ts.map +1 -0
  274. package/dist/i3s-converter/helpers/feature-attributes.js +216 -0
  275. package/dist/i3s-converter/helpers/geometry-attributes.d.ts +8 -0
  276. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -0
  277. package/dist/i3s-converter/helpers/geometry-attributes.js +188 -185
  278. package/dist/i3s-converter/helpers/geometry-converter.d.ts +41 -35
  279. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -0
  280. package/dist/i3s-converter/helpers/geometry-converter.js +1179 -650
  281. package/dist/i3s-converter/helpers/gltf-attributes.d.ts +28 -0
  282. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -0
  283. package/dist/i3s-converter/helpers/gltf-attributes.js +129 -0
  284. package/dist/i3s-converter/helpers/load-3d-tiles.d.ts +18 -0
  285. package/dist/i3s-converter/helpers/load-3d-tiles.d.ts.map +1 -0
  286. package/dist/i3s-converter/helpers/load-3d-tiles.js +53 -0
  287. package/dist/i3s-converter/helpers/node-debug.d.ts +8 -0
  288. package/dist/i3s-converter/helpers/node-debug.d.ts.map +1 -0
  289. package/dist/i3s-converter/helpers/node-debug.js +106 -74
  290. package/dist/i3s-converter/helpers/node-index-document.d.ts +103 -0
  291. package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -0
  292. package/dist/i3s-converter/helpers/node-index-document.js +268 -0
  293. package/dist/i3s-converter/helpers/node-pages.d.ts +125 -113
  294. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -0
  295. package/dist/i3s-converter/helpers/node-pages.js +313 -133
  296. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts +22 -0
  297. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -0
  298. package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +75 -0
  299. package/dist/i3s-converter/helpers/tileset-traversal.d.ts +25 -0
  300. package/dist/i3s-converter/helpers/tileset-traversal.d.ts.map +1 -0
  301. package/dist/i3s-converter/helpers/tileset-traversal.js +29 -0
  302. package/dist/i3s-converter/i3s-converter.d.ts +267 -0
  303. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -0
  304. package/dist/i3s-converter/i3s-converter.js +891 -867
  305. package/dist/i3s-converter/json-templates/geometry-definitions.d.ts +7 -0
  306. package/dist/i3s-converter/json-templates/geometry-definitions.d.ts.map +1 -0
  307. package/dist/i3s-converter/json-templates/geometry-definitions.js +87 -0
  308. package/dist/i3s-converter/json-templates/layers.d.ts +70 -0
  309. package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -0
  310. package/dist/i3s-converter/json-templates/layers.js +138 -190
  311. package/dist/i3s-converter/json-templates/metadata.d.ts +22 -0
  312. package/dist/i3s-converter/json-templates/metadata.d.ts.map +1 -0
  313. package/dist/i3s-converter/json-templates/metadata.js +25 -22
  314. package/dist/i3s-converter/json-templates/node.d.ts +61 -0
  315. package/dist/i3s-converter/json-templates/node.d.ts.map +1 -0
  316. package/dist/i3s-converter/json-templates/node.js +88 -79
  317. package/dist/i3s-converter/json-templates/scene-server.d.ts +28 -0
  318. package/dist/i3s-converter/json-templates/scene-server.d.ts.map +1 -0
  319. package/dist/i3s-converter/json-templates/scene-server.js +31 -28
  320. package/dist/i3s-converter/json-templates/shared-resources.d.ts +14 -0
  321. package/dist/i3s-converter/json-templates/shared-resources.d.ts.map +1 -0
  322. package/dist/i3s-converter/json-templates/shared-resources.js +124 -125
  323. package/dist/i3s-converter/json-templates/store.d.ts +95 -0
  324. package/dist/i3s-converter/json-templates/store.d.ts.map +1 -0
  325. package/dist/i3s-converter/json-templates/store.js +100 -95
  326. package/dist/i3s-converter/types.d.ts +163 -0
  327. package/dist/i3s-converter/types.d.ts.map +1 -0
  328. package/dist/i3s-converter/types.js +17 -0
  329. package/dist/i3s-server/app.d.ts +3 -0
  330. package/dist/i3s-server/app.d.ts.map +1 -0
  331. package/dist/i3s-server/app.js +11 -10
  332. package/dist/i3s-server/controllers/index-controller.d.ts +2 -0
  333. package/dist/i3s-server/controllers/index-controller.d.ts.map +1 -0
  334. package/dist/i3s-server/controllers/index-controller.js +16 -24
  335. package/dist/i3s-server/controllers/slpk-controller.d.ts +3 -0
  336. package/dist/i3s-server/controllers/slpk-controller.d.ts.map +1 -0
  337. package/dist/i3s-server/controllers/slpk-controller.js +32 -0
  338. package/dist/i3s-server/routes/index.d.ts +3 -0
  339. package/dist/i3s-server/routes/index.d.ts.map +1 -0
  340. package/dist/i3s-server/routes/index.js +11 -15
  341. package/dist/i3s-server/routes/slpk-router.d.ts +3 -0
  342. package/dist/i3s-server/routes/slpk-router.d.ts.map +1 -0
  343. package/dist/i3s-server/routes/slpk-router.js +33 -0
  344. package/dist/i3s-server/utils/create-scene-server.d.ts +11 -0
  345. package/dist/i3s-server/utils/create-scene-server.d.ts.map +1 -0
  346. package/dist/i3s-server/utils/create-scene-server.js +14 -0
  347. package/dist/index.d.ts +3 -0
  348. package/dist/index.d.ts.map +1 -0
  349. package/dist/index.js +10 -5
  350. package/dist/lib/utils/cli-utils.d.ts +34 -0
  351. package/dist/lib/utils/cli-utils.d.ts.map +1 -0
  352. package/dist/lib/utils/cli-utils.js +82 -0
  353. package/dist/lib/utils/compress-util.d.ts +45 -0
  354. package/dist/lib/utils/compress-util.d.ts.map +1 -0
  355. package/dist/lib/utils/compress-util.js +238 -160
  356. package/dist/lib/utils/file-utils.d.ts +22 -14
  357. package/dist/lib/utils/file-utils.d.ts.map +1 -0
  358. package/dist/lib/utils/file-utils.js +134 -36
  359. package/dist/lib/utils/geometry-utils.d.ts +9 -0
  360. package/dist/lib/utils/geometry-utils.d.ts.map +1 -0
  361. package/dist/lib/utils/geometry-utils.js +18 -0
  362. package/dist/lib/utils/lod-conversion-utils.d.ts +23 -13
  363. package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -0
  364. package/dist/lib/utils/lod-conversion-utils.js +72 -39
  365. package/dist/lib/utils/queue.d.ts +7 -0
  366. package/dist/lib/utils/queue.d.ts.map +1 -0
  367. package/dist/lib/utils/queue.js +18 -0
  368. package/dist/lib/utils/statistic-utills.d.ts +3 -25
  369. package/dist/lib/utils/statistic-utills.d.ts.map +1 -0
  370. package/dist/lib/utils/statistic-utills.js +58 -67
  371. package/dist/lib/utils/write-queue.d.ts +39 -0
  372. package/dist/lib/utils/write-queue.d.ts.map +1 -0
  373. package/dist/lib/utils/write-queue.js +80 -0
  374. package/dist/pgm-loader.d.ts +6 -0
  375. package/dist/pgm-loader.d.ts.map +1 -0
  376. package/dist/pgm-loader.js +23 -14
  377. package/dist/slpk-extractor/helpers/file-handle-provider.d.ts +48 -0
  378. package/dist/slpk-extractor/helpers/file-handle-provider.d.ts.map +1 -0
  379. package/dist/slpk-extractor/helpers/file-handle-provider.js +71 -0
  380. package/dist/slpk-extractor/slpk-extractor.d.ts +23 -0
  381. package/dist/slpk-extractor/slpk-extractor.d.ts.map +1 -0
  382. package/dist/slpk-extractor/slpk-extractor.js +78 -0
  383. package/dist/slpk-extractor-cli.d.ts +17 -0
  384. package/dist/slpk-extractor-cli.d.ts.map +1 -0
  385. package/dist/slpk-extractor-cli.js +102 -0
  386. package/dist/slpk-extractor.min.js +189 -0
  387. package/dist/workers/3d-tiles-attributes-worker.d.ts +2 -0
  388. package/dist/workers/3d-tiles-attributes-worker.d.ts.map +1 -0
  389. package/dist/workers/3d-tiles-attributes-worker.js +9 -0
  390. package/dist/workers/i3s-attributes-worker.d.ts +2 -0
  391. package/dist/workers/i3s-attributes-worker.d.ts.map +1 -0
  392. package/dist/workers/i3s-attributes-worker.js +5 -0
  393. package/package.json +36 -24
  394. package/src/3d-tiles-attributes-worker.ts +43 -0
  395. package/src/3d-tiles-converter/3d-tiles-converter.ts +131 -63
  396. package/src/3d-tiles-converter/helpers/{b3dm-converter.js → b3dm-converter.ts} +72 -53
  397. package/src/3d-tiles-converter/helpers/{i3s-obb-to-3d-tiles-obb.js → i3s-obb-to-3d-tiles-obb.ts} +16 -1
  398. package/src/3d-tiles-converter/helpers/texture-atlas.ts +4 -4
  399. package/src/3d-tiles-converter/json-templates/{tileset.js → tileset.ts} +9 -9
  400. package/src/constants.ts +2 -0
  401. package/src/converter-cli.ts +305 -0
  402. package/src/deps-installer/deps-installer.ts +72 -0
  403. package/src/i3s-attributes-worker.ts +59 -0
  404. package/src/i3s-converter/helpers/batch-ids-extensions.ts +202 -0
  405. package/src/i3s-converter/helpers/coordinate-converter.ts +94 -34
  406. package/src/i3s-converter/helpers/create-scene-server-path.ts +29 -0
  407. package/src/i3s-converter/helpers/feature-attributes.ts +247 -0
  408. package/src/i3s-converter/helpers/geometry-attributes.ts +267 -0
  409. package/src/i3s-converter/helpers/geometry-converter.ts +1667 -0
  410. package/src/i3s-converter/helpers/gltf-attributes.ts +162 -0
  411. package/src/i3s-converter/helpers/load-3d-tiles.ts +68 -0
  412. package/src/i3s-converter/helpers/node-debug.ts +146 -0
  413. package/src/i3s-converter/helpers/node-index-document.ts +335 -0
  414. package/src/i3s-converter/helpers/node-pages.ts +344 -0
  415. package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +79 -0
  416. package/src/i3s-converter/helpers/tileset-traversal.ts +51 -0
  417. package/src/i3s-converter/i3s-converter.ts +650 -669
  418. package/src/i3s-converter/json-templates/geometry-definitions.ts +83 -0
  419. package/src/i3s-converter/json-templates/layers.ts +137 -0
  420. package/src/i3s-converter/json-templates/{metadata.js → metadata.ts} +2 -2
  421. package/src/i3s-converter/json-templates/{node.js → node.ts} +12 -12
  422. package/src/i3s-converter/json-templates/{scene-server.js → scene-server.ts} +2 -2
  423. package/src/i3s-converter/json-templates/{shared-resources.js → shared-resources.ts} +17 -17
  424. package/src/i3s-converter/types.ts +185 -0
  425. package/src/i3s-server/README.md +19 -0
  426. package/src/i3s-server/app.js +8 -1
  427. package/src/i3s-server/controllers/slpk-controller.js +38 -0
  428. package/src/i3s-server/routes/slpk-router.js +33 -0
  429. package/src/i3s-server/utils/create-scene-server.js +15 -0
  430. package/src/index.ts +0 -4
  431. package/src/lib/utils/cli-utils.ts +78 -0
  432. package/src/lib/utils/{compress-util.js → compress-util.ts} +105 -18
  433. package/src/lib/utils/file-utils.ts +140 -0
  434. package/src/lib/utils/geometry-utils.ts +14 -0
  435. package/src/lib/utils/{lod-conversion-utils.js → lod-conversion-utils.ts} +31 -5
  436. package/src/lib/utils/queue.ts +17 -0
  437. package/src/lib/utils/write-queue.ts +110 -0
  438. package/src/pgm-loader.ts +3 -3
  439. package/src/slpk-extractor/helpers/file-handle-provider.ts +91 -0
  440. package/src/slpk-extractor/slpk-extractor.ts +102 -0
  441. package/src/slpk-extractor-cli.ts +128 -0
  442. package/src/workers/3d-tiles-attributes-worker.ts +6 -0
  443. package/src/workers/i3s-attributes-worker.ts +7 -0
  444. package/dist/3d-tiles-converter/3d-tiles-converter.js.map +0 -1
  445. package/dist/3d-tiles-converter/helpers/b3dm-converter.js.map +0 -1
  446. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +0 -1
  447. package/dist/3d-tiles-converter/helpers/texture-atlas.js.map +0 -1
  448. package/dist/3d-tiles-converter/json-templates/tileset.js.map +0 -1
  449. package/dist/bundle.js.map +0 -1
  450. package/dist/deps-installer/deps-installer.js.map +0 -1
  451. package/dist/i3s-converter/helpers/coordinate-converter.js.map +0 -1
  452. package/dist/i3s-converter/helpers/create-scene-server-path.js.map +0 -1
  453. package/dist/i3s-converter/helpers/geometry-attributes.js.map +0 -1
  454. package/dist/i3s-converter/helpers/geometry-converter.js.map +0 -1
  455. package/dist/i3s-converter/helpers/node-debug.js.map +0 -1
  456. package/dist/i3s-converter/helpers/node-pages.js.map +0 -1
  457. package/dist/i3s-converter/i3s-converter.js.map +0 -1
  458. package/dist/i3s-converter/json-templates/layers.js.map +0 -1
  459. package/dist/i3s-converter/json-templates/metadata.js.map +0 -1
  460. package/dist/i3s-converter/json-templates/node.js.map +0 -1
  461. package/dist/i3s-converter/json-templates/scene-server.js.map +0 -1
  462. package/dist/i3s-converter/json-templates/shared-resources.js.map +0 -1
  463. package/dist/i3s-converter/json-templates/store.js.map +0 -1
  464. package/dist/i3s-server/app.js.map +0 -1
  465. package/dist/i3s-server/controllers/index-controller.js.map +0 -1
  466. package/dist/i3s-server/routes/index.js.map +0 -1
  467. package/dist/index.js.map +0 -1
  468. package/dist/lib/geoid-height-model.d.ts +0 -41
  469. package/dist/lib/geoid-height-model.js +0 -140
  470. package/dist/lib/geoid-height-model.js.map +0 -1
  471. package/dist/lib/pgm-parser.d.ts +0 -14
  472. package/dist/lib/pgm-parser.js +0 -183
  473. package/dist/lib/pgm-parser.js.map +0 -1
  474. package/dist/lib/utils/compress-util.js.map +0 -1
  475. package/dist/lib/utils/compress-utils.d.ts +0 -53
  476. package/dist/lib/utils/file-utils.js.map +0 -1
  477. package/dist/lib/utils/lod-conversion-utils.js.map +0 -1
  478. package/dist/lib/utils/statistic-utills.js.map +0 -1
  479. package/dist/pgm-loader.js.map +0 -1
  480. package/src/3d-tiles-converter/helpers/b3dm-converter.d.ts +0 -23
  481. package/src/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +0 -16
  482. package/src/deps-installer/deps-installer.d.ts +0 -10
  483. package/src/deps-installer/deps-installer.js +0 -22
  484. package/src/i3s-converter/helpers/create-scene-server-path.js +0 -25
  485. package/src/i3s-converter/helpers/geometry-converter.d.ts +0 -40
  486. package/src/i3s-converter/helpers/geometry-converter.js +0 -915
  487. package/src/i3s-converter/helpers/node-pages.d.ts +0 -144
  488. package/src/i3s-converter/helpers/node-pages.js +0 -208
  489. package/src/i3s-converter/json-templates/layers.js +0 -199
  490. package/src/lib/geoid-height-model.d.ts +0 -41
  491. package/src/lib/geoid-height-model.js +0 -239
  492. package/src/lib/pgm-parser.d.ts +0 -14
  493. package/src/lib/pgm-parser.js +0 -179
  494. package/src/lib/utils/compress-utils.d.ts +0 -53
  495. package/src/lib/utils/file-utils.d.ts +0 -43
  496. package/src/lib/utils/file-utils.js +0 -38
  497. package/src/lib/utils/lod-conversion-utils.d.ts +0 -32
  498. /package/dist/{i3s-server → es5/i3s-server}/bin/www +0 -0
  499. /package/dist/{i3s-server → es5/i3s-server}/certs/cert.pem +0 -0
  500. /package/dist/{i3s-server → es5/i3s-server}/certs/key.pem +0 -0
  501. /package/src/i3s-converter/json-templates/{store.js → store.ts} +0 -0
  502. /package/src/lib/utils/{statistic-utills.js → statistic-utills.ts} +0 -0
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports._typecheckI3SAttributesWorker = exports.Tile3dAttributesWorker = void 0;
7
+ exports.transform3DTilesAttributesOnWorker = transform3DTilesAttributesOnWorker;
8
+ var _workerUtils = require("@loaders.gl/worker-utils");
9
+ var VERSION = typeof "4.0.0-alpha.11" !== 'undefined' ? "4.0.0-alpha.11" : 'latest';
10
+ var Tile3dAttributesWorker = {
11
+ id: '3d-tiles-attributes',
12
+ name: '3DTiles Attributes Worker',
13
+ module: 'tile-converter',
14
+ version: VERSION,
15
+ options: {
16
+ featureAttributes: null
17
+ }
18
+ };
19
+ exports.Tile3dAttributesWorker = Tile3dAttributesWorker;
20
+ function transform3DTilesAttributesOnWorker(i3sAttributesData, options) {
21
+ return (0, _workerUtils.processOnWorker)(Tile3dAttributesWorker, i3sAttributesData, options);
22
+ }
23
+ var _typecheckI3SAttributesWorker = Tile3dAttributesWorker;
24
+ exports._typecheckI3SAttributesWorker = _typecheckI3SAttributesWorker;
25
+ //# sourceMappingURL=3d-tiles-attributes-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3d-tiles-attributes-worker.js","names":["_workerUtils","require","VERSION","Tile3dAttributesWorker","id","name","module","version","options","featureAttributes","exports","transform3DTilesAttributesOnWorker","i3sAttributesData","processOnWorker","_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,IAAAA,YAAA,GAAAC,OAAA;AAIA,IAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAepE,IAAMC,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;AAACC,OAAA,CAAAP,sBAAA,GAAAA,sBAAA;AAKK,SAASQ,kCAAkCA,CAChDC,iBAAoC,EACpCJ,OAAsC,EAChB;EACtB,OAAO,IAAAK,4BAAe,EAACV,sBAAsB,EAAES,iBAAiB,EAAEJ,OAAO,CAAC;AAC5E;AAEO,IAAMM,6BAA2C,GAAGX,sBAAsB;AAACO,OAAA,CAAAI,6BAAA,GAAAA,6BAAA"}
@@ -0,0 +1,467 @@
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 _tiles = require("@loaders.gl/tiles");
20
+ var _pgmLoader = require("../pgm-loader");
21
+ var _i3sObbTo3dTilesObb = require("./helpers/i3s-obb-to-3d-tiles-obb");
22
+ var _lodConversionUtils = require("../lib/utils/lod-conversion-utils");
23
+ var _fileUtils = require("../lib/utils/file-utils");
24
+ var _statisticUtills = require("../lib/utils/statistic-utills");
25
+ var _tileset = require("./json-templates/tileset");
26
+ var _coordinateConverter = require("../i3s-converter/helpers/coordinate-converter");
27
+ var _dTilesAttributesWorker = require("../3d-tiles-attributes-worker");
28
+ var _workerUtils = require("@loaders.gl/worker-utils");
29
+ var _constants = require("../constants");
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
+ this.options = {};
48
+ this.tilesetPath = '';
49
+ this.vertexCounter = 0;
50
+ this.conversionStartTime = [0, 0];
51
+ this.geoidHeightModel = null;
52
+ this.sourceTileset = null;
53
+ this.attributeStorageInfo = null;
54
+ this.workerSource = {};
55
+ }
56
+ (0, _createClass2.default)(Tiles3DConverter, [{
57
+ key: "convert",
58
+ value: function () {
59
+ var _convert = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
60
+ var inputUrl, outputPath, tilesetName, maxDepth, egmFilePath, sourceTilesetJson, rootNode, rootTile, tileset, workerFarm;
61
+ return _regenerator.default.wrap(function _callee$(_context) {
62
+ while (1) switch (_context.prev = _context.next) {
63
+ case 0:
64
+ if (!_core.isBrowser) {
65
+ _context.next = 3;
66
+ break;
67
+ }
68
+ console.log(_constants.BROWSER_ERROR_MESSAGE);
69
+ return _context.abrupt("return", _constants.BROWSER_ERROR_MESSAGE);
70
+ case 3:
71
+ inputUrl = options.inputUrl, outputPath = options.outputPath, tilesetName = options.tilesetName, maxDepth = options.maxDepth, egmFilePath = options.egmFilePath;
72
+ this.conversionStartTime = _process.default.hrtime();
73
+ this.options = {
74
+ maxDepth: maxDepth
75
+ };
76
+ console.log('Loading egm file...');
77
+ _context.next = 9;
78
+ return (0, _core.load)(egmFilePath, _pgmLoader.PGMLoader);
79
+ case 9:
80
+ this.geoidHeightModel = _context.sent;
81
+ console.log('Loading egm file completed!');
82
+ _context.next = 13;
83
+ return this.loadWorkers();
84
+ case 13:
85
+ _context.next = 15;
86
+ return (0, _core.load)(inputUrl, _i3s.I3SLoader, {});
87
+ case 15:
88
+ sourceTilesetJson = _context.sent;
89
+ this.sourceTileset = new _tiles.Tileset3D(sourceTilesetJson, {
90
+ loadOptions: {
91
+ _nodeWorkers: true,
92
+ reuseWorkers: true,
93
+ i3s: {
94
+ coordinateSystem: _i3s.COORDINATE_SYSTEM.LNGLAT_OFFSETS,
95
+ decodeTextures: false
96
+ }
97
+ }
98
+ });
99
+ _context.next = 19;
100
+ return this.sourceTileset.tilesetInitializationPromise;
101
+ case 19:
102
+ rootNode = this.sourceTileset.root;
103
+ if (!rootNode.header.obb) {
104
+ rootNode.header.obb = (0, _coordinateConverter.createObbFromMbs)(rootNode.header.mbs);
105
+ }
106
+ this.tilesetPath = (0, _path.join)("".concat(outputPath), "".concat(tilesetName));
107
+ this.attributeStorageInfo = sourceTilesetJson.attributeStorageInfo;
108
+ _context.prev = 23;
109
+ _context.next = 26;
110
+ return (0, _fileUtils.removeDir)(this.tilesetPath);
111
+ case 26:
112
+ _context.next = 30;
113
+ break;
114
+ case 28:
115
+ _context.prev = 28;
116
+ _context.t0 = _context["catch"](23);
117
+ case 30:
118
+ rootTile = {
119
+ boundingVolume: {
120
+ box: (0, _i3sObbTo3dTilesObb.i3sObbTo3dTilesObb)(rootNode.header.obb, this.geoidHeightModel)
121
+ },
122
+ geometricError: (0, _lodConversionUtils.convertScreenThresholdToGeometricError)(rootNode),
123
+ children: []
124
+ };
125
+ _context.next = 33;
126
+ return this._addChildren(rootNode, rootTile, 1);
127
+ case 33:
128
+ tileset = (0, _jsonMapTransform.default)({
129
+ root: rootTile
130
+ }, (0, _tileset.TILESET)());
131
+ _context.next = 36;
132
+ return (0, _fileUtils.writeFile)(this.tilesetPath, JSON.stringify(tileset), 'tileset.json');
133
+ case 36:
134
+ this._finishConversion({
135
+ slpk: false,
136
+ outputPath: outputPath,
137
+ tilesetName: tilesetName
138
+ });
139
+ workerFarm = _workerUtils.WorkerFarm.getWorkerFarm({});
140
+ workerFarm.destroy();
141
+ case 39:
142
+ case "end":
143
+ return _context.stop();
144
+ }
145
+ }, _callee, this, [[23, 28]]);
146
+ }));
147
+ function convert(_x) {
148
+ return _convert.apply(this, arguments);
149
+ }
150
+ return convert;
151
+ }()
152
+ }, {
153
+ key: "convertChildNode",
154
+ value: function () {
155
+ var _convertChildNode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(parentSourceNode, parentNode, level, childNodeInfo) {
156
+ var sourceChild, _sourceChild$header, featureAttributes, boundingVolume, child, i3sAttributesData, b3dm;
157
+ return _regenerator.default.wrap(function _callee2$(_context2) {
158
+ while (1) switch (_context2.prev = _context2.next) {
159
+ case 0:
160
+ _context2.next = 2;
161
+ return this._loadChildNode(parentSourceNode, childNodeInfo);
162
+ case 2:
163
+ sourceChild = _context2.sent;
164
+ parentSourceNode.children.push(sourceChild);
165
+ if (!sourceChild.contentUrl) {
166
+ _context2.next = 29;
167
+ break;
168
+ }
169
+ _context2.next = 7;
170
+ return this.sourceTileset._loadTile(sourceChild);
171
+ case 7:
172
+ this.vertexCounter += sourceChild.content.vertexCount;
173
+ featureAttributes = null;
174
+ if (!this.attributeStorageInfo) {
175
+ _context2.next = 13;
176
+ break;
177
+ }
178
+ _context2.next = 12;
179
+ return this._loadChildAttributes(sourceChild, this.attributeStorageInfo);
180
+ case 12:
181
+ featureAttributes = _context2.sent;
182
+ case 13:
183
+ if (!sourceChild.header.obb) {
184
+ sourceChild.header.obb = (0, _coordinateConverter.createObbFromMbs)(sourceChild.header.mbs);
185
+ }
186
+ boundingVolume = {
187
+ box: (0, _i3sObbTo3dTilesObb.i3sObbTo3dTilesObb)(sourceChild.header.obb, this.geoidHeightModel)
188
+ };
189
+ child = {
190
+ boundingVolume: boundingVolume,
191
+ geometricError: (0, _lodConversionUtils.convertScreenThresholdToGeometricError)(sourceChild),
192
+ children: []
193
+ };
194
+ i3sAttributesData = {
195
+ tileContent: sourceChild.content,
196
+ textureFormat: sourceChild === null || sourceChild === void 0 ? void 0 : (_sourceChild$header = sourceChild.header) === null || _sourceChild$header === void 0 ? void 0 : _sourceChild$header.textureFormat
197
+ };
198
+ _context2.next = 19;
199
+ return (0, _dTilesAttributesWorker.transform3DTilesAttributesOnWorker)(i3sAttributesData, {
200
+ source: this.workerSource.tile3dWorkerSource,
201
+ featureAttributes: featureAttributes
202
+ });
203
+ case 19:
204
+ b3dm = _context2.sent;
205
+ child.content = {
206
+ uri: "".concat(sourceChild.id, ".b3dm"),
207
+ boundingVolume: boundingVolume
208
+ };
209
+ _context2.next = 23;
210
+ return (0, _fileUtils.writeFile)(this.tilesetPath, new Uint8Array(b3dm), "".concat(sourceChild.id, ".b3dm"));
211
+ case 23:
212
+ parentNode.children.push(child);
213
+ sourceChild.unloadContent();
214
+ _context2.next = 27;
215
+ return this._addChildren(sourceChild, child, level + 1);
216
+ case 27:
217
+ _context2.next = 31;
218
+ break;
219
+ case 29:
220
+ _context2.next = 31;
221
+ return this._addChildren(sourceChild, parentNode, level + 1);
222
+ case 31:
223
+ case "end":
224
+ return _context2.stop();
225
+ }
226
+ }, _callee2, this);
227
+ }));
228
+ function convertChildNode(_x2, _x3, _x4, _x5) {
229
+ return _convertChildNode.apply(this, arguments);
230
+ }
231
+ return convertChildNode;
232
+ }()
233
+ }, {
234
+ key: "_addChildren",
235
+ value: function () {
236
+ var _addChildren2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(parentSourceNode, parentNode, level) {
237
+ var promises, _iterator, _step, childNodeInfo;
238
+ return _regenerator.default.wrap(function _callee3$(_context3) {
239
+ while (1) switch (_context3.prev = _context3.next) {
240
+ case 0:
241
+ if (!(this.options.maxDepth && level > this.options.maxDepth)) {
242
+ _context3.next = 2;
243
+ break;
244
+ }
245
+ return _context3.abrupt("return");
246
+ case 2:
247
+ promises = [];
248
+ _iterator = _createForOfIteratorHelper(parentSourceNode.header.children || []);
249
+ try {
250
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
251
+ childNodeInfo = _step.value;
252
+ promises.push(this.convertChildNode(parentSourceNode, parentNode, level, childNodeInfo));
253
+ }
254
+ } catch (err) {
255
+ _iterator.e(err);
256
+ } finally {
257
+ _iterator.f();
258
+ }
259
+ _context3.next = 7;
260
+ return Promise.all(promises);
261
+ case 7:
262
+ case "end":
263
+ return _context3.stop();
264
+ }
265
+ }, _callee3, this);
266
+ }));
267
+ function _addChildren(_x6, _x7, _x8) {
268
+ return _addChildren2.apply(this, arguments);
269
+ }
270
+ return _addChildren;
271
+ }()
272
+ }, {
273
+ key: "_loadChildNode",
274
+ value: function () {
275
+ var _loadChildNode2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(parentNode, childNodeInfo) {
276
+ var header, _ref, loader, nodeUrl, options;
277
+ return _regenerator.default.wrap(function _callee4$(_context4) {
278
+ while (1) switch (_context4.prev = _context4.next) {
279
+ case 0:
280
+ if (!this.sourceTileset.tileset.nodePages) {
281
+ _context4.next = 7;
282
+ break;
283
+ }
284
+ console.log("Node conversion: ".concat(childNodeInfo.id));
285
+ _context4.next = 4;
286
+ return this.sourceTileset.tileset.nodePagesTile.formTileFromNodePages(childNodeInfo.id);
287
+ case 4:
288
+ header = _context4.sent;
289
+ _context4.next = 14;
290
+ break;
291
+ case 7:
292
+ _ref = this.sourceTileset, loader = _ref.loader;
293
+ nodeUrl = this._relativeUrlToFullUrl(parentNode.url, childNodeInfo.href);
294
+ options = {
295
+ i3s: _objectSpread(_objectSpread({}, this.sourceTileset.loadOptions), {}, {
296
+ isTileHeader: true,
297
+ loadContent: false
298
+ })
299
+ };
300
+ console.log("Node conversion: ".concat(nodeUrl));
301
+ _context4.next = 13;
302
+ return (0, _core.load)(nodeUrl, loader, options);
303
+ case 13:
304
+ header = _context4.sent;
305
+ case 14:
306
+ return _context4.abrupt("return", new _tiles.Tile3D(this.sourceTileset, header, parentNode));
307
+ case 15:
308
+ case "end":
309
+ return _context4.stop();
310
+ }
311
+ }, _callee4, this);
312
+ }));
313
+ function _loadChildNode(_x9, _x10) {
314
+ return _loadChildNode2.apply(this, arguments);
315
+ }
316
+ return _loadChildNode;
317
+ }()
318
+ }, {
319
+ key: "_relativeUrlToFullUrl",
320
+ value: function _relativeUrlToFullUrl(baseUrl, relativeUrl) {
321
+ var resultArray = baseUrl.split('/');
322
+ var relativeUrlArray = relativeUrl.split('/');
323
+ var _iterator2 = _createForOfIteratorHelper(relativeUrlArray),
324
+ _step2;
325
+ try {
326
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
327
+ var folder = _step2.value;
328
+ switch (folder) {
329
+ case '.':
330
+ continue;
331
+ case '..':
332
+ resultArray = resultArray.slice(0, -1);
333
+ break;
334
+ default:
335
+ resultArray.push(folder);
336
+ }
337
+ }
338
+ } catch (err) {
339
+ _iterator2.e(err);
340
+ } finally {
341
+ _iterator2.f();
342
+ }
343
+ return resultArray.join('/');
344
+ }
345
+ }, {
346
+ key: "_loadChildAttributes",
347
+ value: function () {
348
+ var _loadChildAttributes2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(sourceChild, attributeStorageInfo) {
349
+ var promises, attributeUrls, index, inputUrl, attribute, options, attributesList;
350
+ return _regenerator.default.wrap(function _callee5$(_context5) {
351
+ while (1) switch (_context5.prev = _context5.next) {
352
+ case 0:
353
+ promises = [];
354
+ attributeUrls = sourceChild.header.attributeUrls;
355
+ for (index = 0; index < attributeUrls.length; index++) {
356
+ inputUrl = attributeUrls[index];
357
+ attribute = attributeStorageInfo[index];
358
+ options = {
359
+ attributeName: attribute.name,
360
+ attributeType: this._getAttributeType(attribute)
361
+ };
362
+ promises.push((0, _core.load)(inputUrl, _i3s.I3SAttributeLoader, options));
363
+ }
364
+ _context5.next = 5;
365
+ return Promise.all(promises);
366
+ case 5:
367
+ attributesList = _context5.sent;
368
+ this._replaceNestedArrays(attributesList);
369
+ return _context5.abrupt("return", Object.assign.apply(Object, [{}].concat((0, _toConsumableArray2.default)(attributesList))));
370
+ case 8:
371
+ case "end":
372
+ return _context5.stop();
373
+ }
374
+ }, _callee5, this);
375
+ }));
376
+ function _loadChildAttributes(_x11, _x12) {
377
+ return _loadChildAttributes2.apply(this, arguments);
378
+ }
379
+ return _loadChildAttributes;
380
+ }()
381
+ }, {
382
+ key: "_getAttributeType",
383
+ value: function _getAttributeType(attribute) {
384
+ if (attribute.attributeValues) {
385
+ return attribute.attributeValues.valueType;
386
+ } else if (attribute.objectIds) {
387
+ return 'Oid32';
388
+ }
389
+ return '';
390
+ }
391
+ }, {
392
+ key: "_replaceNestedArrays",
393
+ value: function _replaceNestedArrays(attributesList) {
394
+ for (var index = 0; index < attributesList.length; index++) {
395
+ var attributeObject = attributesList[index];
396
+ for (var _key in attributeObject) {
397
+ attributeObject[_key] = Array.from(attributeObject[_key]);
398
+ }
399
+ }
400
+ }
401
+ }, {
402
+ key: "_finishConversion",
403
+ value: function () {
404
+ var _finishConversion2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(params) {
405
+ var filesSize, diff, conversionTime;
406
+ return _regenerator.default.wrap(function _callee6$(_context6) {
407
+ while (1) switch (_context6.prev = _context6.next) {
408
+ case 0:
409
+ _context6.next = 2;
410
+ return (0, _statisticUtills.calculateFilesSize)(params);
411
+ case 2:
412
+ filesSize = _context6.sent;
413
+ diff = _process.default.hrtime(this.conversionStartTime);
414
+ conversionTime = (0, _statisticUtills.timeConverter)(diff);
415
+ console.log("------------------------------------------------");
416
+ console.log("Finish conversion of ".concat(I3S));
417
+ console.log("Total conversion time: ".concat(conversionTime));
418
+ console.log("Vertex count: ", this.vertexCounter);
419
+ console.log("File(s) size: ", filesSize, ' bytes');
420
+ console.log("------------------------------------------------");
421
+ case 11:
422
+ case "end":
423
+ return _context6.stop();
424
+ }
425
+ }, _callee6, this);
426
+ }));
427
+ function _finishConversion(_x13) {
428
+ return _finishConversion2.apply(this, arguments);
429
+ }
430
+ return _finishConversion;
431
+ }()
432
+ }, {
433
+ key: "loadWorkers",
434
+ value: function () {
435
+ var _loadWorkers = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7() {
436
+ var tile3dAttributesWorkerUrl, sourceResponse, source;
437
+ return _regenerator.default.wrap(function _callee7$(_context7) {
438
+ while (1) switch (_context7.prev = _context7.next) {
439
+ case 0:
440
+ console.log("Loading workers source...");
441
+ tile3dAttributesWorkerUrl = (0, _workerUtils.getWorkerURL)(_dTilesAttributesWorker.Tile3dAttributesWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
442
+ _context7.next = 4;
443
+ return (0, _core.fetchFile)(tile3dAttributesWorkerUrl);
444
+ case 4:
445
+ sourceResponse = _context7.sent;
446
+ _context7.next = 7;
447
+ return sourceResponse.text();
448
+ case 7:
449
+ source = _context7.sent;
450
+ this.workerSource.tile3dWorkerSource = source;
451
+ console.log("Loading workers source completed!");
452
+ case 10:
453
+ case "end":
454
+ return _context7.stop();
455
+ }
456
+ }, _callee7, this);
457
+ }));
458
+ function loadWorkers() {
459
+ return _loadWorkers.apply(this, arguments);
460
+ }
461
+ return loadWorkers;
462
+ }()
463
+ }]);
464
+ return Tiles3DConverter;
465
+ }();
466
+ exports.default = Tiles3DConverter;
467
+ //# sourceMappingURL=3d-tiles-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3d-tiles-converter.js","names":["_path","require","_process","_interopRequireDefault","_jsonMapTransform","_core","_i3s","_tiles","_pgmLoader","_i3sObbTo3dTilesObb","_lodConversionUtils","_fileUtils","_statisticUtills","_tileset","_coordinateConverter","_dTilesAttributesWorker","_workerUtils","_constants","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","options","tilesetPath","vertexCounter","conversionStartTime","geoidHeightModel","sourceTileset","attributeStorageInfo","workerSource","_createClass2","_convert","_asyncToGenerator2","_regenerator","mark","_callee","inputUrl","outputPath","tilesetName","maxDepth","egmFilePath","sourceTilesetJson","rootNode","rootTile","tileset","workerFarm","wrap","_callee$","_context","prev","isBrowser","console","log","BROWSER_ERROR_MESSAGE","abrupt","process","hrtime","load","PGMLoader","sent","loadWorkers","I3SLoader","Tileset3D","loadOptions","_nodeWorkers","reuseWorkers","i3s","coordinateSystem","COORDINATE_SYSTEM","LNGLAT_OFFSETS","decodeTextures","tilesetInitializationPromise","root","header","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","_sourceChild$header","featureAttributes","child","i3sAttributesData","b3dm","_callee2$","_context2","_loadChildNode","contentUrl","_loadTile","content","vertexCount","_loadChildAttributes","tileContent","textureFormat","transform3DTilesAttributesOnWorker","tile3dWorkerSource","uri","id","Uint8Array","unloadContent","convertChildNode","_x2","_x3","_x4","_x5","_addChildren2","_callee3","promises","_iterator","_step","_callee3$","_context3","Promise","all","_x6","_x7","_x8","_loadChildNode2","_callee4","_ref","loader","nodeUrl","_callee4$","_context4","nodePages","nodePagesTile","formTileFromNodePages","_relativeUrlToFullUrl","url","href","isTileHeader","loadContent","Tile3D","_x9","_x10","baseUrl","relativeUrl","resultArray","split","relativeUrlArray","_iterator2","_step2","folder","_loadChildAttributes2","_callee5","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","_loadWorkers","_callee7","tile3dAttributesWorkerUrl","sourceResponse","_callee7$","_context7","getWorkerURL","Tile3dAttributesWorker","getLoaderOptions","fetchFile","text","exports"],"sources":["../../../src/3d-tiles-converter/3d-tiles-converter.ts"],"sourcesContent":["import type {AttributeStorageInfo, FeatureAttribute, NodeReference} 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 {fetchFile, getLoaderOptions, load, isBrowser} from '@loaders.gl/core';\nimport {I3SLoader, I3SAttributeLoader, COORDINATE_SYSTEM} from '@loaders.gl/i3s';\nimport {Tileset3D, Tile3D} from '@loaders.gl/tiles';\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 {\n I3SAttributesData,\n Tile3dAttributesWorker,\n transform3DTilesAttributesOnWorker\n} from '../3d-tiles-attributes-worker';\nimport {getWorkerURL, WorkerFarm} from '@loaders.gl/worker-utils';\nimport {BROWSER_ERROR_MESSAGE} from '../constants';\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: Tileset3D | null;\n attributeStorageInfo: AttributeStorageInfo | null;\n workerSource: {[key: string]: string} = {};\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 await this.loadWorkers();\n\n const sourceTilesetJson = await load(inputUrl, I3SLoader, {});\n\n this.sourceTileset = new Tileset3D(sourceTilesetJson, {\n loadOptions: {\n _nodeWorkers: true,\n reuseWorkers: true,\n i3s: {coordinateSystem: COORDINATE_SYSTEM.LNGLAT_OFFSETS, decodeTextures: false}\n // TODO should no longer be needed with new workers\n // 'i3s-content-nodejs': {\n // workerUrl: './modules/i3s/dist/i3s-content-nodejs-worker.js'\n // }\n }\n });\n\n await this.sourceTileset.tilesetInitializationPromise;\n const rootNode = this.sourceTileset.root!;\n if (!rootNode.header.obb) {\n rootNode.header.obb = createObbFromMbs(rootNode.header.mbs);\n }\n\n this.tilesetPath = join(`${outputPath}`, `${tilesetName}`);\n this.attributeStorageInfo = sourceTilesetJson.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.header.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: Tile3D,\n parentNode: Tiles3DTileJSON,\n level: number,\n childNodeInfo: NodeReference\n ): Promise<void> {\n const sourceChild = await this._loadChildNode(parentSourceNode, childNodeInfo);\n parentSourceNode.children.push(sourceChild);\n if (sourceChild.contentUrl) {\n await this.sourceTileset!._loadTile(sourceChild);\n this.vertexCounter += sourceChild.content.vertexCount;\n\n let featureAttributes: FeatureAttribute | null = null;\n if (this.attributeStorageInfo) {\n featureAttributes = await this._loadChildAttributes(sourceChild, this.attributeStorageInfo);\n }\n\n if (!sourceChild.header.obb) {\n sourceChild.header.obb = createObbFromMbs(sourceChild.header.mbs);\n }\n\n const boundingVolume = {\n box: i3sObbTo3dTilesObb(sourceChild.header.obb, this.geoidHeightModel)\n };\n const child: Tiles3DTileJSON = {\n boundingVolume,\n geometricError: convertScreenThresholdToGeometricError(sourceChild),\n children: []\n };\n\n const i3sAttributesData: I3SAttributesData = {\n tileContent: sourceChild.content,\n textureFormat: sourceChild?.header?.textureFormat\n };\n\n const b3dm = await transform3DTilesAttributesOnWorker(i3sAttributesData, {\n source: this.workerSource.tile3dWorkerSource,\n featureAttributes\n });\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 sourceChild.unloadContent();\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: Tile3D,\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.header.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(parentNode: Tile3D, childNodeInfo: NodeReference): Promise<Tile3D> {\n let header;\n if (this.sourceTileset!.tileset.nodePages) {\n console.log(`Node conversion: ${childNodeInfo.id}`); // eslint-disable-line no-console,no-undef\n header = await this.sourceTileset!.tileset.nodePagesTile.formTileFromNodePages(\n childNodeInfo.id\n );\n } else {\n const {loader} = this.sourceTileset!;\n const nodeUrl = this._relativeUrlToFullUrl(parentNode.url, childNodeInfo.href!);\n // load metadata\n const options = {\n i3s: {\n ...this.sourceTileset!.loadOptions,\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, loader, options);\n }\n return new Tile3D(this.sourceTileset!, header, parentNode);\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: Tile3D,\n attributeStorageInfo: AttributeStorageInfo\n ): Promise<FeatureAttribute> {\n const promises: any[] = [];\n const {attributeUrls} = sourceChild.header;\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 private async loadWorkers(): Promise<void> {\n console.log(`Loading workers source...`); // eslint-disable-line no-undef, no-console\n const tile3dAttributesWorkerUrl = getWorkerURL(Tile3dAttributesWorker, {...getLoaderOptions()});\n const sourceResponse = await fetchFile(tile3dAttributesWorkerUrl);\n const source = await sourceResponse.text();\n\n this.workerSource.tile3dWorkerSource = source;\n console.log(`Loading workers source completed!`); // eslint-disable-line no-undef, no-console\n }\n}\n"],"mappings":"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"}