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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. package/bin/converter.js +1 -1
  2. package/dist/3d-tiles-attributes-worker.d.ts +28 -0
  3. package/dist/3d-tiles-attributes-worker.d.ts.map +1 -0
  4. package/dist/3d-tiles-attributes-worker.js +3 -0
  5. package/dist/3d-tiles-attributes-worker.js.map +7 -0
  6. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +90 -0
  7. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -0
  8. package/dist/3d-tiles-converter/3d-tiles-converter.js +275 -226
  9. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +71 -18
  10. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -0
  11. package/dist/3d-tiles-converter/helpers/b3dm-converter.js +256 -236
  12. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +4 -7
  13. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts.map +1 -0
  14. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +22 -9
  15. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts +9 -0
  16. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts.map +1 -0
  17. package/dist/3d-tiles-converter/helpers/texture-atlas.js +47 -28
  18. package/dist/3d-tiles-converter/json-templates/tileset.d.ts +15 -0
  19. package/dist/3d-tiles-converter/json-templates/tileset.d.ts.map +1 -0
  20. package/dist/3d-tiles-converter/json-templates/tileset.js +42 -36
  21. package/dist/bundle.d.ts +2 -0
  22. package/dist/bundle.d.ts.map +1 -0
  23. package/dist/bundle.js +2 -2
  24. package/dist/constants.d.ts +2 -0
  25. package/dist/constants.d.ts.map +1 -0
  26. package/dist/constants.js +4 -0
  27. package/dist/converter-cli.d.ts +2 -0
  28. package/dist/converter-cli.d.ts.map +1 -0
  29. package/dist/converter-cli.js +280 -0
  30. package/dist/converter.min.js +185 -190
  31. package/dist/deps-installer/deps-installer.d.ts +11 -3
  32. package/dist/deps-installer/deps-installer.d.ts.map +1 -0
  33. package/dist/deps-installer/deps-installer.js +61 -23
  34. package/dist/dist.min.js +64143 -0
  35. package/dist/es5/3d-tiles-attributes-worker.js +25 -0
  36. package/dist/es5/3d-tiles-attributes-worker.js.map +1 -0
  37. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +467 -0
  38. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
  39. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +293 -0
  40. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -0
  41. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +18 -0
  42. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -0
  43. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +33 -0
  44. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
  45. package/dist/es5/3d-tiles-converter/json-templates/tileset.js +61 -0
  46. package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +1 -0
  47. package/dist/es5/bundle.js +6 -0
  48. package/dist/es5/bundle.js.map +1 -0
  49. package/dist/es5/constants.js +9 -0
  50. package/dist/es5/constants.js.map +1 -0
  51. package/dist/es5/converter-cli.js +289 -0
  52. package/dist/es5/converter-cli.js.map +1 -0
  53. package/dist/es5/deps-installer/deps-installer.js +124 -0
  54. package/dist/es5/deps-installer/deps-installer.js.map +1 -0
  55. package/dist/es5/i3s-attributes-worker.js +25 -0
  56. package/dist/es5/i3s-attributes-worker.js.map +1 -0
  57. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +116 -0
  58. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -0
  59. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +89 -0
  60. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -0
  61. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +41 -0
  62. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +1 -0
  63. package/dist/es5/i3s-converter/helpers/feature-attributes.js +174 -0
  64. package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -0
  65. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +213 -0
  66. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -0
  67. package/dist/es5/i3s-converter/helpers/geometry-converter.js +1192 -0
  68. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -0
  69. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +113 -0
  70. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  71. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js +82 -0
  72. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js.map +1 -0
  73. package/dist/es5/i3s-converter/helpers/node-debug.js +76 -0
  74. package/dist/es5/i3s-converter/helpers/node-debug.js.map +1 -0
  75. package/dist/es5/i3s-converter/helpers/node-index-document.js +521 -0
  76. package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -0
  77. package/dist/es5/i3s-converter/helpers/node-pages.js +519 -0
  78. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -0
  79. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +111 -0
  80. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -0
  81. package/dist/es5/i3s-converter/helpers/tileset-traversal.js +82 -0
  82. package/dist/es5/i3s-converter/helpers/tileset-traversal.js.map +1 -0
  83. package/dist/es5/i3s-converter/i3s-converter.js +1541 -0
  84. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -0
  85. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js +107 -0
  86. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  87. package/dist/es5/i3s-converter/json-templates/layers.js +163 -0
  88. package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -0
  89. package/dist/es5/i3s-converter/json-templates/metadata.js +31 -0
  90. package/dist/es5/i3s-converter/json-templates/metadata.js.map +1 -0
  91. package/dist/es5/i3s-converter/json-templates/node.js +99 -0
  92. package/dist/es5/i3s-converter/json-templates/node.js.map +1 -0
  93. package/dist/es5/i3s-converter/json-templates/scene-server.js +39 -0
  94. package/dist/es5/i3s-converter/json-templates/scene-server.js.map +1 -0
  95. package/dist/es5/i3s-converter/json-templates/shared-resources.js +173 -0
  96. package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -0
  97. package/dist/es5/i3s-converter/json-templates/store.js +107 -0
  98. package/dist/es5/i3s-converter/json-templates/store.js.map +1 -0
  99. package/dist/es5/i3s-converter/types.js +18 -0
  100. package/dist/es5/i3s-converter/types.js.map +1 -0
  101. package/dist/es5/i3s-server/README.md +19 -0
  102. package/dist/es5/i3s-server/app.js +27 -0
  103. package/dist/es5/i3s-server/app.js.map +1 -0
  104. package/dist/es5/i3s-server/controllers/index-controller.js +55 -0
  105. package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -0
  106. package/dist/es5/i3s-server/controllers/slpk-controller.js +84 -0
  107. package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -0
  108. package/dist/es5/i3s-server/routes/index.js +37 -0
  109. package/dist/es5/i3s-server/routes/index.js.map +1 -0
  110. package/dist/es5/i3s-server/routes/slpk-router.js +71 -0
  111. package/dist/es5/i3s-server/routes/slpk-router.js.map +1 -0
  112. package/dist/es5/i3s-server/utils/create-scene-server.js +17 -0
  113. package/dist/es5/i3s-server/utils/create-scene-server.js.map +1 -0
  114. package/dist/es5/index.js +21 -0
  115. package/dist/es5/index.js.map +1 -0
  116. package/dist/es5/lib/utils/compress-util.js +346 -0
  117. package/dist/es5/lib/utils/compress-util.js.map +1 -0
  118. package/dist/es5/lib/utils/file-utils.js +208 -0
  119. package/dist/es5/lib/utils/file-utils.js.map +1 -0
  120. package/dist/es5/lib/utils/geometry-utils.js +15 -0
  121. package/dist/es5/lib/utils/geometry-utils.js.map +1 -0
  122. package/dist/es5/lib/utils/lod-conversion-utils.js +44 -0
  123. package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -0
  124. package/dist/es5/lib/utils/queue.js +47 -0
  125. package/dist/es5/lib/utils/queue.js.map +1 -0
  126. package/dist/es5/lib/utils/statistic-utills.d.ts +25 -0
  127. package/dist/es5/lib/utils/statistic-utills.js +147 -0
  128. package/dist/es5/lib/utils/statistic-utills.js.map +1 -0
  129. package/dist/es5/lib/utils/write-queue.js +214 -0
  130. package/dist/es5/lib/utils/write-queue.js.map +1 -0
  131. package/dist/es5/pgm-loader.js +41 -0
  132. package/dist/es5/pgm-loader.js.map +1 -0
  133. package/dist/es5/workers/3d-tiles-attributes-worker.js +28 -0
  134. package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -0
  135. package/dist/es5/workers/i3s-attributes-worker.js +30 -0
  136. package/dist/es5/workers/i3s-attributes-worker.js.map +1 -0
  137. package/dist/esm/3d-tiles-attributes-worker.js +16 -0
  138. package/dist/esm/3d-tiles-attributes-worker.js.map +1 -0
  139. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +245 -0
  140. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
  141. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +218 -0
  142. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -0
  143. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +10 -0
  144. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -0
  145. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js +27 -0
  146. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
  147. package/dist/esm/3d-tiles-converter/json-templates/tileset.js +37 -0
  148. package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +1 -0
  149. package/dist/esm/bundle.js +4 -0
  150. package/dist/esm/bundle.js.map +1 -0
  151. package/dist/esm/constants.js +2 -0
  152. package/dist/esm/constants.js.map +1 -0
  153. package/dist/esm/converter-cli.js +232 -0
  154. package/dist/esm/converter-cli.js.map +1 -0
  155. package/dist/esm/deps-installer/deps-installer.js +45 -0
  156. package/dist/esm/deps-installer/deps-installer.js.map +1 -0
  157. package/dist/esm/i3s-attributes-worker.js +16 -0
  158. package/dist/esm/i3s-attributes-worker.js.map +1 -0
  159. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +105 -0
  160. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -0
  161. package/dist/esm/i3s-converter/helpers/coordinate-converter.js +79 -0
  162. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -0
  163. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js +16 -0
  164. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +1 -0
  165. package/dist/esm/i3s-converter/helpers/feature-attributes.js +147 -0
  166. package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -0
  167. package/{src → dist/esm}/i3s-converter/helpers/geometry-attributes.js +80 -106
  168. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -0
  169. package/dist/esm/i3s-converter/helpers/geometry-converter.js +906 -0
  170. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -0
  171. package/dist/esm/i3s-converter/helpers/gltf-attributes.js +110 -0
  172. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  173. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js +35 -0
  174. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js.map +1 -0
  175. package/{src → dist/esm}/i3s-converter/helpers/node-debug.js +20 -41
  176. package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -0
  177. package/dist/esm/i3s-converter/helpers/node-index-document.js +201 -0
  178. package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -0
  179. package/dist/esm/i3s-converter/helpers/node-pages.js +206 -0
  180. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -0
  181. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js +48 -0
  182. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -0
  183. package/dist/esm/i3s-converter/helpers/tileset-traversal.js +14 -0
  184. package/dist/esm/i3s-converter/helpers/tileset-traversal.js.map +1 -0
  185. package/dist/esm/i3s-converter/i3s-converter.js +778 -0
  186. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -0
  187. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js +89 -0
  188. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  189. package/dist/esm/i3s-converter/json-templates/layers.js +133 -0
  190. package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -0
  191. package/dist/esm/i3s-converter/json-templates/metadata.js +22 -0
  192. package/dist/esm/i3s-converter/json-templates/metadata.js.map +1 -0
  193. package/dist/esm/i3s-converter/json-templates/node.js +80 -0
  194. package/dist/esm/i3s-converter/json-templates/node.js.map +1 -0
  195. package/dist/esm/i3s-converter/json-templates/scene-server.js +28 -0
  196. package/dist/esm/i3s-converter/json-templates/scene-server.js.map +1 -0
  197. package/dist/esm/i3s-converter/json-templates/shared-resources.js +123 -0
  198. package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -0
  199. package/dist/esm/i3s-converter/json-templates/store.js +98 -0
  200. package/dist/esm/i3s-converter/json-templates/store.js.map +1 -0
  201. package/dist/esm/i3s-converter/types.js +11 -0
  202. package/dist/esm/i3s-converter/types.js.map +1 -0
  203. package/dist/esm/i3s-server/README.md +19 -0
  204. package/dist/esm/i3s-server/app.js +26 -0
  205. package/dist/esm/i3s-server/app.js.map +1 -0
  206. package/dist/esm/i3s-server/bin/www +102 -0
  207. package/dist/esm/i3s-server/certs/cert.pem +19 -0
  208. package/dist/esm/i3s-server/certs/key.pem +27 -0
  209. package/dist/esm/i3s-server/controllers/index-controller.js +24 -0
  210. package/dist/esm/i3s-server/controllers/index-controller.js.map +1 -0
  211. package/dist/esm/i3s-server/controllers/slpk-controller.js +36 -0
  212. package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -0
  213. package/dist/esm/i3s-server/routes/index.js +16 -0
  214. package/dist/esm/i3s-server/routes/index.js.map +1 -0
  215. package/dist/esm/i3s-server/routes/slpk-router.js +33 -0
  216. package/dist/esm/i3s-server/routes/slpk-router.js.map +1 -0
  217. package/dist/esm/i3s-server/utils/create-scene-server.js +16 -0
  218. package/dist/esm/i3s-server/utils/create-scene-server.js.map +1 -0
  219. package/dist/esm/index.js +3 -0
  220. package/dist/esm/index.js.map +1 -0
  221. package/dist/esm/lib/utils/compress-util.js +168 -0
  222. package/dist/esm/lib/utils/compress-util.js.map +1 -0
  223. package/dist/esm/lib/utils/file-utils.js +87 -0
  224. package/dist/esm/lib/utils/file-utils.js.map +1 -0
  225. package/dist/esm/lib/utils/geometry-utils.js +8 -0
  226. package/dist/esm/lib/utils/geometry-utils.js.map +1 -0
  227. package/dist/esm/lib/utils/lod-conversion-utils.js +37 -0
  228. package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -0
  229. package/dist/esm/lib/utils/queue.js +15 -0
  230. package/dist/esm/lib/utils/queue.js.map +1 -0
  231. package/dist/esm/lib/utils/statistic-utills.d.ts +25 -0
  232. package/dist/esm/lib/utils/statistic-utills.js +62 -0
  233. package/dist/esm/lib/utils/statistic-utills.js.map +1 -0
  234. package/dist/esm/lib/utils/write-queue.js +85 -0
  235. package/dist/esm/lib/utils/write-queue.js.map +1 -0
  236. package/dist/esm/pgm-loader.js +15 -0
  237. package/dist/esm/pgm-loader.js.map +1 -0
  238. package/dist/esm/workers/3d-tiles-attributes-worker.js +8 -0
  239. package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -0
  240. package/dist/esm/workers/i3s-attributes-worker.js +7 -0
  241. package/dist/esm/workers/i3s-attributes-worker.js.map +1 -0
  242. package/dist/i3s-attributes-worker.d.ts +45 -0
  243. package/dist/i3s-attributes-worker.d.ts.map +1 -0
  244. package/dist/i3s-attributes-worker.js +9 -0
  245. package/dist/i3s-attributes-worker.js.map +7 -0
  246. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +13 -0
  247. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -0
  248. package/dist/i3s-converter/helpers/batch-ids-extensions.js +138 -0
  249. package/dist/i3s-converter/helpers/coordinate-converter.d.ts +40 -0
  250. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -0
  251. package/dist/i3s-converter/helpers/coordinate-converter.js +119 -42
  252. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts +9 -0
  253. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts.map +1 -0
  254. package/dist/i3s-converter/helpers/create-scene-server-path.js +27 -15
  255. package/dist/i3s-converter/helpers/feature-attributes.d.ts +56 -0
  256. package/dist/i3s-converter/helpers/feature-attributes.d.ts.map +1 -0
  257. package/dist/i3s-converter/helpers/feature-attributes.js +216 -0
  258. package/dist/i3s-converter/helpers/geometry-attributes.d.ts +8 -0
  259. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -0
  260. package/dist/i3s-converter/helpers/geometry-attributes.js +188 -185
  261. package/dist/i3s-converter/helpers/geometry-converter.d.ts +41 -35
  262. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -0
  263. package/dist/i3s-converter/helpers/geometry-converter.js +1179 -650
  264. package/dist/i3s-converter/helpers/gltf-attributes.d.ts +28 -0
  265. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -0
  266. package/dist/i3s-converter/helpers/gltf-attributes.js +128 -0
  267. package/dist/i3s-converter/helpers/load-3d-tiles.d.ts +18 -0
  268. package/dist/i3s-converter/helpers/load-3d-tiles.d.ts.map +1 -0
  269. package/dist/i3s-converter/helpers/load-3d-tiles.js +53 -0
  270. package/dist/i3s-converter/helpers/node-debug.d.ts +8 -0
  271. package/dist/i3s-converter/helpers/node-debug.d.ts.map +1 -0
  272. package/dist/i3s-converter/helpers/node-debug.js +106 -74
  273. package/dist/i3s-converter/helpers/node-index-document.d.ts +103 -0
  274. package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -0
  275. package/dist/i3s-converter/helpers/node-index-document.js +268 -0
  276. package/dist/i3s-converter/helpers/node-pages.d.ts +125 -113
  277. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -0
  278. package/dist/i3s-converter/helpers/node-pages.js +313 -133
  279. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts +23 -0
  280. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -0
  281. package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +76 -0
  282. package/dist/i3s-converter/helpers/tileset-traversal.d.ts +25 -0
  283. package/dist/i3s-converter/helpers/tileset-traversal.d.ts.map +1 -0
  284. package/dist/i3s-converter/helpers/tileset-traversal.js +29 -0
  285. package/dist/i3s-converter/i3s-converter.d.ts +267 -0
  286. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -0
  287. package/dist/i3s-converter/i3s-converter.js +891 -867
  288. package/dist/i3s-converter/json-templates/geometry-definitions.d.ts +7 -0
  289. package/dist/i3s-converter/json-templates/geometry-definitions.d.ts.map +1 -0
  290. package/dist/i3s-converter/json-templates/geometry-definitions.js +87 -0
  291. package/dist/i3s-converter/json-templates/layers.d.ts +70 -0
  292. package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -0
  293. package/dist/i3s-converter/json-templates/layers.js +138 -190
  294. package/dist/i3s-converter/json-templates/metadata.d.ts +22 -0
  295. package/dist/i3s-converter/json-templates/metadata.d.ts.map +1 -0
  296. package/dist/i3s-converter/json-templates/metadata.js +25 -22
  297. package/dist/i3s-converter/json-templates/node.d.ts +61 -0
  298. package/dist/i3s-converter/json-templates/node.d.ts.map +1 -0
  299. package/dist/i3s-converter/json-templates/node.js +88 -79
  300. package/dist/i3s-converter/json-templates/scene-server.d.ts +28 -0
  301. package/dist/i3s-converter/json-templates/scene-server.d.ts.map +1 -0
  302. package/dist/i3s-converter/json-templates/scene-server.js +31 -28
  303. package/dist/i3s-converter/json-templates/shared-resources.d.ts +14 -0
  304. package/dist/i3s-converter/json-templates/shared-resources.d.ts.map +1 -0
  305. package/dist/i3s-converter/json-templates/shared-resources.js +124 -125
  306. package/dist/i3s-converter/json-templates/store.d.ts +95 -0
  307. package/dist/i3s-converter/json-templates/store.d.ts.map +1 -0
  308. package/dist/i3s-converter/json-templates/store.js +100 -95
  309. package/dist/i3s-converter/types.d.ts +163 -0
  310. package/dist/i3s-converter/types.d.ts.map +1 -0
  311. package/dist/i3s-converter/types.js +17 -0
  312. package/dist/i3s-server/app.d.ts +3 -0
  313. package/dist/i3s-server/app.d.ts.map +1 -0
  314. package/dist/i3s-server/app.js +11 -10
  315. package/dist/i3s-server/controllers/index-controller.d.ts +2 -0
  316. package/dist/i3s-server/controllers/index-controller.d.ts.map +1 -0
  317. package/dist/i3s-server/controllers/index-controller.js +16 -24
  318. package/dist/i3s-server/controllers/slpk-controller.d.ts +3 -0
  319. package/dist/i3s-server/controllers/slpk-controller.d.ts.map +1 -0
  320. package/dist/i3s-server/controllers/slpk-controller.js +32 -0
  321. package/dist/i3s-server/routes/index.d.ts +3 -0
  322. package/dist/i3s-server/routes/index.d.ts.map +1 -0
  323. package/dist/i3s-server/routes/index.js +11 -15
  324. package/dist/i3s-server/routes/slpk-router.d.ts +3 -0
  325. package/dist/i3s-server/routes/slpk-router.d.ts.map +1 -0
  326. package/dist/i3s-server/routes/slpk-router.js +33 -0
  327. package/dist/i3s-server/utils/create-scene-server.d.ts +11 -0
  328. package/dist/i3s-server/utils/create-scene-server.d.ts.map +1 -0
  329. package/dist/i3s-server/utils/create-scene-server.js +14 -0
  330. package/dist/index.d.ts +3 -0
  331. package/dist/index.d.ts.map +1 -0
  332. package/dist/index.js +10 -5
  333. package/dist/lib/utils/compress-util.d.ts +45 -0
  334. package/dist/lib/utils/compress-util.d.ts.map +1 -0
  335. package/dist/lib/utils/compress-util.js +238 -160
  336. package/dist/lib/utils/file-utils.d.ts +22 -14
  337. package/dist/lib/utils/file-utils.d.ts.map +1 -0
  338. package/dist/lib/utils/file-utils.js +134 -36
  339. package/dist/lib/utils/geometry-utils.d.ts +9 -0
  340. package/dist/lib/utils/geometry-utils.d.ts.map +1 -0
  341. package/dist/lib/utils/geometry-utils.js +18 -0
  342. package/dist/lib/utils/lod-conversion-utils.d.ts +23 -13
  343. package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -0
  344. package/dist/lib/utils/lod-conversion-utils.js +72 -39
  345. package/dist/lib/utils/queue.d.ts +7 -0
  346. package/dist/lib/utils/queue.d.ts.map +1 -0
  347. package/dist/lib/utils/queue.js +18 -0
  348. package/dist/lib/utils/statistic-utills.d.ts +3 -25
  349. package/dist/lib/utils/statistic-utills.d.ts.map +1 -0
  350. package/dist/lib/utils/statistic-utills.js +58 -67
  351. package/dist/lib/utils/write-queue.d.ts +39 -0
  352. package/dist/lib/utils/write-queue.d.ts.map +1 -0
  353. package/dist/lib/utils/write-queue.js +80 -0
  354. package/dist/pgm-loader.d.ts +6 -0
  355. package/dist/pgm-loader.d.ts.map +1 -0
  356. package/dist/pgm-loader.js +23 -14
  357. package/dist/workers/3d-tiles-attributes-worker.d.ts +2 -0
  358. package/dist/workers/3d-tiles-attributes-worker.d.ts.map +1 -0
  359. package/dist/workers/3d-tiles-attributes-worker.js +9 -0
  360. package/dist/workers/i3s-attributes-worker.d.ts +2 -0
  361. package/dist/workers/i3s-attributes-worker.d.ts.map +1 -0
  362. package/dist/workers/i3s-attributes-worker.js +5 -0
  363. package/package.json +34 -24
  364. package/src/3d-tiles-attributes-worker.ts +43 -0
  365. package/src/3d-tiles-converter/3d-tiles-converter.ts +131 -63
  366. package/src/3d-tiles-converter/helpers/{b3dm-converter.js → b3dm-converter.ts} +72 -53
  367. package/src/3d-tiles-converter/helpers/{i3s-obb-to-3d-tiles-obb.js → i3s-obb-to-3d-tiles-obb.ts} +16 -1
  368. package/src/3d-tiles-converter/helpers/texture-atlas.ts +4 -4
  369. package/src/3d-tiles-converter/json-templates/{tileset.js → tileset.ts} +9 -9
  370. package/src/constants.ts +2 -0
  371. package/src/converter-cli.ts +370 -0
  372. package/src/deps-installer/deps-installer.ts +72 -0
  373. package/src/i3s-attributes-worker.ts +59 -0
  374. package/src/i3s-converter/helpers/batch-ids-extensions.ts +202 -0
  375. package/src/i3s-converter/helpers/coordinate-converter.ts +94 -33
  376. package/src/i3s-converter/helpers/create-scene-server-path.ts +29 -0
  377. package/src/i3s-converter/helpers/feature-attributes.ts +247 -0
  378. package/src/i3s-converter/helpers/geometry-attributes.ts +267 -0
  379. package/src/i3s-converter/helpers/geometry-converter.ts +1667 -0
  380. package/src/i3s-converter/helpers/gltf-attributes.ts +163 -0
  381. package/src/i3s-converter/helpers/load-3d-tiles.ts +68 -0
  382. package/src/i3s-converter/helpers/node-debug.ts +146 -0
  383. package/src/i3s-converter/helpers/node-index-document.ts +335 -0
  384. package/src/i3s-converter/helpers/node-pages.ts +344 -0
  385. package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +81 -0
  386. package/src/i3s-converter/helpers/tileset-traversal.ts +51 -0
  387. package/src/i3s-converter/i3s-converter.ts +650 -669
  388. package/src/i3s-converter/json-templates/geometry-definitions.ts +83 -0
  389. package/src/i3s-converter/json-templates/layers.ts +137 -0
  390. package/src/i3s-converter/json-templates/{metadata.js → metadata.ts} +2 -2
  391. package/src/i3s-converter/json-templates/{node.js → node.ts} +12 -12
  392. package/src/i3s-converter/json-templates/{scene-server.js → scene-server.ts} +2 -2
  393. package/src/i3s-converter/json-templates/{shared-resources.js → shared-resources.ts} +17 -17
  394. package/src/i3s-converter/types.ts +185 -0
  395. package/src/i3s-server/README.md +19 -0
  396. package/src/i3s-server/app.js +8 -1
  397. package/src/i3s-server/controllers/slpk-controller.js +38 -0
  398. package/src/i3s-server/routes/slpk-router.js +33 -0
  399. package/src/i3s-server/utils/create-scene-server.js +15 -0
  400. package/src/index.ts +0 -4
  401. package/src/lib/utils/{compress-util.js → compress-util.ts} +105 -18
  402. package/src/lib/utils/file-utils.ts +140 -0
  403. package/src/lib/utils/geometry-utils.ts +14 -0
  404. package/src/lib/utils/{lod-conversion-utils.js → lod-conversion-utils.ts} +31 -5
  405. package/src/lib/utils/queue.ts +17 -0
  406. package/src/lib/utils/write-queue.ts +110 -0
  407. package/src/pgm-loader.ts +3 -3
  408. package/src/workers/3d-tiles-attributes-worker.ts +6 -0
  409. package/src/workers/i3s-attributes-worker.ts +7 -0
  410. package/dist/3d-tiles-converter/3d-tiles-converter.js.map +0 -1
  411. package/dist/3d-tiles-converter/helpers/b3dm-converter.js.map +0 -1
  412. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +0 -1
  413. package/dist/3d-tiles-converter/helpers/texture-atlas.js.map +0 -1
  414. package/dist/3d-tiles-converter/json-templates/tileset.js.map +0 -1
  415. package/dist/bundle.js.map +0 -1
  416. package/dist/deps-installer/deps-installer.js.map +0 -1
  417. package/dist/i3s-converter/helpers/coordinate-converter.js.map +0 -1
  418. package/dist/i3s-converter/helpers/create-scene-server-path.js.map +0 -1
  419. package/dist/i3s-converter/helpers/geometry-attributes.js.map +0 -1
  420. package/dist/i3s-converter/helpers/geometry-converter.js.map +0 -1
  421. package/dist/i3s-converter/helpers/node-debug.js.map +0 -1
  422. package/dist/i3s-converter/helpers/node-pages.js.map +0 -1
  423. package/dist/i3s-converter/i3s-converter.js.map +0 -1
  424. package/dist/i3s-converter/json-templates/layers.js.map +0 -1
  425. package/dist/i3s-converter/json-templates/metadata.js.map +0 -1
  426. package/dist/i3s-converter/json-templates/node.js.map +0 -1
  427. package/dist/i3s-converter/json-templates/scene-server.js.map +0 -1
  428. package/dist/i3s-converter/json-templates/shared-resources.js.map +0 -1
  429. package/dist/i3s-converter/json-templates/store.js.map +0 -1
  430. package/dist/i3s-server/app.js.map +0 -1
  431. package/dist/i3s-server/controllers/index-controller.js.map +0 -1
  432. package/dist/i3s-server/routes/index.js.map +0 -1
  433. package/dist/index.js.map +0 -1
  434. package/dist/lib/geoid-height-model.d.ts +0 -41
  435. package/dist/lib/geoid-height-model.js +0 -140
  436. package/dist/lib/geoid-height-model.js.map +0 -1
  437. package/dist/lib/pgm-parser.d.ts +0 -14
  438. package/dist/lib/pgm-parser.js +0 -183
  439. package/dist/lib/pgm-parser.js.map +0 -1
  440. package/dist/lib/utils/compress-util.js.map +0 -1
  441. package/dist/lib/utils/compress-utils.d.ts +0 -53
  442. package/dist/lib/utils/file-utils.js.map +0 -1
  443. package/dist/lib/utils/lod-conversion-utils.js.map +0 -1
  444. package/dist/lib/utils/statistic-utills.js.map +0 -1
  445. package/dist/pgm-loader.js.map +0 -1
  446. package/src/3d-tiles-converter/helpers/b3dm-converter.d.ts +0 -23
  447. package/src/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +0 -16
  448. package/src/deps-installer/deps-installer.d.ts +0 -10
  449. package/src/deps-installer/deps-installer.js +0 -22
  450. package/src/i3s-converter/helpers/create-scene-server-path.js +0 -25
  451. package/src/i3s-converter/helpers/geometry-converter.d.ts +0 -40
  452. package/src/i3s-converter/helpers/geometry-converter.js +0 -915
  453. package/src/i3s-converter/helpers/node-pages.d.ts +0 -144
  454. package/src/i3s-converter/helpers/node-pages.js +0 -208
  455. package/src/i3s-converter/json-templates/layers.js +0 -199
  456. package/src/lib/geoid-height-model.d.ts +0 -41
  457. package/src/lib/geoid-height-model.js +0 -239
  458. package/src/lib/pgm-parser.d.ts +0 -14
  459. package/src/lib/pgm-parser.js +0 -179
  460. package/src/lib/utils/compress-utils.d.ts +0 -53
  461. package/src/lib/utils/file-utils.d.ts +0 -43
  462. package/src/lib/utils/file-utils.js +0 -38
  463. package/src/lib/utils/lod-conversion-utils.d.ts +0 -32
  464. /package/dist/{i3s-server → es5/i3s-server}/bin/www +0 -0
  465. /package/dist/{i3s-server → es5/i3s-server}/certs/cert.pem +0 -0
  466. /package/dist/{i3s-server → es5/i3s-server}/certs/key.pem +0 -0
  467. /package/src/i3s-converter/json-templates/{store.js → store.ts} +0 -0
  468. /package/src/lib/utils/{statistic-utills.js → statistic-utills.ts} +0 -0
@@ -0,0 +1,83 @@
1
+ import transform from 'json-map-transform';
2
+
3
+ const PLAIN_GEOMETRY_DEFINITION = () => ({
4
+ offset: {
5
+ default: 8
6
+ },
7
+ position: {
8
+ default: {
9
+ type: 'Float32',
10
+ component: 3
11
+ }
12
+ },
13
+ normal: {
14
+ default: {
15
+ type: 'Float32',
16
+ component: 3
17
+ }
18
+ },
19
+ uv0: {
20
+ path: 'hasTexture',
21
+ transform: (val) => (val && {type: 'Float32', component: 2}) || false,
22
+ omitValues: [false]
23
+ },
24
+ color: {
25
+ default: {
26
+ type: 'UInt8',
27
+ component: 4
28
+ }
29
+ },
30
+ uvRegion: {
31
+ path: 'hasUvRegions',
32
+ transform: (val) => (val && {type: 'UInt16', component: 4}) || false,
33
+ omitValues: [false]
34
+ },
35
+ featureId: {
36
+ default: {
37
+ binding: 'per-feature',
38
+ type: 'UInt64',
39
+ component: 1
40
+ }
41
+ },
42
+ faceRange: {
43
+ default: {
44
+ binding: 'per-feature',
45
+ type: 'UInt32',
46
+ component: 2
47
+ }
48
+ }
49
+ });
50
+
51
+ const COMPRESSED_GEOMETRY_DEFINITION = () => ({
52
+ 'compressedAttributes.encoding': {
53
+ default: 'draco'
54
+ },
55
+ 'compressedAttributes.attributes': {
56
+ path: 'geometryConfig',
57
+ transform: (val) => {
58
+ const result = ['position', 'normal'];
59
+ if (val.hasTexture) {
60
+ result.push('uv0');
61
+ }
62
+ result.push('color');
63
+ if (val.hasUvRegions) {
64
+ result.push('uv-region');
65
+ }
66
+ result.push('feature-index');
67
+ return result;
68
+ }
69
+ }
70
+ });
71
+
72
+ export const GEOMETRY_DEFINITION = () => ({
73
+ geometryBuffers: {
74
+ path: 'geometryConfig',
75
+ transform: (val) => {
76
+ const result = [transform(val, PLAIN_GEOMETRY_DEFINITION())];
77
+ if (val.draco) {
78
+ result.push(transform({geometryConfig: val}, COMPRESSED_GEOMETRY_DEFINITION()));
79
+ }
80
+ return result;
81
+ }
82
+ }
83
+ });
@@ -0,0 +1,137 @@
1
+ import transform from 'json-map-transform';
2
+ import {STORE} from './store';
3
+
4
+ const SPATIAL_REFERENCE = () => ({
5
+ wkid: {
6
+ path: 'wkid',
7
+ default: 4326
8
+ },
9
+ latestWkid: {
10
+ path: 'latestWkid',
11
+ default: 4326
12
+ },
13
+ vcsWkid: {
14
+ path: 'vcsWkid',
15
+ default: 5773
16
+ },
17
+ latestVcsWkid: {
18
+ path: 'latestVcsWkid',
19
+ default: 5773
20
+ }
21
+ });
22
+
23
+ const HEIGHT_MODEL_INFO = () => ({
24
+ heightModel: {
25
+ path: 'heightModel',
26
+ default: 'gravity_related_height'
27
+ },
28
+ vertCRS: {
29
+ path: 'vertCRS',
30
+ default: 'EGM96_Geoid'
31
+ },
32
+ heightUnit: {
33
+ path: 'heightUnit',
34
+ default: 'meter'
35
+ }
36
+ });
37
+
38
+ const NODE_PAGES = () => ({
39
+ nodesPerPage: {
40
+ path: 'nodesPerPage'
41
+ },
42
+ lodSelectionMetricType: {
43
+ path: 'lodSelectionMetricType',
44
+ default: 'maxScreenThresholdSQ'
45
+ }
46
+ });
47
+
48
+ const FULL_EXTENT = () => ({
49
+ xmin: {
50
+ path: 'xmin'
51
+ },
52
+ ymin: {
53
+ path: 'ymin'
54
+ },
55
+ xmax: {
56
+ path: 'xmax'
57
+ },
58
+ ymax: {
59
+ path: 'ymax'
60
+ },
61
+ zmin: {
62
+ path: 'zmin'
63
+ },
64
+ zmax: {
65
+ path: 'zmax'
66
+ }
67
+ });
68
+
69
+ export const LAYERS = () => ({
70
+ version: {
71
+ path: 'version',
72
+ transform: (val) => val.toUpperCase()
73
+ },
74
+ id: {
75
+ path: 'id',
76
+ default: 0
77
+ },
78
+ name: {
79
+ path: 'name'
80
+ },
81
+ href: {
82
+ path: 'href',
83
+ default: './layers/0'
84
+ },
85
+ layerType: {
86
+ path: 'layerType',
87
+ default: 'IntegratedMesh'
88
+ },
89
+ spatialReference: {
90
+ path: 'spatialReference',
91
+ transform: (val) => transform(val, SPATIAL_REFERENCE())
92
+ },
93
+ capabilities: {
94
+ path: 'capabilities',
95
+ default: ['View', 'Query']
96
+ },
97
+ store: {
98
+ path: 'store',
99
+ transform: (val) => transform(val, STORE)
100
+ },
101
+ fullExtent: {
102
+ path: 'fullExtent',
103
+ transform: (val) => transform(val, FULL_EXTENT())
104
+ },
105
+ heightModelInfo: {
106
+ path: 'heightModelInfo',
107
+ transform: (val) => transform(val, HEIGHT_MODEL_INFO())
108
+ },
109
+ nodePages: {
110
+ path: 'nodePages',
111
+ transform: (val) => transform(val, NODE_PAGES())
112
+ },
113
+ materialDefinitions: {
114
+ path: 'materialDefinitions',
115
+ default: []
116
+ },
117
+ textureSetDefinitions: {
118
+ path: 'textureSetDefinitions',
119
+ default: []
120
+ },
121
+ geometryDefinitions: {
122
+ path: 'geometryDefinitions',
123
+ default: []
124
+ },
125
+ attributeStorageInfo: {
126
+ path: 'attributeStorageInfo',
127
+ default: []
128
+ },
129
+ fields: {
130
+ path: 'fields',
131
+ default: []
132
+ },
133
+ popupInfo: {
134
+ path: 'popupInfo',
135
+ default: null
136
+ }
137
+ });
@@ -1,4 +1,4 @@
1
- export const METADATA = {
1
+ export const METADATA = () => ({
2
2
  folderPattern: {
3
3
  path: 'folderPattern',
4
4
  default: 'BASIC'
@@ -18,4 +18,4 @@ export const METADATA = {
18
18
  nodeCount: {
19
19
  path: 'nodeCount'
20
20
  }
21
- };
21
+ });
@@ -1,29 +1,29 @@
1
1
  import transform from 'json-map-transform';
2
2
 
3
- const COORDINATES = {
3
+ const COORDINATES = () => ({
4
4
  mbs: {
5
5
  path: 'mbs'
6
6
  },
7
7
  obb: {
8
8
  path: 'obb'
9
9
  }
10
- };
10
+ });
11
11
 
12
- const _href = {
12
+ const HREF = () => ({
13
13
  href: {
14
14
  path: 'href'
15
15
  }
16
- };
16
+ });
17
17
 
18
- const PARENT_NODE = {
18
+ const PARENT_NODE = () => ({
19
19
  id: {
20
20
  path: 'id'
21
21
  },
22
- ..._href,
23
- ...COORDINATES
24
- };
22
+ ...HREF(),
23
+ ...COORDINATES()
24
+ });
25
25
 
26
- export const NODE = {
26
+ export const NODE = () => ({
27
27
  version: {
28
28
  path: 'version'
29
29
  },
@@ -36,7 +36,7 @@ export const NODE = {
36
36
  level: {
37
37
  path: 'level'
38
38
  },
39
- ...COORDINATES,
39
+ ...COORDINATES(),
40
40
  lodSelection: {
41
41
  path: 'lodSelection',
42
42
  default: [
@@ -60,7 +60,7 @@ export const NODE = {
60
60
  },
61
61
  parentNode: {
62
62
  path: 'parentNode',
63
- transform: (val) => transform(val, PARENT_NODE),
63
+ transform: (val) => transform(val, PARENT_NODE()),
64
64
  default: null
65
65
  },
66
66
  sharedResource: {
@@ -83,4 +83,4 @@ export const NODE = {
83
83
  path: 'attributeData',
84
84
  default: null
85
85
  }
86
- };
86
+ });
@@ -1,4 +1,4 @@
1
- export const SCENE_SERVER_TEMPLATE = {
1
+ export const SCENE_SERVER = () => ({
2
2
  serviceItemId: {
3
3
  path: 'serviceItemId'
4
4
  },
@@ -24,4 +24,4 @@ export const SCENE_SERVER_TEMPLATE = {
24
24
  path: 'layers0',
25
25
  transform: (layers0) => [layers0]
26
26
  }
27
- };
27
+ });
@@ -1,6 +1,6 @@
1
1
  import transform from 'json-map-transform';
2
2
 
3
- const MATERIAL_DEFINITION_INFO_PARAMS = {
3
+ const MATERIAL_DEFINITION_INFO_PARAMS = () => ({
4
4
  renderMode: {
5
5
  path: 'renderMode',
6
6
  default: 'solid'
@@ -15,15 +15,15 @@ const MATERIAL_DEFINITION_INFO_PARAMS = {
15
15
  },
16
16
  ambient: {
17
17
  path: 'ambient',
18
- default: [1, 1, 1, 1]
18
+ default: [1, 1, 1]
19
19
  },
20
20
  diffuse: {
21
21
  path: 'diffuse',
22
- default: [1, 1, 1, 1]
22
+ default: [1, 1, 1]
23
23
  },
24
24
  specular: {
25
25
  path: 'specular',
26
- default: [0, 0, 0, 0]
26
+ default: [0, 0, 0]
27
27
  },
28
28
  useVertexColorAlpha: {
29
29
  path: 'useVertexColorAlpha',
@@ -37,9 +37,9 @@ const MATERIAL_DEFINITION_INFO_PARAMS = {
37
37
  path: 'vertexColors',
38
38
  default: true
39
39
  }
40
- };
40
+ });
41
41
 
42
- const MATERIAL_DEFINITION_INFO = {
42
+ const MATERIAL_DEFINITION_INFO = () => ({
43
43
  name: {
44
44
  path: 'name',
45
45
  default: 'standard'
@@ -51,11 +51,11 @@ const MATERIAL_DEFINITION_INFO = {
51
51
  params: {
52
52
  path: 'params',
53
53
  transform: (val, thisObject, originalObject) =>
54
- transform(originalObject, MATERIAL_DEFINITION_INFO_PARAMS)
54
+ transform(originalObject, MATERIAL_DEFINITION_INFO_PARAMS())
55
55
  }
56
- };
56
+ });
57
57
 
58
- const TEXTURE_DEFINITION_IMAGE = {
58
+ const TEXTURE_DEFINITION_IMAGE = () => ({
59
59
  id: {
60
60
  path: 'id'
61
61
  },
@@ -69,9 +69,9 @@ const TEXTURE_DEFINITION_IMAGE = {
69
69
  length: {
70
70
  path: 'length'
71
71
  }
72
- };
72
+ });
73
73
 
74
- const TEXTURE_DEFINITION_INFO = {
74
+ const TEXTURE_DEFINITION_INFO = () => ({
75
75
  encoding: {
76
76
  path: 'encoding'
77
77
  },
@@ -94,11 +94,11 @@ const TEXTURE_DEFINITION_INFO = {
94
94
  images: {
95
95
  path: 'images',
96
96
  transform: (val, thisObject, originalObject) =>
97
- val.map((image) => transform(image, TEXTURE_DEFINITION_IMAGE))
97
+ val.map((image) => transform(image, TEXTURE_DEFINITION_IMAGE()))
98
98
  }
99
- };
99
+ });
100
100
 
101
- export const SHARED_RESOURCES_TEMPLATE = {
101
+ export const SHARED_RESOURCES = () => ({
102
102
  materialDefinitions: {
103
103
  path: 'materialDefinitionInfos',
104
104
  transform: transfromMaterialDefinitions
@@ -107,14 +107,14 @@ export const SHARED_RESOURCES_TEMPLATE = {
107
107
  path: 'textureDefinitionInfos',
108
108
  transform: transfromTextureDefinitions
109
109
  }
110
- };
110
+ });
111
111
 
112
112
  function transfromMaterialDefinitions(materialDefinitionInfos, thisObject, originalObject) {
113
113
  const result = {};
114
114
  for (const [index, materialDefinitionInfo] of materialDefinitionInfos.entries()) {
115
115
  result[`Mat${originalObject.nodePath}${index}`] = transform(
116
116
  materialDefinitionInfo,
117
- MATERIAL_DEFINITION_INFO
117
+ MATERIAL_DEFINITION_INFO()
118
118
  );
119
119
  }
120
120
  return result;
@@ -128,7 +128,7 @@ function transfromTextureDefinitions(textureDefinitionInfos, thisObject, origina
128
128
  for (const [index, textureDefinitionInfo] of textureDefinitionInfos.entries()) {
129
129
  const imageIndex = `${originalObject.nodePath}${index}`;
130
130
  textureDefinitionInfo.imageIndex = imageIndex;
131
- result[imageIndex] = transform(textureDefinitionInfo, TEXTURE_DEFINITION_INFO);
131
+ result[imageIndex] = transform(textureDefinitionInfo, TEXTURE_DEFINITION_INFO());
132
132
  }
133
133
  return result;
134
134
  }
@@ -0,0 +1,185 @@
1
+ import {GLTFImagePostprocessed} from '@loaders.gl/gltf';
2
+ import {
3
+ BoundingVolumes,
4
+ I3SMaterialDefinition,
5
+ MaterialDefinitionInfo,
6
+ TextureDefinitionInfo
7
+ } from '@loaders.gl/i3s';
8
+
9
+ /** Converted resources for specific node */
10
+ export type I3SConvertedResources = {
11
+ /**
12
+ * Node id
13
+ */
14
+ nodeId?: number;
15
+ /** Non-compressed geometry buffer that have structure met
16
+ * https://github.com/Esri/i3s-spec/blob/master/docs/1.8/defaultGeometrySchema.cmn.md
17
+ * (Geometry buffer)
18
+ */
19
+ geometry: ArrayBuffer | null;
20
+ /**
21
+ * Draco compressed geometry
22
+ */
23
+ compressedGeometry?: Promise<ArrayBuffer> | null;
24
+ /**
25
+ * Texture image content
26
+ */
27
+ texture: any | null;
28
+ /**
29
+ * If the resource has uvRegions geometry attribute
30
+ */
31
+ hasUvRegions: boolean;
32
+ /**
33
+ * Shared resources built from GLTF material
34
+ */
35
+ sharedResources: SharedResourcesArrays | null;
36
+ /**
37
+ * Material definition of the node
38
+ */
39
+ meshMaterial?: I3SMaterialDefinition | null;
40
+ /**
41
+ * Number of vertices in the node
42
+ */
43
+ vertexCount: number | null;
44
+ /**
45
+ * Feature attributes contents
46
+ */
47
+ attributes: ArrayBuffer[] | null;
48
+ /**
49
+ * Number of features in the node
50
+ */
51
+ featureCount: number | null;
52
+ /**
53
+ * MBS and/or OBB bounding volumes of the node
54
+ */
55
+ boundingVolumes: BoundingVolumes | null;
56
+ };
57
+
58
+ /**
59
+ * Geometry and feature attributes converted from GLTF primitives
60
+ */
61
+ export type ConvertedAttributes = {
62
+ /** POSITION attribute value */
63
+ positions: Float32Array;
64
+ /** NORMAL attribute value */
65
+ normals: Float32Array;
66
+ /** TEXCOORD_0 attribute value */
67
+ texCoords: Float32Array;
68
+ /** COLOR_0 attribute value */
69
+ colors: Uint8Array;
70
+ /** uvRegion attribute for a texture atlas */
71
+ uvRegions: Uint16Array;
72
+ /** Feature indices grouped by ...
73
+ * converted from "batch ids" of GLTF
74
+ */
75
+ featureIndicesGroups?: number[][];
76
+ /** Feature indices converted from "batch ids" */
77
+ featureIndices: number[];
78
+ /**
79
+ * MBS and/or OBB bounding volumes of the node
80
+ */
81
+ boundingVolumes: null | BoundingVolumes;
82
+ /** merged materials data */
83
+ mergedMaterials: MergedMaterial[];
84
+ };
85
+
86
+ /** Postprocessed geometry and feature attributes
87
+ * https://github.com/Esri/i3s-spec/blob/master/docs/1.8/defaultGeometrySchema.cmn.md
88
+ */
89
+ export type GeometryAttributes = {
90
+ /** POSITION attribute value */
91
+ positions: Float32Array;
92
+ /** NORMAL attribute value */
93
+ normals: Float32Array;
94
+ /** TEXCOORD_0 attribute value */
95
+ texCoords: Float32Array;
96
+ /** COLOR_0 attribute value */
97
+ colors: Uint8Array;
98
+ /** uvRegion attribute for a texture atlas */
99
+ uvRegions: Uint16Array;
100
+ /** faceRanges attribute value */
101
+ faceRange: Uint32Array;
102
+ /** feature Ids attribute value */
103
+ featureIds: number[];
104
+ /** number of features in the node */
105
+ featureCount: number;
106
+ };
107
+
108
+ /** Geometry attributes specific for the particular feature */
109
+ export type GroupedByFeatureIdAttributes = {
110
+ /** Feature Id */
111
+ featureId: number;
112
+ /** POSITION attribute value */
113
+ positions: Float32Array;
114
+ /** NORMAL attribute value */
115
+ normals: Float32Array;
116
+ /** COLOR_0 attribute value */
117
+ colors: Uint8Array;
118
+ /** uvRegion attribute for a texture atlas */
119
+ uvRegions: Uint16Array;
120
+ /** TEXCOORD_0 attribute value */
121
+ texCoords: Float32Array;
122
+ };
123
+
124
+ /** Shared resources made from GLTF material */
125
+ export type SharedResourcesArrays = {
126
+ /** material definitions list https://github.com/Esri/i3s-spec/blob/master/docs/1.8/materialDefinitionInfo.cmn.md */
127
+ materialDefinitionInfos?: MaterialDefinitionInfo[];
128
+ /** texture definitions list https://github.com/Esri/i3s-spec/blob/master/docs/1.8/textureDefinitionInfo.cmn.md*/
129
+ textureDefinitionInfos?: TextureDefinitionInfo[];
130
+ /** node id to make unique SharedResource ids */
131
+ nodePath?: string;
132
+ };
133
+
134
+ /** I3S material definition and texture content taken from GLTF material */
135
+ export type I3SMaterialWithTexture = {
136
+ /** Material definition https://github.com/Esri/i3s-spec/blob/master/docs/1.8/materialDefinitions.cmn.md */
137
+ material: I3SMaterialDefinition;
138
+ /** Texture content (image) */
139
+ texture?: GLTFImagePostprocessed;
140
+ /** Metadata of all merged materials */
141
+ mergedMaterials: MergedMaterial[];
142
+ };
143
+
144
+ /** Metadata of some original texture */
145
+ export type MergedMaterial = {
146
+ /** Gltf material Id */
147
+ originalMaterialId: string;
148
+ /** Original texture size */
149
+ textureSize?: {
150
+ width: number;
151
+ height: number;
152
+ };
153
+ /** Uint16Array of 4 elements https://github.com/Esri/i3s-spec/blob/master/docs/1.7/geometryUVRegion.cmn.md */
154
+ uvRegion?: Uint16Array;
155
+ };
156
+
157
+ export type TypedArrayConstructor =
158
+ | Uint8ArrayConstructor
159
+ | Int8ArrayConstructor
160
+ | Uint16ArrayConstructor
161
+ | Int16ArrayConstructor
162
+ | Int32ArrayConstructor
163
+ | Uint32ArrayConstructor
164
+ | Float32ArrayConstructor
165
+ | Float64ArrayConstructor;
166
+
167
+ /**
168
+ * glTF primitive modes (mesh topology types)
169
+ * @see https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_mesh_primitive_mode
170
+ */
171
+ export enum GltfPrimitiveModeString {
172
+ POINTS = 'POINTS',
173
+ LINES = 'LINES',
174
+ LINE_LOOP = 'LINE_LOOP',
175
+ LINE_STRIP = 'LINE_STRIP',
176
+ TRIANGLES = 'TRIANGLES',
177
+ TRIANGLE_STRIP = 'TRIANGLE_STRIP',
178
+ TRIANGLE_FAN = 'TRIANGLE_FAN'
179
+ }
180
+
181
+ /** Preprocessed data gathered from child tiles binary content */
182
+ export type PreprocessData = {
183
+ /** Mesh topology types used in gltf primitives of the tileset */
184
+ meshTopologyTypes: Set<GltfPrimitiveModeString>;
185
+ };
@@ -0,0 +1,19 @@
1
+ # I3S server
2
+
3
+ The http server run on NodeJS ExpressJS framework.
4
+ The server provides I3S Rest endpoints per specification https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3Dobject_ReadMe.md#http-api-overview-17
5
+
6
+ ## Usage
7
+
8
+ ### Serve 3DTiles to I3S converted dataset
9
+
10
+ - Convert data set from 3DTiles to I3S without `--slpk` option
11
+ - Serve output folder `I3sLayerPath="./data/BatchedTextured" DEBUG=i3s-server:* npx i3s-server`
12
+
13
+ ### Serve SLPK
14
+
15
+ - Serve slpk file `I3sLayerPath="../datasets/Rancho_Mesh_mesh_v17_1.slpk" DEBUG=i3s-server:* npx i3s-server`
16
+
17
+ ## ENV variables
18
+
19
+ - `I3sLayerPath` - path to converted data or SLPK file.
@@ -4,7 +4,9 @@ const logger = require('morgan');
4
4
  const cors = require('cors');
5
5
 
6
6
  const indexRouter = require('./routes/index');
7
+ const {sceneServerRouter, router} = require('./routes/slpk-router');
7
8
 
9
+ const I3S_LAYER_PATH = process.env.I3sLayerPath || ''; // eslint-disable-line no-process-env, no-undef
8
10
  const app = express();
9
11
 
10
12
  app.use(logger('dev'));
@@ -13,6 +15,11 @@ app.use(express.urlencoded({extended: false}));
13
15
  app.use(express.static(path.join(__dirname, 'public')));
14
16
  app.use(cors());
15
17
 
16
- app.use('/', indexRouter);
18
+ if (/\.slpk$/.test(I3S_LAYER_PATH)) {
19
+ app.use('/SceneServer/layers/0', router);
20
+ app.use('/SceneServer', sceneServerRouter);
21
+ } else {
22
+ app.use('/', indexRouter);
23
+ }
17
24
 
18
25
  module.exports = app;
@@ -0,0 +1,38 @@
1
+ require('@loaders.gl/polyfills');
2
+ const {fetchFile, parse} = require('@loaders.gl/core');
3
+ const {SLPKLoader} = require('@loaders.gl/i3s');
4
+ const path = require('path');
5
+
6
+ let slpkArchive;
7
+
8
+ const loadArchive = async (fullLayerPath) => {
9
+ slpkArchive = await (await fetchFile(fullLayerPath)).arrayBuffer();
10
+ };
11
+
12
+ const I3S_LAYER_PATH = process.env.I3sLayerPath || ''; // eslint-disable-line no-process-env, no-undef
13
+ const FULL_LAYER_PATH = path.join(process.cwd(), I3S_LAYER_PATH); // eslint-disable-line no-undef
14
+
15
+ loadArchive(FULL_LAYER_PATH);
16
+
17
+ async function getFileByUrl(url) {
18
+ const trimmedPath = /^\/?(.*)\/?$/.exec(url);
19
+ let uncompressedFile;
20
+ if (trimmedPath) {
21
+ try {
22
+ uncompressedFile = Buffer.from(
23
+ await parse(slpkArchive, SLPKLoader, {
24
+ slpk: {
25
+ path: trimmedPath[1],
26
+ pathMode: 'http'
27
+ }
28
+ })
29
+ );
30
+ } catch (e) {}
31
+ }
32
+ return uncompressedFile;
33
+ }
34
+
35
+ module.exports = {
36
+ loadArchive,
37
+ getFileByUrl
38
+ };