@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,28 @@
1
+ import type { Tiles3DTileContent } from '@loaders.gl/3d-tiles';
2
+ import type { B3DMAttributesData } from '../../i3s-attributes-worker';
3
+ import { Matrix4, Vector3 } from '@math.gl/core';
4
+ import { BoundingSphere, OrientedBoundingBox } from '@math.gl/culling';
5
+ /**
6
+ * Prepare attributes for conversion to avoid binary data breaking in worker thread.
7
+ * @param tileContent - 3DTiles tile content
8
+ * @param tileTransform - transformation matrix of the tile, calculated recursively multiplying
9
+ * transform of all parent tiles and transform of the current tile
10
+ * @param boundingVolume - initialized bounding volume of the source tile
11
+ * @returns 3DTiles content data, prepared for conversion
12
+ */
13
+ export declare function prepareDataForAttributesConversion(tileContent: Tiles3DTileContent, tileTransform: Matrix4, boundingVolume: OrientedBoundingBox | BoundingSphere): B3DMAttributesData;
14
+ /**
15
+ * Calculate transformation properties to transform vertex attributes (POSITION, NORMAL, etc.)
16
+ * from METER_OFFSET coorditantes to LNGLAT_OFFSET coordinates
17
+ * @param tileContent - 3DTiles tile content
18
+ * @param tileTransform - transformation matrix of the tile, calculated recursively multiplying
19
+ * transform of all parent tiles and transform of the current tile
20
+ * @param boundingVolume - initialized bounding volume of the source tile
21
+ * @returns modelMatrix - transformation matrix to transform coordinates to cartographic coordinates
22
+ * cartographicOrigin - tile origin coordinates to calculate offsets
23
+ */
24
+ export declare function calculateTransformProps(tileContent: Tiles3DTileContent, tileTransform: Matrix4, boundingVolume: OrientedBoundingBox | BoundingSphere): {
25
+ modelMatrix: Matrix4;
26
+ cartographicOrigin: Vector3;
27
+ };
28
+ //# sourceMappingURL=gltf-attributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gltf-attributes.d.ts","sourceRoot":"","sources":["../../../src/i3s-converter/helpers/gltf-attributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAE7D,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAC,OAAO,EAAc,OAAO,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AAGrE;;;;;;;GAOG;AACH,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,kBAAkB,EAC/B,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,mBAAmB,GAAG,cAAc,GACnD,kBAAkB,CAyCpB;AAqBD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,kBAAkB,EAC/B,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,mBAAmB,GAAG,cAAc,GACnD;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,kBAAkB,EAAE,OAAO,CAAA;CAAC,CAkCrD"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateTransformProps = exports.prepareDataForAttributesConversion = void 0;
4
+ const core_1 = require("@math.gl/core");
5
+ const geospatial_1 = require("@math.gl/geospatial");
6
+ /**
7
+ * Prepare attributes for conversion to avoid binary data breaking in worker thread.
8
+ * @param tileContent - 3DTiles tile content
9
+ * @param tileTransform - transformation matrix of the tile, calculated recursively multiplying
10
+ * transform of all parent tiles and transform of the current tile
11
+ * @param boundingVolume - initialized bounding volume of the source tile
12
+ * @returns 3DTiles content data, prepared for conversion
13
+ */
14
+ function prepareDataForAttributesConversion(tileContent, tileTransform, boundingVolume) {
15
+ let nodes = tileContent.gltf?.scene?.nodes ||
16
+ tileContent.gltf?.scenes?.[0]?.nodes ||
17
+ tileContent.gltf?.nodes ||
18
+ [];
19
+ const images = tileContent.gltf?.images?.map((imageObject) => {
20
+ // Need data only for uncompressed images because we can't get batchIds from compressed textures.
21
+ if (imageObject?.image?.compressed) {
22
+ return null;
23
+ }
24
+ else {
25
+ const data = imageObject?.image?.data;
26
+ const dataCopy = new Uint8Array(data.length);
27
+ dataCopy.set(data);
28
+ return {
29
+ data: dataCopy,
30
+ compressed: false,
31
+ height: imageObject.image.height,
32
+ width: imageObject.image.width,
33
+ components: imageObject.image.components,
34
+ mimeType: imageObject.mimeType
35
+ };
36
+ }
37
+ }) || [];
38
+ prepareNodes(nodes);
39
+ const { cartographicOrigin, modelMatrix: cartesianModelMatrix } = calculateTransformProps(tileContent, tileTransform, boundingVolume);
40
+ return {
41
+ nodes,
42
+ images,
43
+ cartographicOrigin,
44
+ cartesianModelMatrix
45
+ };
46
+ }
47
+ exports.prepareDataForAttributesConversion = prepareDataForAttributesConversion;
48
+ /**
49
+ * Keep only values for glTF attributes to pass data to worker thread.
50
+ * @param attributes - geometry attributes
51
+ * @returns attributes with only `value` item
52
+ */
53
+ function getB3DMAttributesWithoutBufferView(attributes) {
54
+ const attributesWithoutBufferView = {};
55
+ for (const attributeName in attributes) {
56
+ attributesWithoutBufferView[attributeName] = {
57
+ value: attributes[attributeName].value
58
+ };
59
+ }
60
+ return attributesWithoutBufferView;
61
+ }
62
+ /**
63
+ * Calculate transformation properties to transform vertex attributes (POSITION, NORMAL, etc.)
64
+ * from METER_OFFSET coorditantes to LNGLAT_OFFSET coordinates
65
+ * @param tileContent - 3DTiles tile content
66
+ * @param tileTransform - transformation matrix of the tile, calculated recursively multiplying
67
+ * transform of all parent tiles and transform of the current tile
68
+ * @param boundingVolume - initialized bounding volume of the source tile
69
+ * @returns modelMatrix - transformation matrix to transform coordinates to cartographic coordinates
70
+ * cartographicOrigin - tile origin coordinates to calculate offsets
71
+ */
72
+ function calculateTransformProps(tileContent, tileTransform, boundingVolume) {
73
+ const { rtcCenter, gltfUpAxis } = tileContent;
74
+ const { center } = boundingVolume;
75
+ let modelMatrix = new core_1.Matrix4(tileTransform);
76
+ // Translate if appropriate
77
+ if (rtcCenter) {
78
+ modelMatrix.translate(rtcCenter);
79
+ }
80
+ // glTF models need to be rotated from Y to Z up
81
+ // https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification#y-up-to-z-up
82
+ switch (gltfUpAxis) {
83
+ case 'Z':
84
+ break;
85
+ case 'Y':
86
+ const rotationY = new core_1.Matrix4().rotateX(Math.PI / 2);
87
+ modelMatrix = modelMatrix.multiplyRight(rotationY);
88
+ break;
89
+ case 'X':
90
+ const rotationX = new core_1.Matrix4().rotateY(-Math.PI / 2);
91
+ modelMatrix = modelMatrix.multiplyRight(rotationX);
92
+ break;
93
+ default:
94
+ break;
95
+ }
96
+ const cartesianOrigin = new core_1.Vector3(center);
97
+ const cartographicOrigin = geospatial_1.Ellipsoid.WGS84.cartesianToCartographic(cartesianOrigin, new core_1.Vector3());
98
+ return { modelMatrix, cartographicOrigin };
99
+ }
100
+ exports.calculateTransformProps = calculateTransformProps;
101
+ /**
102
+ * Traverse all nodes to replace all sensible data with copy to avoid data corruption in worker.
103
+ * @param nodes
104
+ */
105
+ function prepareNodes(nodes) {
106
+ for (let index = 0; index < nodes.length; index++) {
107
+ const node = nodes[index];
108
+ if (node.mesh) {
109
+ nodes[index] = {
110
+ ...node,
111
+ mesh: {
112
+ ...node.mesh,
113
+ primitives: node.mesh?.primitives.map((primitive) => ({
114
+ ...primitive,
115
+ indices: { value: primitive?.indices?.value },
116
+ attributes: getB3DMAttributesWithoutBufferView(primitive.attributes),
117
+ material: {
118
+ id: primitive?.material?.id,
119
+ uniqueId: primitive?.material?.uniqueId
120
+ }
121
+ }))
122
+ }
123
+ };
124
+ }
125
+ if (node.children) {
126
+ prepareNodes(node.children);
127
+ }
128
+ }
129
+ }
@@ -0,0 +1,18 @@
1
+ import type { Tiles3DLoaderOptions, Tiles3DTileContent, Tiles3DTileJSONPostprocessed, Tiles3DTilesetJSONPostprocessed } from '@loaders.gl/3d-tiles';
2
+ /**
3
+ * Load nested 3DTiles tileset. If the sourceTile is not nested tileset - do nothing
4
+ * @param sourceTileset - source root tileset JSON
5
+ * @param sourceTile - source tile JSON that is supposed to has link to nested tileset
6
+ * @param tilesetLoadOptions - load options for Tiles3DLoader
7
+ * @returns nothing
8
+ */
9
+ export declare const loadNestedTileset: (sourceTileset: Tiles3DTilesetJSONPostprocessed | null, sourceTile: Tiles3DTileJSONPostprocessed, tilesetLoadOptions: Tiles3DLoaderOptions) => Promise<void>;
10
+ /**
11
+ * Load 3DTiles tile content, that includes glTF object
12
+ * @param sourceTileset - source root tileset JSON
13
+ * @param sourceTile - source tile JSON that has link to content data
14
+ * @param tilesetLoadOptions - load options for Tiles3DLoader
15
+ * @returns - 3DTiles tile content or null
16
+ */
17
+ export declare const loadTile3DContent: (sourceTileset: Tiles3DTilesetJSONPostprocessed | null, sourceTile: Tiles3DTileJSONPostprocessed, tilesetLoadOptions: Tiles3DLoaderOptions) => Promise<Tiles3DTileContent | null>;
18
+ //# sourceMappingURL=load-3d-tiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-3d-tiles.d.ts","sourceRoot":"","sources":["../../../src/i3s-converter/helpers/load-3d-tiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,sBAAsB,CAAC;AAG9B;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,kBACb,+BAA+B,GAAG,IAAI,cACzC,4BAA4B,sBACpB,oBAAoB,KACvC,QAAQ,IAAI,CAkBd,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,kBACb,+BAA+B,GAAG,IAAI,cACzC,4BAA4B,sBACpB,oBAAoB,KACvC,QAAQ,kBAAkB,GAAG,IAAI,CAiBnC,CAAC"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadTile3DContent = exports.loadNestedTileset = void 0;
4
+ const core_1 = require("@loaders.gl/core");
5
+ /**
6
+ * Load nested 3DTiles tileset. If the sourceTile is not nested tileset - do nothing
7
+ * @param sourceTileset - source root tileset JSON
8
+ * @param sourceTile - source tile JSON that is supposed to has link to nested tileset
9
+ * @param tilesetLoadOptions - load options for Tiles3DLoader
10
+ * @returns nothing
11
+ */
12
+ const loadNestedTileset = async (sourceTileset, sourceTile, tilesetLoadOptions) => {
13
+ const isTileset = sourceTile.type === 'json';
14
+ if (!sourceTileset || !sourceTile.contentUrl || !isTileset) {
15
+ return;
16
+ }
17
+ const loadOptions = {
18
+ ...tilesetLoadOptions,
19
+ [sourceTileset.loader.id]: {
20
+ isTileset,
21
+ assetGltfUpAxis: (sourceTileset.asset && sourceTileset.asset.gltfUpAxis) || 'Y'
22
+ }
23
+ };
24
+ const tileContent = await (0, core_1.load)(sourceTile.contentUrl, sourceTileset.loader, loadOptions);
25
+ if (tileContent.root) {
26
+ sourceTile.children = [tileContent.root];
27
+ }
28
+ };
29
+ exports.loadNestedTileset = loadNestedTileset;
30
+ /**
31
+ * Load 3DTiles tile content, that includes glTF object
32
+ * @param sourceTileset - source root tileset JSON
33
+ * @param sourceTile - source tile JSON that has link to content data
34
+ * @param tilesetLoadOptions - load options for Tiles3DLoader
35
+ * @returns - 3DTiles tile content or null
36
+ */
37
+ const loadTile3DContent = async (sourceTileset, sourceTile, tilesetLoadOptions) => {
38
+ const isTileset = sourceTile.type === 'json';
39
+ if (!sourceTileset || !sourceTile.contentUrl || isTileset) {
40
+ return null;
41
+ }
42
+ const loadOptions = {
43
+ ...tilesetLoadOptions,
44
+ [sourceTileset.loader.id]: {
45
+ ...(tilesetLoadOptions[sourceTileset.loader.id] || {}),
46
+ isTileset,
47
+ assetGltfUpAxis: (sourceTileset.asset && sourceTileset.asset.gltfUpAxis) || 'Y'
48
+ }
49
+ };
50
+ const tileContent = await (0, core_1.load)(sourceTile.contentUrl, sourceTileset.loader, loadOptions);
51
+ return tileContent;
52
+ };
53
+ exports.loadTile3DContent = loadTile3DContent;
@@ -0,0 +1,8 @@
1
+ import type { Node3DIndexDocument } from '@loaders.gl/i3s';
2
+ /**
3
+ * Do validation of bounding volumes for particular node.
4
+ * Generates special warnings if there are some issues.
5
+ * @param node
6
+ */
7
+ export declare function validateNodeBoundingVolumes(node: Node3DIndexDocument): string[];
8
+ //# sourceMappingURL=node-debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-debug.d.ts","sourceRoot":"","sources":["../../../src/i3s-converter/helpers/node-debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAM,mBAAmB,EAAM,MAAM,iBAAiB,CAAC;AAiBnE;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAW/E"}
@@ -1,88 +1,120 @@
1
- import { OrientedBoundingBox, BoundingSphere } from '@math.gl/culling';
2
- import { CubeGeometry } from '@luma.gl/engine';
3
- import { Vector3 } from '@math.gl/core';
4
- import { Ellipsoid } from '@math.gl/geospatial';
5
- export function validateNodeBoundingVolumes(node) {
6
- if (!node.parentNode.obb || !node.parentNode.mbs) {
7
- return null;
8
- }
9
-
10
- const tileWarnings = [];
11
- validateObb(tileWarnings, node);
12
- validateMbs(tileWarnings, node);
13
- return tileWarnings;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateNodeBoundingVolumes = void 0;
4
+ const culling_1 = require("@math.gl/culling");
5
+ const core_1 = require("@math.gl/core");
6
+ const geospatial_1 = require("@math.gl/geospatial");
7
+ // prettier-ignore
8
+ const CUBE_POSITIONS = new Float32Array([
9
+ -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1,
10
+ -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, -1,
11
+ -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1,
12
+ -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1,
13
+ 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1,
14
+ -1, -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1
15
+ ]);
16
+ // TODO Unite Tile validation logic in i3s-17-and-debug with this code.
17
+ /**
18
+ * Do validation of bounding volumes for particular node.
19
+ * Generates special warnings if there are some issues.
20
+ * @param node
21
+ */
22
+ function validateNodeBoundingVolumes(node) {
23
+ if (!node?.parentNode?.obb || !node?.parentNode?.mbs) {
24
+ return [];
25
+ }
26
+ const tileWarnings = [];
27
+ validateObb(tileWarnings, node);
28
+ validateMbs(tileWarnings, node);
29
+ return tileWarnings;
14
30
  }
15
-
31
+ exports.validateNodeBoundingVolumes = validateNodeBoundingVolumes;
32
+ /**
33
+ * Check if child Obb fit into parent Obb.
34
+ * @param tileWarnings
35
+ * @param node
36
+ */
16
37
  function validateObb(tileWarnings, node) {
17
- const parentObb = createBoundingBoxFromTileObb(node.parentNode.obb);
18
- const tileVertices = getTileObbVertices(node);
19
- const isTileObbInsideParentObb = isAllVerticesInsideBoundingVolume(parentObb, tileVertices);
20
-
21
- if (isTileObbInsideParentObb) {
22
- return;
23
- }
24
-
25
- const title = "OBB of Tile (".concat(node.id, ") doesn't fit into Parent (").concat(node.parentNode.id, ") tile OBB");
26
- tileWarnings.push(title);
38
+ // @ts-expect-error
39
+ const parentObb = createBoundingBoxFromTileObb(node.parentNode.obb);
40
+ const tileVertices = getTileObbVertices(node);
41
+ const isTileObbInsideParentObb = isAllVerticesInsideBoundingVolume(parentObb, tileVertices);
42
+ if (isTileObbInsideParentObb) {
43
+ return;
44
+ }
45
+ const title = `OBB of Tile (${node.id}) doesn't fit into Parent (${node.parentNode?.id}) tile OBB`;
46
+ tileWarnings.push(title);
27
47
  }
28
-
48
+ /**
49
+ * Check if child Mbs fit into parent Mbs.
50
+ * @param tileWarnings
51
+ * @param node
52
+ */
29
53
  function validateMbs(tileWarnings, node) {
30
- const tileMbs = createBoundingSphereFromTileMbs(node.mbs);
31
- const parentMbs = createBoundingSphereFromTileMbs(node.parentNode.mbs);
32
- const distanceBetweenCenters = tileMbs.center.distanceTo(parentMbs.center);
33
-
34
- if (distanceBetweenCenters + tileMbs.radius > parentMbs.radius) {
35
- const title = "MBS of Tile (".concat(node.id, ") doesn't fit into Parent (").concat(node.parentNode.id, ") tile MBS");
36
- tileWarnings.push(title);
37
- }
54
+ // @ts-expect-error
55
+ const tileMbs = createBoundingSphereFromTileMbs(node.mbs);
56
+ // @ts-expect-error
57
+ const parentMbs = createBoundingSphereFromTileMbs(node.parentNode.mbs);
58
+ const distanceBetweenCenters = tileMbs.center.distanceTo(parentMbs.center);
59
+ if (distanceBetweenCenters + tileMbs.radius > parentMbs.radius) {
60
+ const title = `MBS of Tile (${node.id}) doesn't fit into Parent (${node.parentNode?.id}) tile MBS`;
61
+ tileWarnings.push(title);
62
+ }
38
63
  }
39
-
64
+ /**
65
+ * Generates bounding sphere from mbs
66
+ * @param mbs
67
+ */
40
68
  function createBoundingSphereFromTileMbs(mbs) {
41
- return new BoundingSphere([mbs[0], mbs[1], mbs[2]], mbs[3]);
69
+ return new culling_1.BoundingSphere([mbs[0], mbs[1], mbs[2]], mbs[3]);
42
70
  }
43
-
71
+ /**
72
+ * Generates oriented bounding box from tile obb
73
+ * @param obb
74
+ * @returns
75
+ */
44
76
  function createBoundingBoxFromTileObb(obb) {
45
- const {
46
- center,
47
- halfSize,
48
- quaternion
49
- } = obb;
50
- return new OrientedBoundingBox().fromCenterHalfSizeQuaternion(center, halfSize, quaternion);
77
+ const { center, halfSize, quaternion } = obb;
78
+ return new culling_1.OrientedBoundingBox().fromCenterHalfSizeQuaternion(center, halfSize, quaternion);
51
79
  }
52
-
80
+ /**
81
+ * Get vertices fromnode obb
82
+ * TODO check if Obb generates properly
83
+ * @param node
84
+ */
53
85
  function getTileObbVertices(node) {
54
- const geometry = new CubeGeometry();
55
- const halfSize = node.obb.halfSize;
56
- const {
57
- attributes
58
- } = geometry;
59
- const positions = new Float32Array(attributes.POSITION.value);
60
- const obbCenterCartesian = Ellipsoid.WGS84.cartographicToCartesian(node.obb.center);
61
- let vertices = [];
62
-
63
- for (let i = 0; i < positions.length; i += 3) {
64
- const positionsVector = new Vector3(positions[i] *= halfSize[0], positions[i + 1] *= halfSize[1], positions[i + 2] *= halfSize[2]);
65
- const rotatedPositions = positionsVector.transformByQuaternion(node.obb.quaternion).add(obbCenterCartesian);
66
- vertices = vertices.concat(rotatedPositions);
67
- }
68
-
69
- return vertices;
86
+ // @ts-expect-error
87
+ const halfSize = node.obb.halfSize;
88
+ const positions = CUBE_POSITIONS;
89
+ // @ts-expect-error
90
+ const obbCenterCartesian = geospatial_1.Ellipsoid.WGS84.cartographicToCartesian(node.obb.center);
91
+ let vertices = [];
92
+ for (let i = 0; i < positions.length; i += 3) {
93
+ const positionsVector = new core_1.Vector3((positions[i] *= halfSize[0]), (positions[i + 1] *= halfSize[1]), (positions[i + 2] *= halfSize[2]));
94
+ const rotatedPositions = positionsVector
95
+ // @ts-expect-error
96
+ .transformByQuaternion(node.obb.quaternion)
97
+ .add(obbCenterCartesian);
98
+ // @ts-expect-error
99
+ vertices = vertices.concat(rotatedPositions);
100
+ }
101
+ return vertices;
70
102
  }
71
-
103
+ /**
104
+ * Check if all vertices inside bounding volume
105
+ * @param boundingVolume
106
+ * @param positions
107
+ */
72
108
  function isAllVerticesInsideBoundingVolume(boundingVolume, positions) {
73
- let isVerticesInsideObb = true;
74
-
75
- for (let index = 0; index < positions.length / 3; index += 3) {
76
- const point = [positions[index], positions[index + 1], positions[index + 2]];
77
- const cartographicPoint = Ellipsoid.WGS84.cartesianToCartographic(point);
78
- const distance = boundingVolume.distanceTo(cartographicPoint);
79
-
80
- if (distance > 0) {
81
- isVerticesInsideObb = false;
82
- break;
109
+ let isVerticesInsideObb = true;
110
+ for (let index = 0; index < positions.length / 3; index += 3) {
111
+ const point = [positions[index], positions[index + 1], positions[index + 2]];
112
+ const cartographicPoint = geospatial_1.Ellipsoid.WGS84.cartesianToCartographic(point);
113
+ const distance = boundingVolume.distanceTo(cartographicPoint);
114
+ if (distance > 0) {
115
+ isVerticesInsideObb = false;
116
+ break;
117
+ }
83
118
  }
84
- }
85
-
86
- return isVerticesInsideObb;
119
+ return isVerticesInsideObb;
87
120
  }
88
- //# sourceMappingURL=node-debug.js.map
@@ -0,0 +1,103 @@
1
+ import { BoundingVolumes, LodSelection, Node3DIndexDocument, NodeInPage } from '@loaders.gl/i3s';
2
+ import I3SConverter from '../i3s-converter';
3
+ import { I3SConvertedResources } from '../types';
4
+ /**
5
+ * Wrapper for https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md data
6
+ * The class allows working with 3DNodeIndexDocument in 2 modes:
7
+ * in memory: the data is stored in `data` field
8
+ * on disk: the data is written on disk in a file. The file can be rewritten when new childrend or neighbors have to be added
9
+ */
10
+ export declare class NodeIndexDocument {
11
+ /** Node id */
12
+ id: string;
13
+ /** Id in node pages */
14
+ inPageId: number;
15
+ /** 3DNodeIndexDocument data */
16
+ data: Node3DIndexDocument | null;
17
+ /** children */
18
+ children: NodeIndexDocument[];
19
+ /** converter instance */
20
+ private converter;
21
+ /**
22
+ * Finalized property. It means that all child nodes are saved and their data
23
+ * is unloaded
24
+ */
25
+ private _finalized;
26
+ get finalized(): boolean;
27
+ /**
28
+ * Constructor
29
+ * @param id - id of the node in node pages
30
+ * @param converter - converter instance
31
+ */
32
+ constructor(id: number, converter: I3SConverter);
33
+ /**
34
+ * Add Node3DIndexDocument data to the node
35
+ * @param data Node3DIndexDocument data
36
+ * @returns this NodeIndexDocument instance (to recurring with constructor)
37
+ */
38
+ addData(data: Node3DIndexDocument): Promise<NodeIndexDocument>;
39
+ /**
40
+ * Add child node references
41
+ * @param childNodes - child NodeIndexDocument instances
42
+ */
43
+ addChildren(childNodes: NodeIndexDocument[]): Promise<void>;
44
+ /**
45
+ * Add neighbors to child nodes of this node
46
+ */
47
+ addNeighbors(): Promise<void>;
48
+ /** Save 3DNodeIndexDocument in file on disk */
49
+ save(): Promise<void>;
50
+ /** Finalize the node */
51
+ private finalize;
52
+ /**
53
+ * Write 3DNodeIndexDocument https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md
54
+ * @param node - Node3DIndexDocument object
55
+ */
56
+ private write;
57
+ /**
58
+ * Load 3DNodeIndexDocument data from file on disk
59
+ * @returns 3DNodeIndexDocument object
60
+ */
61
+ private load;
62
+ /**
63
+ * Unload the Node data
64
+ */
65
+ private flush;
66
+ /**
67
+ * Create root node of the tree
68
+ * @param boundingVolumes - MBS and OOB bounding volumes data
69
+ * @param converter - I3SConverter instance
70
+ * @returns instance of NodeIndexDocument
71
+ */
72
+ static createRootNode(boundingVolumes: BoundingVolumes, converter: I3SConverter): Promise<NodeIndexDocument>;
73
+ /**
74
+ * Create NodeIndexDocument instance
75
+ * @param parentNode - parent NodeIndexDocument
76
+ * @param boundingVolumes - MBS and OOB bounding volumes data
77
+ * @param lodSelection - LOD metrics data
78
+ * @param nodeInPage - node data in node pages
79
+ * @param resources - resources extracted from gltf/b3dm file
80
+ * @param converter - I3SConverter instance
81
+ * @returns NodeIndexDocument instance
82
+ */
83
+ static createNode(parentNode: NodeIndexDocument, boundingVolumes: BoundingVolumes, lodSelection: LodSelection[], nodeInPage: NodeInPage, resources: I3SConvertedResources, converter: I3SConverter): Promise<NodeIndexDocument>;
84
+ /**
85
+ * Form 3DNodeIndexDocument data for the root node
86
+ * @param boundingVolumes - mbs and obb data about node's bounding volume
87
+ * @return 3DNodeIndexDocument data https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md
88
+ */
89
+ static createRootNodeIndexDocument(boundingVolumes: BoundingVolumes): Node3DIndexDocument;
90
+ /**
91
+ * Create a new Node3DIndexDocument
92
+ * @param parentNode - 3DNodeIndexDocument https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md object of the parent node
93
+ * @param boundingVolumes - Bounding volumes
94
+ * @param lodSelection - Level of Details (LOD) metrics
95
+ * @param nodeInPage - corresponding node object in a node page
96
+ * @param resources - the node resources data
97
+ * @param resources.texture - texture image
98
+ * @param resources.attributes - feature attributes
99
+ * @return 3DNodeIndexDocument https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md object
100
+ */
101
+ static createNodeIndexDocument(parentNode: NodeIndexDocument, boundingVolumes: BoundingVolumes, lodSelection: LodSelection[], nodeInPage: NodeInPage, resources: I3SConvertedResources): Promise<Node3DIndexDocument>;
102
+ }
103
+ //# sourceMappingURL=node-index-document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-index-document.d.ts","sourceRoot":"","sources":["../../../src/i3s-converter/helpers/node-index-document.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,UAAU,EAEX,MAAM,iBAAiB,CAAC;AAIzB,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAC,qBAAqB,EAAC,MAAM,UAAU,CAAC;AAE/C;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,cAAc;IACP,EAAE,EAAE,MAAM,CAAC;IAClB,uBAAuB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACxB,+BAA+B;IACxB,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAC/C,eAAe;IACR,QAAQ,EAAE,iBAAiB,EAAE,CAAM;IAC1C,yBAAyB;IACzB,OAAO,CAAC,SAAS,CAAe;IAEhC;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAkB;IACpC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;;OAIG;gBACS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY;IAM/C;;;;OAIG;IACU,OAAO,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAS3E;;;OAGG;IACU,WAAW,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BxE;;OAEG;IACU,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC1C,+CAA+C;IAClC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMlC,wBAAwB;IACxB,OAAO,CAAC,QAAQ;IAOhB;;;OAGG;YACW,KAAK;IAyBnB;;;OAGG;YACW,IAAI;IAalB;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;;;;OAKG;WACU,cAAc,CACzB,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,iBAAiB,CAAC;IAM7B;;;;;;;;;OASG;WACU,UAAU,CACrB,UAAU,EAAE,iBAAiB,EAC7B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAAE,EAC5B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,qBAAqB,EAChC,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,iBAAiB,CAAC;IAY7B;;;;OAIG;IACH,MAAM,CAAC,2BAA2B,CAAC,eAAe,EAAE,eAAe,GAAG,mBAAmB;IAqBzF;;;;;;;;;;OAUG;WACU,uBAAuB,CAClC,UAAU,EAAE,iBAAiB,EAC7B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAAE,EAC5B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,qBAAqB,GAC/B,OAAO,CAAC,mBAAmB,CAAC;CA4ChC"}