@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,293 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+ var _core = require("@loaders.gl/core");
14
+ var _gltf = require("@loaders.gl/gltf");
15
+ var _dTiles = require("@loaders.gl/3d-tiles");
16
+ var _core2 = require("@math.gl/core");
17
+ var _geospatial = require("@math.gl/geospatial");
18
+ var _textureAtlas = require("./texture-atlas");
19
+ var _geometryUtils = require("../../lib/utils/geometry-utils");
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22
+ var Z_UP_TO_Y_UP_MATRIX = new _core2.Matrix4([1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1]);
23
+ var scratchVector = new _core2.Vector3();
24
+ var B3dmConverter = function () {
25
+ function B3dmConverter() {
26
+ (0, _classCallCheck2.default)(this, B3dmConverter);
27
+ (0, _defineProperty2.default)(this, "rtcCenter", void 0);
28
+ (0, _defineProperty2.default)(this, "i3sTile", void 0);
29
+ }
30
+ (0, _createClass2.default)(B3dmConverter, [{
31
+ key: "convert",
32
+ value: function () {
33
+ var _convert = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(i3sAttributesData) {
34
+ var featureAttributes,
35
+ gltf,
36
+ b3dm,
37
+ _args = arguments;
38
+ return _regenerator.default.wrap(function _callee$(_context) {
39
+ while (1) switch (_context.prev = _context.next) {
40
+ case 0:
41
+ featureAttributes = _args.length > 1 && _args[1] !== undefined ? _args[1] : null;
42
+ _context.next = 3;
43
+ return this.buildGltf(i3sAttributesData, featureAttributes);
44
+ case 3:
45
+ gltf = _context.sent;
46
+ b3dm = (0, _core.encodeSync)({
47
+ gltfEncoded: new Uint8Array(gltf),
48
+ type: 'b3dm',
49
+ featuresLength: this._getFeaturesLength(featureAttributes),
50
+ batchTable: featureAttributes
51
+ }, _dTiles.Tile3DWriter);
52
+ return _context.abrupt("return", b3dm);
53
+ case 6:
54
+ case "end":
55
+ return _context.stop();
56
+ }
57
+ }, _callee, this);
58
+ }));
59
+ function convert(_x) {
60
+ return _convert.apply(this, arguments);
61
+ }
62
+ return convert;
63
+ }()
64
+ }, {
65
+ key: "buildGltf",
66
+ value: function () {
67
+ var _buildGltf = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(i3sAttributesData, featureAttributes) {
68
+ var tileContent, textureFormat, material, attributes, originalIndices, cartesianOrigin, cartographicOrigin, modelMatrix, gltfBuilder, textureIndex, pbrMaterialInfo, materialIndex, positions, positionsValue, indices, meshIndex, transformMatrix, nodeIndex, sceneIndex, gltfBuffer;
69
+ return _regenerator.default.wrap(function _callee2$(_context2) {
70
+ while (1) switch (_context2.prev = _context2.next) {
71
+ case 0:
72
+ tileContent = i3sAttributesData.tileContent, textureFormat = i3sAttributesData.textureFormat;
73
+ material = tileContent.material, attributes = tileContent.attributes, originalIndices = tileContent.indices, cartesianOrigin = tileContent.cartesianOrigin, cartographicOrigin = tileContent.cartographicOrigin, modelMatrix = tileContent.modelMatrix;
74
+ gltfBuilder = new _gltf.GLTFScenegraph();
75
+ _context2.next = 5;
76
+ return this._addI3sTextureToGltf(tileContent, textureFormat, gltfBuilder);
77
+ case 5:
78
+ textureIndex = _context2.sent;
79
+ pbrMaterialInfo = this._convertI3sMaterialToGltfMaterial(material, textureIndex);
80
+ materialIndex = gltfBuilder.addMaterial(pbrMaterialInfo);
81
+ positions = attributes.positions;
82
+ positionsValue = positions.value;
83
+ if (attributes.uvRegions && attributes.texCoords) {
84
+ attributes.texCoords.value = (0, _textureAtlas.convertTextureAtlas)(attributes.texCoords.value, attributes.uvRegions.value);
85
+ }
86
+ attributes.positions.value = this._normalizePositions(positionsValue, cartesianOrigin, cartographicOrigin, modelMatrix);
87
+ this._createBatchIds(tileContent, featureAttributes);
88
+ if (attributes.normals && !this._checkNormals(attributes.normals.value)) {
89
+ delete attributes.normals;
90
+ }
91
+ indices = originalIndices || (0, _geometryUtils.generateSyntheticIndices)(positionsValue.length / positions.size);
92
+ meshIndex = gltfBuilder.addMesh({
93
+ attributes: attributes,
94
+ indices: indices,
95
+ material: materialIndex,
96
+ mode: 4
97
+ });
98
+ transformMatrix = this._generateTransformMatrix(cartesianOrigin);
99
+ nodeIndex = gltfBuilder.addNode({
100
+ meshIndex: meshIndex,
101
+ matrix: transformMatrix
102
+ });
103
+ sceneIndex = gltfBuilder.addScene({
104
+ nodeIndices: [nodeIndex]
105
+ });
106
+ gltfBuilder.setDefaultScene(sceneIndex);
107
+ gltfBuilder.createBinaryChunk();
108
+ gltfBuffer = (0, _core.encodeSync)(gltfBuilder.gltf, _gltf.GLTFWriter);
109
+ return _context2.abrupt("return", gltfBuffer);
110
+ case 23:
111
+ case "end":
112
+ return _context2.stop();
113
+ }
114
+ }, _callee2, this);
115
+ }));
116
+ function buildGltf(_x2, _x3) {
117
+ return _buildGltf.apply(this, arguments);
118
+ }
119
+ return buildGltf;
120
+ }()
121
+ }, {
122
+ key: "_addI3sTextureToGltf",
123
+ value: function () {
124
+ var _addI3sTextureToGltf2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(tileContent, textureFormat, gltfBuilder) {
125
+ var texture, material, attributes, textureIndex, selectedTexture, mimeType, imageIndex;
126
+ return _regenerator.default.wrap(function _callee3$(_context3) {
127
+ while (1) switch (_context3.prev = _context3.next) {
128
+ case 0:
129
+ texture = tileContent.texture, material = tileContent.material, attributes = tileContent.attributes;
130
+ textureIndex = null;
131
+ selectedTexture = texture;
132
+ if (!texture && material) {
133
+ selectedTexture = material.pbrMetallicRoughness && material.pbrMetallicRoughness.baseColorTexture && material.pbrMetallicRoughness.baseColorTexture.texture.source.image;
134
+ }
135
+ if (selectedTexture) {
136
+ mimeType = this._deduceMimeTypeFromFormat(textureFormat);
137
+ imageIndex = gltfBuilder.addImage(selectedTexture, mimeType);
138
+ textureIndex = gltfBuilder.addTexture({
139
+ imageIndex: imageIndex
140
+ });
141
+ delete attributes.colors;
142
+ }
143
+ return _context3.abrupt("return", textureIndex);
144
+ case 6:
145
+ case "end":
146
+ return _context3.stop();
147
+ }
148
+ }, _callee3, this);
149
+ }));
150
+ function _addI3sTextureToGltf(_x4, _x5, _x6) {
151
+ return _addI3sTextureToGltf2.apply(this, arguments);
152
+ }
153
+ return _addI3sTextureToGltf;
154
+ }()
155
+ }, {
156
+ key: "_normalizePositions",
157
+ value: function _normalizePositions(positionsValue, cartesianOrigin, cartographicOrigin, modelMatrix) {
158
+ var newPositionsValue = new Float32Array(positionsValue.length);
159
+ for (var index = 0; index < positionsValue.length; index += 3) {
160
+ var vertex = positionsValue.subarray(index, index + 3);
161
+ var cartesianOriginVector = new _core2.Vector3(cartesianOrigin);
162
+ var vertexVector = new _core2.Vector3(Array.from(vertex)).transform(modelMatrix).add(cartographicOrigin);
163
+ _geospatial.Ellipsoid.WGS84.cartographicToCartesian(vertexVector, scratchVector);
164
+ vertexVector = scratchVector.subtract(cartesianOriginVector);
165
+ newPositionsValue.set(vertexVector, index);
166
+ }
167
+ return newPositionsValue;
168
+ }
169
+ }, {
170
+ key: "_generateTransformMatrix",
171
+ value: function _generateTransformMatrix(cartesianOrigin) {
172
+ var translateOriginMatrix = new _core2.Matrix4().translate(cartesianOrigin);
173
+ var result = translateOriginMatrix.multiplyLeft(Z_UP_TO_Y_UP_MATRIX);
174
+ return result;
175
+ }
176
+ }, {
177
+ key: "_createBatchIds",
178
+ value: function _createBatchIds(i3sContent, featureAttributes) {
179
+ var featureIds = i3sContent.featureIds;
180
+ var _ref = featureAttributes || {},
181
+ objectIds = _ref.OBJECTID;
182
+ if (!featureIds || !objectIds) {
183
+ return;
184
+ }
185
+ for (var i = 0; i < featureIds.length; i++) {
186
+ var featureId = featureIds[i];
187
+ var batchId = objectIds.indexOf(featureId);
188
+ featureIds[i] = batchId;
189
+ }
190
+ i3sContent.attributes._BATCHID = {
191
+ size: 1,
192
+ byteOffset: 0,
193
+ value: featureIds
194
+ };
195
+ }
196
+ }, {
197
+ key: "_deduceMimeTypeFromFormat",
198
+ value: function _deduceMimeTypeFromFormat(format) {
199
+ switch (format) {
200
+ case 'jpg':
201
+ return 'image/jpeg';
202
+ case 'png':
203
+ return 'image/png';
204
+ case 'ktx2':
205
+ return 'image/ktx2';
206
+ default:
207
+ console.warn("Unexpected texture format in I3S: ".concat(format));
208
+ return 'image/jpeg';
209
+ }
210
+ }
211
+ }, {
212
+ key: "_convertI3sMaterialToGltfMaterial",
213
+ value: function _convertI3sMaterialToGltfMaterial(material, textureIndex) {
214
+ var isTextureIndexExists = textureIndex !== null;
215
+ if (!material) {
216
+ material = {
217
+ alphaMode: 'OPAQUE',
218
+ doubleSided: false,
219
+ pbrMetallicRoughness: {
220
+ metallicFactor: 0,
221
+ roughnessFactor: 1
222
+ }
223
+ };
224
+ if (isTextureIndexExists) {
225
+ material.pbrMetallicRoughness.baseColorTexture = {
226
+ index: textureIndex,
227
+ texCoord: 0
228
+ };
229
+ } else {
230
+ material.pbrMetallicRoughness.baseColorFactor = [1, 1, 1, 1];
231
+ }
232
+ return material;
233
+ }
234
+ if (textureIndex !== null) {
235
+ material = this._setGltfTexture(material, textureIndex);
236
+ }
237
+ return material;
238
+ }
239
+ }, {
240
+ key: "_setGltfTexture",
241
+ value: function _setGltfTexture(materialDefinition, textureIndex) {
242
+ var material = _objectSpread(_objectSpread({}, materialDefinition), {}, {
243
+ pbrMetallicRoughness: _objectSpread({}, materialDefinition.pbrMetallicRoughness)
244
+ });
245
+ if (materialDefinition.pbrMetallicRoughness && materialDefinition.pbrMetallicRoughness.baseColorTexture) {
246
+ material.pbrMetallicRoughness.baseColorTexture = {
247
+ index: textureIndex,
248
+ texCoord: 0
249
+ };
250
+ } else if (materialDefinition.emissiveTexture) {
251
+ material.emissiveTexture = {
252
+ index: textureIndex,
253
+ texCoord: 0
254
+ };
255
+ } else if (materialDefinition.pbrMetallicRoughness && materialDefinition.pbrMetallicRoughness.metallicRoughnessTexture) {
256
+ material.pbrMetallicRoughness.metallicRoughnessTexture = {
257
+ index: textureIndex,
258
+ texCoord: 0
259
+ };
260
+ } else if (materialDefinition.normalTexture) {
261
+ material.normalTexture = {
262
+ index: textureIndex,
263
+ texCoord: 0
264
+ };
265
+ } else if (materialDefinition.occlusionTexture) {
266
+ material.occlusionTexture = {
267
+ index: textureIndex,
268
+ texCoord: 0
269
+ };
270
+ }
271
+ return material;
272
+ }
273
+ }, {
274
+ key: "_getFeaturesLength",
275
+ value: function _getFeaturesLength(attributes) {
276
+ if (!attributes) {
277
+ return 0;
278
+ }
279
+ var firstKey = Object.keys(attributes)[0];
280
+ return firstKey ? attributes[firstKey].length : 0;
281
+ }
282
+ }, {
283
+ key: "_checkNormals",
284
+ value: function _checkNormals(normals) {
285
+ return normals.find(function (value) {
286
+ return value;
287
+ });
288
+ }
289
+ }]);
290
+ return B3dmConverter;
291
+ }();
292
+ exports.default = B3dmConverter;
293
+ //# sourceMappingURL=b3dm-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"b3dm-converter.js","names":["_core","require","_gltf","_dTiles","_core2","_geospatial","_textureAtlas","_geometryUtils","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","Z_UP_TO_Y_UP_MATRIX","Matrix4","scratchVector","Vector3","B3dmConverter","_classCallCheck2","_createClass2","value","_convert","_asyncToGenerator2","_regenerator","mark","_callee","i3sAttributesData","featureAttributes","gltf","b3dm","_args","wrap","_callee$","_context","prev","next","undefined","buildGltf","sent","encodeSync","gltfEncoded","Uint8Array","type","featuresLength","_getFeaturesLength","batchTable","Tile3DWriter","abrupt","stop","convert","_x","_buildGltf","_callee2","tileContent","textureFormat","material","attributes","originalIndices","cartesianOrigin","cartographicOrigin","modelMatrix","gltfBuilder","textureIndex","pbrMaterialInfo","materialIndex","positions","positionsValue","indices","meshIndex","transformMatrix","nodeIndex","sceneIndex","gltfBuffer","_callee2$","_context2","GLTFScenegraph","_addI3sTextureToGltf","_convertI3sMaterialToGltfMaterial","addMaterial","uvRegions","texCoords","convertTextureAtlas","_normalizePositions","_createBatchIds","normals","_checkNormals","generateSyntheticIndices","size","addMesh","mode","_generateTransformMatrix","addNode","matrix","addScene","nodeIndices","setDefaultScene","createBinaryChunk","GLTFWriter","_x2","_x3","_addI3sTextureToGltf2","_callee3","texture","selectedTexture","mimeType","imageIndex","_callee3$","_context3","pbrMetallicRoughness","baseColorTexture","image","_deduceMimeTypeFromFormat","addImage","addTexture","colors","_x4","_x5","_x6","newPositionsValue","Float32Array","index","vertex","subarray","cartesianOriginVector","vertexVector","Array","from","transform","add","Ellipsoid","WGS84","cartographicToCartesian","subtract","set","translateOriginMatrix","translate","result","multiplyLeft","i3sContent","featureIds","_ref","objectIds","OBJECTID","featureId","batchId","indexOf","_BATCHID","byteOffset","format","console","warn","concat","isTextureIndexExists","alphaMode","doubleSided","metallicFactor","roughnessFactor","texCoord","baseColorFactor","_setGltfTexture","materialDefinition","emissiveTexture","metallicRoughnessTexture","normalTexture","occlusionTexture","firstKey","find","exports"],"sources":["../../../../src/3d-tiles-converter/helpers/b3dm-converter.ts"],"sourcesContent":["import type {I3SAttributesData} from '../../3d-tiles-attributes-worker';\n\nimport {encodeSync} from '@loaders.gl/core';\nimport {GLTFScenegraph, GLTFWriter} from '@loaders.gl/gltf';\nimport {Tile3DWriter} from '@loaders.gl/3d-tiles';\nimport {Matrix4, Vector3} from '@math.gl/core';\nimport {Ellipsoid} from '@math.gl/geospatial';\nimport {convertTextureAtlas} from './texture-atlas';\nimport {generateSyntheticIndices} from '../../lib/utils/geometry-utils';\n\nconst Z_UP_TO_Y_UP_MATRIX = new Matrix4([1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1]);\nconst scratchVector = new Vector3();\n\n/**\n * Converts content of an I3S node to *.b3dm's file content\n */\nexport default class B3dmConverter {\n // @ts-expect-error\n rtcCenter: Float32Array;\n i3sTile: any;\n\n /**\n * The starter of content conversion\n * @param i3sTile - Tile3D instance for I3S node\n * @returns - encoded content\n */\n async convert(\n i3sAttributesData: I3SAttributesData,\n featureAttributes: any = null\n ): Promise<ArrayBuffer> {\n const gltf = await this.buildGltf(i3sAttributesData, featureAttributes);\n const b3dm = encodeSync(\n {\n gltfEncoded: new Uint8Array(gltf),\n type: 'b3dm',\n featuresLength: this._getFeaturesLength(featureAttributes),\n batchTable: featureAttributes\n },\n Tile3DWriter\n );\n return b3dm;\n }\n\n /**\n * Build and encode gltf\n * @param i3sTile - Tile3D instance for I3S node\n * @returns - encoded glb content\n */\n async buildGltf(\n i3sAttributesData: I3SAttributesData,\n featureAttributes: any\n ): Promise<ArrayBuffer> {\n const {tileContent, textureFormat} = i3sAttributesData;\n const {\n material,\n attributes,\n indices: originalIndices,\n cartesianOrigin,\n cartographicOrigin,\n modelMatrix\n } = tileContent;\n const gltfBuilder = new GLTFScenegraph();\n\n const textureIndex = await this._addI3sTextureToGltf(tileContent, textureFormat, gltfBuilder);\n const pbrMaterialInfo = this._convertI3sMaterialToGltfMaterial(material, textureIndex);\n const materialIndex = gltfBuilder.addMaterial(pbrMaterialInfo);\n\n const positions = attributes.positions;\n const positionsValue = positions.value;\n\n if (attributes.uvRegions && attributes.texCoords) {\n attributes.texCoords.value = convertTextureAtlas(\n attributes.texCoords.value,\n attributes.uvRegions.value\n );\n }\n\n attributes.positions.value = this._normalizePositions(\n positionsValue,\n cartesianOrigin,\n cartographicOrigin,\n modelMatrix\n );\n this._createBatchIds(tileContent, featureAttributes);\n if (attributes.normals && !this._checkNormals(attributes.normals.value)) {\n delete attributes.normals;\n }\n const indices =\n originalIndices || generateSyntheticIndices(positionsValue.length / positions.size);\n const meshIndex = gltfBuilder.addMesh({\n attributes,\n indices,\n material: materialIndex,\n mode: 4\n });\n const transformMatrix = this._generateTransformMatrix(cartesianOrigin);\n const nodeIndex = gltfBuilder.addNode({meshIndex, matrix: transformMatrix});\n const sceneIndex = gltfBuilder.addScene({nodeIndices: [nodeIndex]});\n gltfBuilder.setDefaultScene(sceneIndex);\n\n gltfBuilder.createBinaryChunk();\n\n const gltfBuffer = encodeSync(gltfBuilder.gltf, GLTFWriter);\n\n return gltfBuffer;\n }\n\n /**\n * Update gltfBuilder with texture from I3S tile\n * @param {object} i3sTile - Tile3D object\n * @param {GLTFScenegraph} gltfBuilder - gltfScenegraph instance to construct GLTF\n * @returns {Promise<number | null>} - GLTF texture index\n */\n async _addI3sTextureToGltf(tileContent, textureFormat, gltfBuilder) {\n const {texture, material, attributes} = tileContent;\n let textureIndex = null;\n let selectedTexture = texture;\n if (!texture && material) {\n selectedTexture =\n material.pbrMetallicRoughness &&\n material.pbrMetallicRoughness.baseColorTexture &&\n material.pbrMetallicRoughness.baseColorTexture.texture.source.image;\n }\n if (selectedTexture) {\n const mimeType = this._deduceMimeTypeFromFormat(textureFormat);\n const imageIndex = gltfBuilder.addImage(selectedTexture, mimeType);\n textureIndex = gltfBuilder.addTexture({imageIndex});\n delete attributes.colors;\n }\n return textureIndex;\n }\n\n /**\n * Generate a positions array which is correct for 3DTiles/GLTF format\n * @param {Float64Array} positionsValue - the input geometry positions array\n * @param {number[]} cartesianOrigin - the tile center in the cartesian coordinate system\n * @param {number[]} cartographicOrigin - the tile center in the cartographic coordinate system\n * @param {number[]} modelMatrix - the model matrix of geometry\n * @returns {Float32Array} - the output geometry positions array\n */\n _normalizePositions(positionsValue, cartesianOrigin, cartographicOrigin, modelMatrix) {\n const newPositionsValue = new Float32Array(positionsValue.length);\n for (let index = 0; index < positionsValue.length; index += 3) {\n const vertex = positionsValue.subarray(index, index + 3);\n const cartesianOriginVector = new Vector3(cartesianOrigin);\n let vertexVector = new Vector3(Array.from(vertex))\n .transform(modelMatrix)\n .add(cartographicOrigin);\n Ellipsoid.WGS84.cartographicToCartesian(vertexVector, scratchVector);\n vertexVector = scratchVector.subtract(cartesianOriginVector);\n newPositionsValue.set(vertexVector, index);\n }\n return newPositionsValue;\n }\n\n /**\n * Generate the transformation matrix for GLTF node:\n * https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#reference-node\n * 1. Create the translate transformation from cartesianOrigin (the positions array stores offsets from this cartesianOrigin)\n * 2. Create the rotation transformation to rotate model from z-up coordinates (I3S specific) to y-up coordinates (GLTF specific)\n * @param {number[]} cartesianOrigin - the tile center in the cartesian coordinate system\n * @returns {Matrix4} - an array of 16 numbers (4x4 matrix)\n */\n _generateTransformMatrix(cartesianOrigin) {\n const translateOriginMatrix = new Matrix4().translate(cartesianOrigin);\n const result = translateOriginMatrix.multiplyLeft(Z_UP_TO_Y_UP_MATRIX);\n return result;\n }\n\n /**\n * Create _BATCHID attribute\n * @param {Object} i3sContent - the source object\n * @returns {void}\n */\n _createBatchIds(i3sContent, featureAttributes) {\n const {featureIds} = i3sContent;\n const {OBJECTID: objectIds} = featureAttributes || {};\n if (!featureIds || !objectIds) {\n return;\n }\n\n for (let i = 0; i < featureIds.length; i++) {\n const featureId = featureIds[i];\n const batchId = objectIds.indexOf(featureId);\n featureIds[i] = batchId;\n }\n\n i3sContent.attributes._BATCHID = {\n size: 1,\n byteOffset: 0,\n value: featureIds\n };\n }\n\n /**\n * Deduce mime type by format from `textureSetDefinition.formats[0].format`\n * https://github.com/Esri/i3s-spec/blob/master/docs/1.7/textureSetDefinitionFormat.cmn.md\n * @param {string} format - format name\n * @returns {string} mime type.\n */\n _deduceMimeTypeFromFormat(format) {\n switch (format) {\n case 'jpg':\n return 'image/jpeg';\n case 'png':\n return 'image/png';\n case 'ktx2':\n return 'image/ktx2';\n default:\n console.warn(`Unexpected texture format in I3S: ${format}`); // eslint-disable-line no-console, no-undef\n return 'image/jpeg';\n }\n }\n\n /**\n * Convert i3s material to GLTF compatible material\n * @param {object} material - i3s material definition\n * @param {number | null} textureIndex - texture index in GLTF\n * @returns {object} GLTF material\n */\n _convertI3sMaterialToGltfMaterial(material, textureIndex) {\n const isTextureIndexExists = textureIndex !== null;\n\n if (!material) {\n material = {\n alphaMode: 'OPAQUE',\n doubleSided: false,\n pbrMetallicRoughness: {\n metallicFactor: 0,\n roughnessFactor: 1\n }\n };\n\n if (isTextureIndexExists) {\n material.pbrMetallicRoughness.baseColorTexture = {\n index: textureIndex,\n texCoord: 0\n };\n } else {\n material.pbrMetallicRoughness.baseColorFactor = [1, 1, 1, 1];\n }\n\n return material;\n }\n\n if (textureIndex !== null) {\n material = this._setGltfTexture(material, textureIndex);\n }\n\n return material;\n }\n\n /**\n * Set texture properties in material with GLTF textureIndex\n * @param {object} materialDefinition - i3s material definition\n * @param {number} textureIndex - texture index in GLTF\n * @returns {void}\n */\n _setGltfTexture(materialDefinition, textureIndex) {\n const material = {\n ...materialDefinition,\n pbrMetallicRoughness: {...materialDefinition.pbrMetallicRoughness}\n };\n // I3SLoader now support loading only one texture. This elseif sequence will assign this texture to one of\n // properties defined in materialDefinition\n if (\n materialDefinition.pbrMetallicRoughness &&\n materialDefinition.pbrMetallicRoughness.baseColorTexture\n ) {\n material.pbrMetallicRoughness.baseColorTexture = {\n index: textureIndex,\n texCoord: 0\n };\n } else if (materialDefinition.emissiveTexture) {\n material.emissiveTexture = {\n index: textureIndex,\n texCoord: 0\n };\n } else if (\n materialDefinition.pbrMetallicRoughness &&\n materialDefinition.pbrMetallicRoughness.metallicRoughnessTexture\n ) {\n material.pbrMetallicRoughness.metallicRoughnessTexture = {\n index: textureIndex,\n texCoord: 0\n };\n } else if (materialDefinition.normalTexture) {\n material.normalTexture = {\n index: textureIndex,\n texCoord: 0\n };\n } else if (materialDefinition.occlusionTexture) {\n material.occlusionTexture = {\n index: textureIndex,\n texCoord: 0\n };\n }\n return material;\n }\n\n /*\n * Returns Features length based on attribute array in attribute object.\n * @param {Object} attributes\n * @returns {Number} Features length .\n */\n _getFeaturesLength(attributes) {\n if (!attributes) {\n return 0;\n }\n const firstKey = Object.keys(attributes)[0];\n return firstKey ? attributes[firstKey].length : 0;\n }\n\n /* Checks that normals buffer is correct\n * @param {TypedArray} normals\n * @returns {boolean} true - normals are correct; false - normals are incorrect\n */\n _checkNormals(normals) {\n // If all normals === 0, the resulting tileset is all in black colors on Cesium\n return normals.find((value) => value);\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.i3sObbTo3dTilesObb = i3sObbTo3dTilesObb;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _core = require("@math.gl/core");
10
+ var _geospatial = require("@math.gl/geospatial");
11
+ var _culling = require("@math.gl/culling");
12
+ function i3sObbTo3dTilesObb(i3SObb, geoidHeightModel) {
13
+ var tiles3DCenter = [i3SObb.center[0], i3SObb.center[1], i3SObb.center[2] + geoidHeightModel.getHeight(i3SObb.center[1], i3SObb.center[0])];
14
+ var cartesianCenter = _geospatial.Ellipsoid.WGS84.cartographicToCartesian(tiles3DCenter, new _core.Vector3());
15
+ var tiles3DObb = new _culling.OrientedBoundingBox().fromCenterHalfSizeQuaternion(cartesianCenter, i3SObb.halfSize, i3SObb.quaternion);
16
+ return [].concat((0, _toConsumableArray2.default)(tiles3DObb.center), (0, _toConsumableArray2.default)(tiles3DObb.halfAxes.toArray()));
17
+ }
18
+ //# sourceMappingURL=i3s-obb-to-3d-tiles-obb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i3s-obb-to-3d-tiles-obb.js","names":["_core","require","_geospatial","_culling","i3sObbTo3dTilesObb","i3SObb","geoidHeightModel","tiles3DCenter","center","getHeight","cartesianCenter","Ellipsoid","WGS84","cartographicToCartesian","Vector3","tiles3DObb","OrientedBoundingBox","fromCenterHalfSizeQuaternion","halfSize","quaternion","concat","_toConsumableArray2","default","halfAxes","toArray"],"sources":["../../../../src/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.ts"],"sourcesContent":["import {Vector3} from '@math.gl/core';\nimport {Ellipsoid} from '@math.gl/geospatial';\nimport {OrientedBoundingBox} from '@math.gl/culling';\n// @ts-expect-error\nimport {GeoidHeightModel} from '@loaders.gl/tile-converter/lib/geoid-height-model';\n\n/**\n * Convert quaternion-based OBB to half-axes-based OBB\n * @param i3SObb quaternion based OBB\n * @param geoidHeightModel the Earth Gravity Model instance\n * @returns number[12] 3DTiles OBB https://github.com/CesiumGS/3d-tiles/tree/master/specification#box\n */\nexport function i3sObbTo3dTilesObb(\n i3SObb: {\n center: number[];\n halfSize: number[];\n quaternion: number[];\n },\n geoidHeightModel: GeoidHeightModel\n): number[] {\n const tiles3DCenter = [\n i3SObb.center[0],\n i3SObb.center[1],\n i3SObb.center[2] + geoidHeightModel.getHeight(i3SObb.center[1], i3SObb.center[0])\n ];\n const cartesianCenter = Ellipsoid.WGS84.cartographicToCartesian(tiles3DCenter, new Vector3());\n const tiles3DObb = new OrientedBoundingBox().fromCenterHalfSizeQuaternion(\n cartesianCenter,\n i3SObb.halfSize,\n i3SObb.quaternion\n );\n return [...tiles3DObb.center, ...tiles3DObb.halfAxes.toArray()];\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAUO,SAASG,kBAAkBA,CAChCC,MAIC,EACDC,gBAAkC,EACxB;EACV,IAAMC,aAAa,GAAG,CACpBF,MAAM,CAACG,MAAM,CAAC,CAAC,CAAC,EAChBH,MAAM,CAACG,MAAM,CAAC,CAAC,CAAC,EAChBH,MAAM,CAACG,MAAM,CAAC,CAAC,CAAC,GAAGF,gBAAgB,CAACG,SAAS,CAACJ,MAAM,CAACG,MAAM,CAAC,CAAC,CAAC,EAAEH,MAAM,CAACG,MAAM,CAAC,CAAC,CAAC,CAAC,CAClF;EACD,IAAME,eAAe,GAAGC,qBAAS,CAACC,KAAK,CAACC,uBAAuB,CAACN,aAAa,EAAE,IAAIO,aAAO,CAAC,CAAC,CAAC;EAC7F,IAAMC,UAAU,GAAG,IAAIC,4BAAmB,CAAC,CAAC,CAACC,4BAA4B,CACvEP,eAAe,EACfL,MAAM,CAACa,QAAQ,EACfb,MAAM,CAACc,UACT,CAAC;EACD,UAAAC,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EAAWP,UAAU,CAACP,MAAM,OAAAa,mBAAA,CAAAC,OAAA,EAAKP,UAAU,CAACQ,QAAQ,CAACC,OAAO,CAAC,CAAC;AAChE"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.convertTextureAtlas = convertTextureAtlas;
7
+ function convertTextureAtlas(texCoords, uvRegions) {
8
+ var convertedTexCoords = new Float32Array(texCoords.length);
9
+ var normalisedRegions = normalizeRegions(uvRegions);
10
+ for (var index = 0; index < texCoords.length; index += 2) {
11
+ var uv = texCoords.subarray(index, index + 2);
12
+ var regions = normalisedRegions.slice(index * 2, index * 2 + 4);
13
+ var fractatedUV = fract([uv[0], uv[1]]);
14
+ var subtracted = [regions[2] - regions[0], regions[3] - regions[1]];
15
+ var multiplicationResult = [fractatedUV[0] * subtracted[0], fractatedUV[1] * subtracted[1]];
16
+ var convertedUV = [multiplicationResult[0] + regions[0], multiplicationResult[1] + regions[1]];
17
+ convertedTexCoords[index] = convertedUV[0];
18
+ convertedTexCoords[index + 1] = convertedUV[1];
19
+ }
20
+ return convertedTexCoords;
21
+ }
22
+ function fract(uv) {
23
+ return [uv[0] - Math.floor(uv[0]), uv[1] - Math.floor(uv[1])];
24
+ }
25
+ function normalizeRegions(regions) {
26
+ var MAX_UINT_16_VALUE = 65535;
27
+ var normalizedRegions = [];
28
+ for (var index = 0; index < regions.length; index++) {
29
+ normalizedRegions[index] = regions[index] / MAX_UINT_16_VALUE;
30
+ }
31
+ return normalizedRegions;
32
+ }
33
+ //# sourceMappingURL=texture-atlas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"texture-atlas.js","names":["convertTextureAtlas","texCoords","uvRegions","convertedTexCoords","Float32Array","length","normalisedRegions","normalizeRegions","index","uv","subarray","regions","slice","fractatedUV","fract","subtracted","multiplicationResult","convertedUV","Math","floor","MAX_UINT_16_VALUE","normalizedRegions"],"sources":["../../../../src/3d-tiles-converter/helpers/texture-atlas.ts"],"sourcesContent":["/**\n * Apply uvRegions to texture coordinates.\n * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.7/geometryUVRegion.cmn.md\n * Shader formula vec2 uv = fract(texCoords) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy;\n * @param texCoords\n * @param uvRegions\n */\nexport function convertTextureAtlas(texCoords: Float32Array, uvRegions: Uint16Array): Float32Array {\n const convertedTexCoords = new Float32Array(texCoords.length);\n const normalisedRegions = normalizeRegions(uvRegions);\n\n for (let index = 0; index < texCoords.length; index += 2) {\n const uv = texCoords.subarray(index, index + 2);\n const regions = normalisedRegions.slice(index * 2, index * 2 + 4);\n // fract(texCoords)\n const fractatedUV = fract([uv[0], uv[1]]);\n // (uvRegions.zw - uvRegions.xy)\n const subtracted = [regions[2] - regions[0], regions[3] - regions[1]];\n // fract(texCoords) * (uvRegions.zw - uvRegions.xy)\n const multiplicationResult = [fractatedUV[0] * subtracted[0], fractatedUV[1] * subtracted[1]];\n // fract(texCoords) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy;\n const convertedUV = [\n multiplicationResult[0] + regions[0],\n multiplicationResult[1] + regions[1]\n ];\n\n convertedTexCoords[index] = convertedUV[0];\n convertedTexCoords[index + 1] = convertedUV[1];\n }\n\n return convertedTexCoords;\n}\n\n/**\n * Do fractation of UV array.\n * @param uv\n */\nfunction fract(uv: [number, number]): [number, number] {\n return [uv[0] - Math.floor(uv[0]), uv[1] - Math.floor(uv[1])];\n}\n\n/**\n * Normalize uvRegions by dividing by the maximum Uint16 value\n * @param regions\n */\nfunction normalizeRegions(regions: Uint16Array): number[] {\n const MAX_UINT_16_VALUE = 65535;\n const normalizedRegions: number[] = [];\n\n for (let index = 0; index < regions.length; index++) {\n normalizedRegions[index] = regions[index] / MAX_UINT_16_VALUE;\n }\n\n return normalizedRegions;\n}\n"],"mappings":";;;;;;AAOO,SAASA,mBAAmBA,CAACC,SAAuB,EAAEC,SAAsB,EAAgB;EACjG,IAAMC,kBAAkB,GAAG,IAAIC,YAAY,CAACH,SAAS,CAACI,MAAM,CAAC;EAC7D,IAAMC,iBAAiB,GAAGC,gBAAgB,CAACL,SAAS,CAAC;EAErD,KAAK,IAAIM,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGP,SAAS,CAACI,MAAM,EAAEG,KAAK,IAAI,CAAC,EAAE;IACxD,IAAMC,EAAE,GAAGR,SAAS,CAACS,QAAQ,CAACF,KAAK,EAAEA,KAAK,GAAG,CAAC,CAAC;IAC/C,IAAMG,OAAO,GAAGL,iBAAiB,CAACM,KAAK,CAACJ,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAEjE,IAAMK,WAAW,GAAGC,KAAK,CAAC,CAACL,EAAE,CAAC,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,IAAMM,UAAU,GAAG,CAACJ,OAAO,CAAC,CAAC,CAAC,GAAGA,OAAO,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,GAAGA,OAAO,CAAC,CAAC,CAAC,CAAC;IAErE,IAAMK,oBAAoB,GAAG,CAACH,WAAW,CAAC,CAAC,CAAC,GAAGE,UAAU,CAAC,CAAC,CAAC,EAAEF,WAAW,CAAC,CAAC,CAAC,GAAGE,UAAU,CAAC,CAAC,CAAC,CAAC;IAE7F,IAAME,WAAW,GAAG,CAClBD,oBAAoB,CAAC,CAAC,CAAC,GAAGL,OAAO,CAAC,CAAC,CAAC,EACpCK,oBAAoB,CAAC,CAAC,CAAC,GAAGL,OAAO,CAAC,CAAC,CAAC,CACrC;IAEDR,kBAAkB,CAACK,KAAK,CAAC,GAAGS,WAAW,CAAC,CAAC,CAAC;IAC1Cd,kBAAkB,CAACK,KAAK,GAAG,CAAC,CAAC,GAAGS,WAAW,CAAC,CAAC,CAAC;EAChD;EAEA,OAAOd,kBAAkB;AAC3B;AAMA,SAASW,KAAKA,CAACL,EAAoB,EAAoB;EACrD,OAAO,CAACA,EAAE,CAAC,CAAC,CAAC,GAAGS,IAAI,CAACC,KAAK,CAACV,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,GAAGS,IAAI,CAACC,KAAK,CAACV,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D;AAMA,SAASF,gBAAgBA,CAACI,OAAoB,EAAY;EACxD,IAAMS,iBAAiB,GAAG,KAAK;EAC/B,IAAMC,iBAA2B,GAAG,EAAE;EAEtC,KAAK,IAAIb,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGG,OAAO,CAACN,MAAM,EAAEG,KAAK,EAAE,EAAE;IACnDa,iBAAiB,CAACb,KAAK,CAAC,GAAGG,OAAO,CAACH,KAAK,CAAC,GAAGY,iBAAiB;EAC/D;EAEA,OAAOC,iBAAiB;AAC1B"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.TILESET = void 0;
8
+ var _jsonMapTransform = _interopRequireDefault(require("json-map-transform"));
9
+ var ASSET = function ASSET() {
10
+ return {
11
+ version: {
12
+ path: 'version',
13
+ default: '1.0'
14
+ }
15
+ };
16
+ };
17
+ var TILE = function TILE() {
18
+ return {
19
+ boundingVolume: {
20
+ path: 'boundingVolume'
21
+ },
22
+ geometricError: {
23
+ path: 'geometricError'
24
+ },
25
+ content: {
26
+ path: 'content'
27
+ },
28
+ children: {
29
+ path: 'children',
30
+ transform: function transform(val) {
31
+ return val.map(function (tile) {
32
+ return (0, _jsonMapTransform.default)(tile, TILE());
33
+ });
34
+ }
35
+ }
36
+ };
37
+ };
38
+ var TILESET = function TILESET() {
39
+ return {
40
+ asset: {
41
+ path: 'asset',
42
+ transform: function transform(val) {
43
+ return (0, _jsonMapTransform.default)(val, ASSET());
44
+ }
45
+ },
46
+ geometricError: {
47
+ path: 'root',
48
+ transform: function transform(val) {
49
+ return val.geometricError;
50
+ }
51
+ },
52
+ root: {
53
+ path: 'root',
54
+ transform: function transform(val) {
55
+ return (0, _jsonMapTransform.default)(val, TILE());
56
+ }
57
+ }
58
+ };
59
+ };
60
+ exports.TILESET = TILESET;
61
+ //# sourceMappingURL=tileset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tileset.js","names":["_jsonMapTransform","_interopRequireDefault","require","ASSET","version","path","default","TILE","boundingVolume","geometricError","content","children","transform","val","map","tile","TILESET","asset","root","exports"],"sources":["../../../../src/3d-tiles-converter/json-templates/tileset.ts"],"sourcesContent":["import transform from 'json-map-transform';\n\nconst ASSET = () => ({\n version: {\n path: 'version',\n default: '1.0'\n }\n});\n\nconst TILE = () => ({\n boundingVolume: {\n path: 'boundingVolume'\n },\n geometricError: {\n path: 'geometricError'\n },\n content: {\n path: 'content'\n },\n children: {\n path: 'children',\n transform: (val) => val.map((tile) => transform(tile, TILE()))\n }\n});\n\nexport const TILESET = () => ({\n asset: {\n path: 'asset',\n transform: (val) => transform(val, ASSET())\n },\n geometricError: {\n path: 'root',\n transform: (val) => val.geometricError\n },\n root: {\n path: 'root',\n transform: (val) => transform(val, TILE())\n }\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAA;EAAA,OAAU;IACnBC,OAAO,EAAE;MACPC,IAAI,EAAE,SAAS;MACfC,OAAO,EAAE;IACX;EACF,CAAC;AAAA,CAAC;AAEF,IAAMC,IAAI,GAAG,SAAPA,IAAIA,CAAA;EAAA,OAAU;IAClBC,cAAc,EAAE;MACdH,IAAI,EAAE;IACR,CAAC;IACDI,cAAc,EAAE;MACdJ,IAAI,EAAE;IACR,CAAC;IACDK,OAAO,EAAE;MACPL,IAAI,EAAE;IACR,CAAC;IACDM,QAAQ,EAAE;MACRN,IAAI,EAAE,UAAU;MAChBO,SAAS,EAAE,SAAAA,UAACC,GAAG;QAAA,OAAKA,GAAG,CAACC,GAAG,CAAC,UAACC,IAAI;UAAA,OAAK,IAAAH,yBAAS,EAACG,IAAI,EAAER,IAAI,CAAC,CAAC,CAAC;QAAA,EAAC;MAAA;IAChE;EACF,CAAC;AAAA,CAAC;AAEK,IAAMS,OAAO,GAAG,SAAVA,OAAOA,CAAA;EAAA,OAAU;IAC5BC,KAAK,EAAE;MACLZ,IAAI,EAAE,OAAO;MACbO,SAAS,EAAE,SAAAA,UAACC,GAAG;QAAA,OAAK,IAAAD,yBAAS,EAACC,GAAG,EAAEV,KAAK,CAAC,CAAC,CAAC;MAAA;IAC7C,CAAC;IACDM,cAAc,EAAE;MACdJ,IAAI,EAAE,MAAM;MACZO,SAAS,EAAE,SAAAA,UAACC,GAAG;QAAA,OAAKA,GAAG,CAACJ,cAAc;MAAA;IACxC,CAAC;IACDS,IAAI,EAAE;MACJb,IAAI,EAAE,MAAM;MACZO,SAAS,EAAE,SAAAA,UAACC,GAAG;QAAA,OAAK,IAAAD,yBAAS,EAACC,GAAG,EAAEN,IAAI,CAAC,CAAC,CAAC;MAAA;IAC5C;EACF,CAAC;AAAA,CAAC;AAACY,OAAA,CAAAH,OAAA,GAAAA,OAAA"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ var moduleExports = require('./index');
4
+ globalThis.loaders = globalThis.loaders || {};
5
+ module.exports = Object.assign(globalThis.loaders, moduleExports);
6
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,OAAO,GAAGD,UAAU,CAACC,OAAO,IAAI,CAAC,CAAC;AAC7CC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,OAAO,EAAEH,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BROWSER_ERROR_MESSAGE = void 0;
7
+ var BROWSER_ERROR_MESSAGE = 'Tile converter does not work in browser, only in node js environment';
8
+ exports.BROWSER_ERROR_MESSAGE = BROWSER_ERROR_MESSAGE;
9
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","names":["BROWSER_ERROR_MESSAGE","exports"],"sources":["../../src/constants.ts"],"sourcesContent":["export const BROWSER_ERROR_MESSAGE =\n 'Tile converter does not work in browser, only in node js environment';\n"],"mappings":";;;;;;AAAO,IAAMA,qBAAqB,GAChC,sEAAsE;AAACC,OAAA,CAAAD,qBAAA,GAAAA,qBAAA"}