@loaders.gl/tile-converter 4.0.0-alpha.4 → 4.0.0-alpha.6

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