@loaders.gl/3d-tiles 4.0.0-alpha.5 → 4.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/dist/bundle.js +2 -2
  2. package/dist/cesium-ion-loader.d.ts.map +1 -1
  3. package/dist/cesium-ion-loader.js +37 -32
  4. package/dist/dist.min.js +3850 -1551
  5. package/dist/es5/bundle.js +6 -0
  6. package/dist/es5/bundle.js.map +1 -0
  7. package/dist/es5/cesium-ion-loader.js +77 -0
  8. package/dist/es5/cesium-ion-loader.js.map +1 -0
  9. package/dist/es5/index.js +63 -0
  10. package/dist/es5/index.js.map +1 -0
  11. package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js +114 -0
  12. package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -0
  13. package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js +180 -0
  14. package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -0
  15. package/dist/es5/lib/classes/tile-3d-batch-table.js +285 -0
  16. package/dist/es5/lib/classes/tile-3d-batch-table.js.map +1 -0
  17. package/dist/es5/lib/classes/tile-3d-feature-table.js +97 -0
  18. package/dist/es5/lib/classes/tile-3d-feature-table.js.map +1 -0
  19. package/dist/es5/lib/constants.js +32 -0
  20. package/dist/es5/lib/constants.js.map +1 -0
  21. package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js +49 -0
  22. package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js.map +1 -0
  23. package/dist/es5/lib/encoders/encode-3d-tile-composite.js +30 -0
  24. package/dist/es5/lib/encoders/encode-3d-tile-composite.js.map +1 -0
  25. package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js +47 -0
  26. package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -0
  27. package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js +48 -0
  28. package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -0
  29. package/dist/es5/lib/encoders/encode-3d-tile.js +35 -0
  30. package/dist/es5/lib/encoders/encode-3d-tile.js.map +1 -0
  31. package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js +35 -0
  32. package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -0
  33. package/dist/es5/lib/ion/ion.js +170 -0
  34. package/dist/es5/lib/ion/ion.js.map +1 -0
  35. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js +64 -0
  36. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -0
  37. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js +32 -0
  38. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -0
  39. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js +32 -0
  40. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -0
  41. package/dist/es5/lib/parsers/helpers/parse-3d-implicit-tiles.js +280 -0
  42. package/dist/es5/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -0
  43. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js +96 -0
  44. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -0
  45. package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js +22 -0
  46. package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -0
  47. package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js +145 -0
  48. package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -0
  49. package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js +85 -0
  50. package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -0
  51. package/dist/es5/lib/parsers/helpers/parse-utils.js +28 -0
  52. package/dist/es5/lib/parsers/helpers/parse-utils.js.map +1 -0
  53. package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js +51 -0
  54. package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js.map +1 -0
  55. package/dist/es5/lib/parsers/parse-3d-tile-composite.js +48 -0
  56. package/dist/es5/lib/parsers/parse-3d-tile-composite.js.map +1 -0
  57. package/dist/es5/lib/parsers/parse-3d-tile-gltf.js +35 -0
  58. package/dist/es5/lib/parsers/parse-3d-tile-gltf.js.map +1 -0
  59. package/dist/es5/lib/parsers/parse-3d-tile-header.js +271 -0
  60. package/dist/es5/lib/parsers/parse-3d-tile-header.js.map +1 -0
  61. package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js +172 -0
  62. package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -0
  63. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js +271 -0
  64. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -0
  65. package/dist/es5/lib/parsers/parse-3d-tile.js +74 -0
  66. package/dist/es5/lib/parsers/parse-3d-tile.js.map +1 -0
  67. package/dist/es5/lib/utils/obb/s2-corners-to-obb.js +30 -0
  68. package/dist/es5/lib/utils/obb/s2-corners-to-obb.js.map +1 -0
  69. package/dist/es5/lib/utils/s2/converters/s2-to-boundary.js +44 -0
  70. package/dist/es5/lib/utils/s2/converters/s2-to-boundary.js.map +1 -0
  71. package/dist/es5/lib/utils/s2/converters/s2-to-obb-points.js +30 -0
  72. package/dist/es5/lib/utils/s2/converters/s2-to-obb-points.js.map +1 -0
  73. package/dist/es5/lib/utils/s2/converters/s2-to-region.js +52 -0
  74. package/dist/es5/lib/utils/s2/converters/s2-to-region.js.map +1 -0
  75. package/dist/es5/lib/utils/s2/index.js +90 -0
  76. package/dist/es5/lib/utils/s2/index.js.map +1 -0
  77. package/dist/es5/lib/utils/s2/s2-geometry-functions.js +19 -0
  78. package/dist/es5/lib/utils/s2/s2-geometry-functions.js.map +1 -0
  79. package/dist/es5/lib/utils/s2/s2-token-functions.js +41 -0
  80. package/dist/es5/lib/utils/s2/s2-token-functions.js.map +1 -0
  81. package/dist/es5/lib/utils/s2/s2geometry/s2-cell-utils.js +22 -0
  82. package/dist/es5/lib/utils/s2/s2geometry/s2-cell-utils.js.map +1 -0
  83. package/dist/es5/lib/utils/s2/s2geometry/s2-geometry.js +207 -0
  84. package/dist/es5/lib/utils/s2/s2geometry/s2-geometry.js.map +1 -0
  85. package/dist/es5/lib/utils/version.js +9 -0
  86. package/dist/es5/lib/utils/version.js.map +1 -0
  87. package/dist/es5/tile-3d-subtree-loader.js +22 -0
  88. package/dist/es5/tile-3d-subtree-loader.js.map +1 -0
  89. package/dist/es5/tile-3d-writer.js +26 -0
  90. package/dist/es5/tile-3d-writer.js.map +1 -0
  91. package/dist/es5/tiles-3d-loader.js +134 -0
  92. package/dist/es5/tiles-3d-loader.js.map +1 -0
  93. package/dist/es5/types.js +2 -0
  94. package/dist/es5/types.js.map +1 -0
  95. package/dist/esm/bundle.js +4 -0
  96. package/dist/esm/bundle.js.map +1 -0
  97. package/dist/esm/cesium-ion-loader.js +36 -0
  98. package/dist/esm/cesium-ion-loader.js.map +1 -0
  99. package/dist/esm/index.js +9 -0
  100. package/dist/esm/index.js.map +1 -0
  101. package/dist/esm/lib/classes/helpers/tile-3d-accessor-utils.js +96 -0
  102. package/dist/esm/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -0
  103. package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js +171 -0
  104. package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -0
  105. package/dist/esm/lib/classes/tile-3d-batch-table.js +231 -0
  106. package/dist/esm/lib/classes/tile-3d-batch-table.js.map +1 -0
  107. package/dist/esm/lib/classes/tile-3d-feature-table.js +70 -0
  108. package/dist/esm/lib/classes/tile-3d-feature-table.js.map +1 -0
  109. package/dist/esm/lib/constants.js +22 -0
  110. package/dist/esm/lib/constants.js.map +1 -0
  111. package/dist/esm/lib/encoders/encode-3d-tile-batched-model.js +40 -0
  112. package/dist/esm/lib/encoders/encode-3d-tile-batched-model.js.map +1 -0
  113. package/dist/esm/lib/encoders/encode-3d-tile-composite.js +21 -0
  114. package/dist/esm/lib/encoders/encode-3d-tile-composite.js.map +1 -0
  115. package/dist/esm/lib/encoders/encode-3d-tile-instanced-model.js +36 -0
  116. package/dist/esm/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -0
  117. package/dist/esm/lib/encoders/encode-3d-tile-point-cloud.js +39 -0
  118. package/dist/esm/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -0
  119. package/dist/esm/lib/encoders/encode-3d-tile.js +29 -0
  120. package/dist/esm/lib/encoders/encode-3d-tile.js.map +1 -0
  121. package/dist/esm/lib/encoders/helpers/encode-3d-tile-header.js +28 -0
  122. package/dist/esm/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -0
  123. package/dist/esm/lib/ion/ion.js +70 -0
  124. package/dist/esm/lib/ion/ion.js.map +1 -0
  125. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js +58 -0
  126. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -0
  127. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-normals.js +26 -0
  128. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -0
  129. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-positions.js +26 -0
  130. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -0
  131. package/dist/esm/lib/parsers/helpers/parse-3d-implicit-tiles.js +241 -0
  132. package/dist/esm/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -0
  133. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js +59 -0
  134. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -0
  135. package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js +16 -0
  136. package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -0
  137. package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js +67 -0
  138. package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -0
  139. package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js +80 -0
  140. package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -0
  141. package/dist/esm/lib/parsers/helpers/parse-utils.js +20 -0
  142. package/dist/esm/lib/parsers/helpers/parse-utils.js.map +1 -0
  143. package/dist/esm/lib/parsers/parse-3d-tile-batched-model.js +25 -0
  144. package/dist/esm/lib/parsers/parse-3d-tile-batched-model.js.map +1 -0
  145. package/dist/esm/lib/parsers/parse-3d-tile-composite.js +15 -0
  146. package/dist/esm/lib/parsers/parse-3d-tile-composite.js.map +1 -0
  147. package/dist/esm/lib/parsers/parse-3d-tile-gltf.js +10 -0
  148. package/dist/esm/lib/parsers/parse-3d-tile-gltf.js.map +1 -0
  149. package/dist/esm/lib/parsers/parse-3d-tile-header.js +164 -0
  150. package/dist/esm/lib/parsers/parse-3d-tile-header.js.map +1 -0
  151. package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js +147 -0
  152. package/dist/{lib → esm/lib}/parsers/parse-3d-tile-instanced-model.js.map +1 -1
  153. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js +211 -0
  154. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -0
  155. package/dist/esm/lib/parsers/parse-3d-tile.js +30 -0
  156. package/dist/esm/lib/parsers/parse-3d-tile.js.map +1 -0
  157. package/dist/esm/lib/utils/obb/s2-corners-to-obb.js +23 -0
  158. package/dist/esm/lib/utils/obb/s2-corners-to-obb.js.map +1 -0
  159. package/dist/esm/lib/utils/s2/converters/s2-to-boundary.js +40 -0
  160. package/dist/esm/lib/utils/s2/converters/s2-to-boundary.js.map +1 -0
  161. package/dist/esm/lib/utils/s2/converters/s2-to-obb-points.js +24 -0
  162. package/dist/esm/lib/utils/s2/converters/s2-to-obb-points.js.map +1 -0
  163. package/dist/esm/lib/utils/s2/converters/s2-to-region.js +42 -0
  164. package/dist/esm/lib/utils/s2/converters/s2-to-region.js.map +1 -0
  165. package/dist/esm/lib/utils/s2/index.js +7 -0
  166. package/dist/esm/lib/utils/s2/index.js.map +1 -0
  167. package/dist/esm/lib/utils/s2/s2-geometry-functions.js +12 -0
  168. package/dist/esm/lib/utils/s2/s2-geometry-functions.js.map +1 -0
  169. package/dist/esm/lib/utils/s2/s2-token-functions.js +32 -0
  170. package/dist/esm/lib/utils/s2/s2-token-functions.js.map +1 -0
  171. package/dist/esm/lib/utils/s2/s2geometry/s2-cell-utils.js +15 -0
  172. package/dist/esm/lib/utils/s2/s2geometry/s2-cell-utils.js.map +1 -0
  173. package/dist/esm/lib/utils/s2/s2geometry/s2-geometry.js +186 -0
  174. package/dist/esm/lib/utils/s2/s2geometry/s2-geometry.js.map +1 -0
  175. package/dist/esm/lib/utils/version.js +2 -0
  176. package/dist/esm/lib/utils/version.js.map +1 -0
  177. package/dist/esm/tile-3d-subtree-loader.js +14 -0
  178. package/dist/esm/tile-3d-subtree-loader.js.map +1 -0
  179. package/dist/esm/tile-3d-writer.js +19 -0
  180. package/dist/esm/tile-3d-writer.js.map +1 -0
  181. package/dist/esm/tiles-3d-loader.js +64 -0
  182. package/dist/esm/tiles-3d-loader.js.map +1 -0
  183. package/dist/esm/types.js +2 -0
  184. package/dist/esm/types.js.map +1 -0
  185. package/dist/index.d.ts +1 -1
  186. package/dist/index.d.ts.map +1 -1
  187. package/dist/index.js +26 -9
  188. package/dist/lib/classes/helpers/tile-3d-accessor-utils.d.ts +1 -1
  189. package/dist/lib/classes/helpers/tile-3d-accessor-utils.js +106 -89
  190. package/dist/lib/classes/tile-3d-batch-table-hierarchy.js +184 -202
  191. package/dist/lib/classes/tile-3d-batch-table.d.ts +1 -1
  192. package/dist/lib/classes/tile-3d-batch-table.js +223 -282
  193. package/dist/lib/classes/tile-3d-feature-table.js +64 -86
  194. package/dist/lib/constants.js +23 -19
  195. package/dist/lib/encoders/encode-3d-tile-batched-model.js +45 -45
  196. package/dist/lib/encoders/encode-3d-tile-composite.js +23 -24
  197. package/dist/lib/encoders/encode-3d-tile-instanced-model.js +37 -37
  198. package/dist/lib/encoders/encode-3d-tile-point-cloud.js +36 -38
  199. package/dist/lib/encoders/encode-3d-tile.js +30 -32
  200. package/dist/lib/encoders/helpers/encode-3d-tile-header.js +28 -29
  201. package/dist/lib/ion/ion.js +60 -69
  202. package/dist/lib/parsers/helpers/normalize-3d-tile-colors.js +60 -62
  203. package/dist/lib/parsers/helpers/normalize-3d-tile-normals.js +26 -26
  204. package/dist/lib/parsers/helpers/normalize-3d-tile-positions.js +39 -28
  205. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.d.ts +11 -0
  206. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.d.ts.map +1 -1
  207. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.js +247 -203
  208. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js +82 -63
  209. package/dist/lib/parsers/helpers/parse-3d-tile-header.js +26 -15
  210. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts +2 -1
  211. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts.map +1 -1
  212. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.js +98 -58
  213. package/dist/lib/parsers/helpers/parse-3d-tile-tables.js +84 -80
  214. package/dist/lib/parsers/helpers/parse-utils.js +29 -16
  215. package/dist/lib/parsers/parse-3d-tile-batched-model.js +30 -26
  216. package/dist/lib/parsers/parse-3d-tile-composite.js +25 -16
  217. package/dist/lib/parsers/parse-3d-tile-gltf.d.ts +1 -1
  218. package/dist/lib/parsers/parse-3d-tile-gltf.d.ts.map +1 -1
  219. package/dist/lib/parsers/parse-3d-tile-gltf.js +17 -9
  220. package/dist/lib/parsers/parse-3d-tile-header.d.ts +5 -4
  221. package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -1
  222. package/dist/lib/parsers/parse-3d-tile-header.js +166 -138
  223. package/dist/lib/parsers/parse-3d-tile-instanced-model.js +179 -170
  224. package/dist/lib/parsers/parse-3d-tile-point-cloud.js +350 -184
  225. package/dist/lib/parsers/parse-3d-tile.js +36 -31
  226. package/dist/lib/utils/obb/s2-corners-to-obb.d.ts +15 -0
  227. package/dist/lib/utils/obb/s2-corners-to-obb.d.ts.map +1 -0
  228. package/dist/lib/utils/obb/s2-corners-to-obb.js +37 -0
  229. package/dist/lib/utils/s2/converters/s2-to-boundary.d.ts +9 -0
  230. package/dist/lib/utils/s2/converters/s2-to-boundary.d.ts.map +1 -0
  231. package/dist/lib/utils/s2/converters/s2-to-boundary.js +61 -0
  232. package/dist/lib/utils/s2/converters/s2-to-obb-points.d.ts +15 -0
  233. package/dist/lib/utils/s2/converters/s2-to-obb-points.d.ts.map +1 -0
  234. package/dist/lib/utils/s2/converters/s2-to-obb-points.js +36 -0
  235. package/dist/lib/utils/s2/converters/s2-to-region.d.ts +13 -0
  236. package/dist/lib/utils/s2/converters/s2-to-region.d.ts.map +1 -0
  237. package/dist/lib/utils/s2/converters/s2-to-region.js +59 -0
  238. package/dist/lib/utils/s2/index.d.ts +8 -0
  239. package/dist/lib/utils/s2/index.d.ts.map +1 -0
  240. package/dist/lib/utils/s2/index.js +23 -0
  241. package/dist/lib/utils/s2/s2-geometry-functions.d.ts +14 -0
  242. package/dist/lib/utils/s2/s2-geometry-functions.d.ts.map +1 -0
  243. package/dist/lib/utils/s2/s2-geometry-functions.js +29 -0
  244. package/dist/lib/utils/s2/s2-token-functions.d.ts +23 -0
  245. package/dist/lib/utils/s2/s2-token-functions.d.ts.map +1 -0
  246. package/dist/lib/utils/s2/s2-token-functions.js +68 -0
  247. package/dist/lib/utils/s2/s2geometry/s2-cell-utils.d.ts +14 -0
  248. package/dist/lib/utils/s2/s2geometry/s2-cell-utils.d.ts.map +1 -0
  249. package/dist/lib/utils/s2/s2geometry/s2-cell-utils.js +32 -0
  250. package/dist/lib/utils/s2/s2geometry/s2-geometry.d.ts +52 -0
  251. package/dist/lib/utils/s2/s2geometry/s2-geometry.d.ts.map +1 -0
  252. package/dist/lib/utils/s2/s2geometry/s2-geometry.js +260 -0
  253. package/dist/lib/utils/version.js +7 -2
  254. package/dist/tile-3d-subtree-loader.js +22 -13
  255. package/dist/tile-3d-writer.js +24 -17
  256. package/dist/tiles-3d-loader.d.ts.map +1 -1
  257. package/dist/tiles-3d-loader.js +63 -69
  258. package/dist/types.d.ts +28 -15
  259. package/dist/types.d.ts.map +1 -1
  260. package/dist/types.js +2 -2
  261. package/package.json +12 -11
  262. package/src/cesium-ion-loader.ts +1 -0
  263. package/src/index.ts +1 -1
  264. package/src/lib/parsers/helpers/parse-3d-implicit-tiles.ts +104 -27
  265. package/src/lib/parsers/helpers/parse-3d-tile-subtree.ts +50 -7
  266. package/src/lib/parsers/parse-3d-tile-header.ts +91 -23
  267. package/src/lib/utils/obb/s2-corners-to-obb.ts +51 -0
  268. package/src/lib/utils/s2/converters/s2-to-boundary.ts +67 -0
  269. package/src/lib/utils/s2/converters/s2-to-obb-points.ts +46 -0
  270. package/src/lib/utils/s2/converters/s2-to-region.ts +69 -0
  271. package/src/lib/utils/s2/index.ts +17 -0
  272. package/src/lib/utils/s2/s2-geometry-functions.ts +28 -0
  273. package/src/lib/utils/s2/s2-token-functions.ts +67 -0
  274. package/src/lib/utils/s2/s2geometry/s2-cell-utils.ts +33 -0
  275. package/src/lib/utils/s2/s2geometry/s2-geometry.ts +296 -0
  276. package/src/tiles-3d-loader.ts +2 -16
  277. package/src/types.ts +20 -5
  278. package/dist/bundle.js.map +0 -1
  279. package/dist/cesium-ion-loader.js.map +0 -1
  280. package/dist/index.js.map +0 -1
  281. package/dist/lib/classes/helpers/tile-3d-accessor-utils.js.map +0 -1
  282. package/dist/lib/classes/tile-3d-batch-table-hierarchy.js.map +0 -1
  283. package/dist/lib/classes/tile-3d-batch-table.js.map +0 -1
  284. package/dist/lib/classes/tile-3d-feature-table.js.map +0 -1
  285. package/dist/lib/constants.js.map +0 -1
  286. package/dist/lib/encoders/encode-3d-tile-batched-model.js.map +0 -1
  287. package/dist/lib/encoders/encode-3d-tile-composite.js.map +0 -1
  288. package/dist/lib/encoders/encode-3d-tile-instanced-model.js.map +0 -1
  289. package/dist/lib/encoders/encode-3d-tile-point-cloud.js.map +0 -1
  290. package/dist/lib/encoders/encode-3d-tile.js.map +0 -1
  291. package/dist/lib/encoders/helpers/encode-3d-tile-header.js.map +0 -1
  292. package/dist/lib/ion/ion.js.map +0 -1
  293. package/dist/lib/parsers/helpers/normalize-3d-tile-colors.js.map +0 -1
  294. package/dist/lib/parsers/helpers/normalize-3d-tile-normals.js.map +0 -1
  295. package/dist/lib/parsers/helpers/normalize-3d-tile-positions.js.map +0 -1
  296. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +0 -1
  297. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +0 -1
  298. package/dist/lib/parsers/helpers/parse-3d-tile-header.js.map +0 -1
  299. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.js.map +0 -1
  300. package/dist/lib/parsers/helpers/parse-3d-tile-tables.js.map +0 -1
  301. package/dist/lib/parsers/helpers/parse-utils.js.map +0 -1
  302. package/dist/lib/parsers/parse-3d-tile-batched-model.js.map +0 -1
  303. package/dist/lib/parsers/parse-3d-tile-composite.js.map +0 -1
  304. package/dist/lib/parsers/parse-3d-tile-gltf.js.map +0 -1
  305. package/dist/lib/parsers/parse-3d-tile-header.js.map +0 -1
  306. package/dist/lib/parsers/parse-3d-tile-point-cloud.js.map +0 -1
  307. package/dist/lib/parsers/parse-3d-tile.js.map +0 -1
  308. package/dist/lib/utils/version.js.map +0 -1
  309. package/dist/tile-3d-subtree-loader.js.map +0 -1
  310. package/dist/tile-3d-writer.js.map +0 -1
  311. package/dist/tiles-3d-loader.js.map +0 -1
  312. package/dist/types.js.map +0 -1
  313. /package/src/lib/parsers/{parse-3d-tile-gltf.js → parse-3d-tile-gltf.ts} +0 -0
@@ -1,17 +1,28 @@
1
+ "use strict";
2
+ // This file is derived from the Cesium code base under Apache 2 license
3
+ // See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.parse3DTileHeaderSync = void 0;
1
6
  const SIZEOF_UINT32 = 4;
2
- export function parse3DTileHeaderSync(tile, arrayBuffer, byteOffset = 0) {
3
- const view = new DataView(arrayBuffer);
4
- tile.magic = view.getUint32(byteOffset, true);
5
- byteOffset += SIZEOF_UINT32;
6
- tile.version = view.getUint32(byteOffset, true);
7
- byteOffset += SIZEOF_UINT32;
8
- tile.byteLength = view.getUint32(byteOffset, true);
9
- byteOffset += SIZEOF_UINT32;
10
-
11
- if (tile.version !== 1) {
12
- throw new Error("3D Tile Version ".concat(tile.version, " not supported"));
13
- }
14
-
15
- return byteOffset;
7
+ /* PARSE FIXED HEADER:
8
+ Populates
9
+ magic, // identifies type of tile
10
+ type, // String version of magic
11
+ version,
12
+ byteLength
13
+ */
14
+ function parse3DTileHeaderSync(tile, arrayBuffer, byteOffset = 0) {
15
+ const view = new DataView(arrayBuffer);
16
+ tile.magic = view.getUint32(byteOffset, true);
17
+ byteOffset += SIZEOF_UINT32;
18
+ tile.version = view.getUint32(byteOffset, true);
19
+ byteOffset += SIZEOF_UINT32;
20
+ tile.byteLength = view.getUint32(byteOffset, true);
21
+ byteOffset += SIZEOF_UINT32;
22
+ // TODO - move version check into each tile parser?
23
+ if (tile.version !== 1) {
24
+ throw new Error(`3D Tile Version ${tile.version} not supported`);
25
+ }
26
+ return byteOffset; // Indicates where the parsing ended
16
27
  }
17
- //# sourceMappingURL=parse-3d-tile-header.js.map
28
+ exports.parse3DTileHeaderSync = parse3DTileHeaderSync;
@@ -1,9 +1,10 @@
1
1
  import type { Subtree } from '../../../types';
2
+ import type { LoaderContext, LoaderOptions } from '@loaders.gl/loader-utils';
2
3
  /**
3
4
  * Parse subtree file
4
5
  * Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subtree-file-format
5
6
  * @param data
6
7
  * @returns
7
8
  */
8
- export default function parse3DTilesSubtree(data: ArrayBuffer): Promise<Subtree>;
9
+ export default function parse3DTilesSubtree(data: ArrayBuffer, options: LoaderOptions | undefined, context: LoaderContext | undefined): Promise<Subtree>;
9
10
  //# sourceMappingURL=parse-3d-tile-subtree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-3d-tile-subtree.d.ts","sourceRoot":"","sources":["../../../../src/lib/parsers/helpers/parse-3d-tile-subtree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAoB,MAAM,gBAAgB,CAAC;AAM/D;;;;;GAKG;AAEH,wBAA8B,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAoDrF"}
1
+ {"version":3,"file":"parse-3d-tile-subtree.d.ts","sourceRoot":"","sources":["../../../../src/lib/parsers/helpers/parse-3d-tile-subtree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAoB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAK3E;;;;;GAKG;AAEH,wBAA8B,mBAAmB,CAC/C,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,aAAa,GAAG,SAAS,EAClC,OAAO,EAAE,aAAa,GAAG,SAAS,GACjC,OAAO,CAAC,OAAO,CAAC,CAuDlB"}
@@ -1,64 +1,104 @@
1
- import { fetchFile } from '@loaders.gl/core';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
2
3
  const SUBTREE_FILE_MAGIC = 0x74627573;
3
4
  const SUBTREE_FILE_VERSION = 1;
4
- export default async function parse3DTilesSubtree(data) {
5
- const magic = new Uint32Array(data.slice(0, 4));
6
-
7
- if (magic[0] !== SUBTREE_FILE_MAGIC) {
8
- throw new Error('Wrong subtree file magic number');
9
- }
10
-
11
- const version = new Uint32Array(data.slice(4, 8));
12
-
13
- if (version[0] !== SUBTREE_FILE_VERSION) {
14
- throw new Error('Wrong subtree file verson, must be 1');
15
- }
16
-
17
- const jsonByteLength = parseUint64Value(data.slice(8, 16));
18
- const stringAttribute = new Uint8Array(data, 24, jsonByteLength);
19
- const textDecoder = new TextDecoder('utf8');
20
- const string = textDecoder.decode(stringAttribute);
21
- const subtree = JSON.parse(string);
22
- const binaryByteLength = parseUint64Value(data.slice(16, 24));
23
- let internalBinaryBuffer = new ArrayBuffer(0);
24
-
25
- if (binaryByteLength) {
26
- internalBinaryBuffer = data.slice(24 + jsonByteLength);
27
- }
28
-
29
- if ('bufferView' in subtree.tileAvailability) {
30
- subtree.tileAvailability.explicitBitstream = await getExplicitBitstream(subtree, 'tileAvailability', internalBinaryBuffer);
31
- }
32
-
33
- if ('bufferView' in subtree.contentAvailability) {
34
- subtree.contentAvailability.explicitBitstream = await getExplicitBitstream(subtree, 'contentAvailability', internalBinaryBuffer);
35
- }
36
-
37
- if ('bufferView' in subtree.childSubtreeAvailability) {
38
- subtree.childSubtreeAvailability.explicitBitstream = await getExplicitBitstream(subtree, 'childSubtreeAvailability', internalBinaryBuffer);
39
- }
40
-
41
- return subtree;
5
+ /**
6
+ * Parse subtree file
7
+ * Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subtree-file-format
8
+ * @param data
9
+ * @returns
10
+ */
11
+ // eslint-disable-next-line max-statements
12
+ async function parse3DTilesSubtree(data, options, context) {
13
+ const magic = new Uint32Array(data.slice(0, 4));
14
+ if (magic[0] !== SUBTREE_FILE_MAGIC) {
15
+ throw new Error('Wrong subtree file magic number');
16
+ }
17
+ const version = new Uint32Array(data.slice(4, 8));
18
+ if (version[0] !== SUBTREE_FILE_VERSION) {
19
+ throw new Error('Wrong subtree file verson, must be 1');
20
+ }
21
+ const jsonByteLength = parseUint64Value(data.slice(8, 16));
22
+ const stringAttribute = new Uint8Array(data, 24, jsonByteLength);
23
+ const textDecoder = new TextDecoder('utf8');
24
+ const string = textDecoder.decode(stringAttribute);
25
+ const subtree = JSON.parse(string);
26
+ const binaryByteLength = parseUint64Value(data.slice(16, 24));
27
+ let internalBinaryBuffer = new ArrayBuffer(0);
28
+ if (binaryByteLength) {
29
+ internalBinaryBuffer = data.slice(24 + jsonByteLength);
30
+ }
31
+ if ('bufferView' in subtree.tileAvailability) {
32
+ subtree.tileAvailability.explicitBitstream = await getExplicitBitstream(subtree, 'tileAvailability', internalBinaryBuffer, context);
33
+ }
34
+ if ('bufferView' in subtree.contentAvailability) {
35
+ subtree.contentAvailability.explicitBitstream = await getExplicitBitstream(subtree, 'contentAvailability', internalBinaryBuffer, context);
36
+ }
37
+ if ('bufferView' in subtree.childSubtreeAvailability) {
38
+ subtree.childSubtreeAvailability.explicitBitstream = await getExplicitBitstream(subtree, 'childSubtreeAvailability', internalBinaryBuffer, context);
39
+ }
40
+ return subtree;
42
41
  }
43
-
44
- async function getExplicitBitstream(subtree, name, internalBinaryBuffer) {
45
- const bufferViewIndex = subtree[name].bufferView;
46
- const bufferView = subtree.bufferViews[bufferViewIndex];
47
- const buffer = subtree.buffers[bufferView.buffer];
48
-
49
- if (buffer.uri) {
50
- const response = await fetchFile(buffer.uri);
51
- const data = await response.arrayBuffer();
52
- return new Uint8Array(data, bufferView.byteOffset, bufferView.byteLength);
53
- }
54
-
55
- return new Uint8Array(internalBinaryBuffer, bufferView.byteOffset, bufferView.byteLength);
42
+ exports.default = parse3DTilesSubtree;
43
+ /**
44
+ * Get url for bitstream downloading
45
+ * @param bitstreamRelativeUri
46
+ * @param baseUri
47
+ * @returns
48
+ */
49
+ function resolveBufferUri(bitstreamRelativeUri, basePath) {
50
+ const hasProtocol = basePath.startsWith('http');
51
+ if (hasProtocol) {
52
+ const resolvedUri = new URL(bitstreamRelativeUri, basePath);
53
+ return decodeURI(resolvedUri.toString());
54
+ }
55
+ /**
56
+ * Adding http protocol only for new URL constructor usage.
57
+ * It allows to resolve relative paths like ../../example with basePath.
58
+ */
59
+ const basePathWithProtocol = `http://${basePath}`;
60
+ const resolvedUri = new URL(bitstreamRelativeUri, basePathWithProtocol);
61
+ /**
62
+ * Drop protocol and use just relative path.
63
+ */
64
+ return `/${resolvedUri.host}${resolvedUri.pathname}`;
56
65
  }
57
-
66
+ /**
67
+ * Get explicit bitstream for subtree availability data.
68
+ * @param subtree
69
+ * @param name
70
+ * @param internalBinaryBuffer
71
+ */
72
+ async function getExplicitBitstream(subtree, name, internalBinaryBuffer, context) {
73
+ const bufferViewIndex = subtree[name].bufferView;
74
+ const bufferView = subtree.bufferViews[bufferViewIndex];
75
+ const buffer = subtree.buffers[bufferView.buffer];
76
+ if (!context?.url || !context.fetch) {
77
+ throw new Error('Url is not provided');
78
+ }
79
+ if (!context.fetch) {
80
+ throw new Error('fetch is not provided');
81
+ }
82
+ // External bitstream loading
83
+ if (buffer.uri) {
84
+ const bufferUri = resolveBufferUri(buffer.uri, context?.url);
85
+ const response = await context.fetch(bufferUri);
86
+ const data = await response.arrayBuffer();
87
+ // Return view of bitstream.
88
+ return new Uint8Array(data, bufferView.byteOffset, bufferView.byteLength);
89
+ }
90
+ // Return view of bitstream.
91
+ return new Uint8Array(internalBinaryBuffer, bufferView.byteOffset, bufferView.byteLength);
92
+ }
93
+ /**
94
+ * Parse buffer to return uint64 value
95
+ * @param buffer
96
+ * @returns 64-bit value until precision is lost after Number.MAX_SAFE_INTEGER
97
+ */
58
98
  function parseUint64Value(buffer) {
59
- const dataView = new DataView(buffer);
60
- const left = dataView.getUint32(0, true);
61
- const right = dataView.getUint32(4, true);
62
- return left + 2 ** 32 * right;
99
+ const dataView = new DataView(buffer);
100
+ const left = dataView.getUint32(0, true);
101
+ const right = dataView.getUint32(4, true);
102
+ // combine the two 32-bit values
103
+ return left + 2 ** 32 * right;
63
104
  }
64
- //# sourceMappingURL=parse-3d-tile-subtree.js.map
@@ -1,89 +1,93 @@
1
- import { getStringFromArrayBuffer } from './parse-utils';
1
+ "use strict";
2
+ // This file is derived from the Cesium code base under Apache 2 license
3
+ // See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.parse3DTileTablesSync = exports.parse3DTileTablesHeaderSync = void 0;
6
+ const parse_utils_1 = require("./parse-utils");
2
7
  const SIZEOF_UINT32 = 4;
3
8
  const DEPRECATION_WARNING = 'b3dm tile in legacy format.';
4
- export function parse3DTileTablesHeaderSync(tile, arrayBuffer, byteOffset) {
5
- const view = new DataView(arrayBuffer);
6
- let batchLength;
7
- tile.header = tile.header || {};
8
- let featureTableJsonByteLength = view.getUint32(byteOffset, true);
9
- byteOffset += SIZEOF_UINT32;
10
- let featureTableBinaryByteLength = view.getUint32(byteOffset, true);
11
- byteOffset += SIZEOF_UINT32;
12
- let batchTableJsonByteLength = view.getUint32(byteOffset, true);
13
- byteOffset += SIZEOF_UINT32;
14
- let batchTableBinaryByteLength = view.getUint32(byteOffset, true);
15
- byteOffset += SIZEOF_UINT32;
16
-
17
- if (batchTableJsonByteLength >= 570425344) {
18
- byteOffset -= SIZEOF_UINT32 * 2;
19
- batchLength = featureTableJsonByteLength;
20
- batchTableJsonByteLength = featureTableBinaryByteLength;
21
- batchTableBinaryByteLength = 0;
22
- featureTableJsonByteLength = 0;
23
- featureTableBinaryByteLength = 0;
24
- console.warn(DEPRECATION_WARNING);
25
- } else if (batchTableBinaryByteLength >= 570425344) {
26
- byteOffset -= SIZEOF_UINT32;
27
- batchLength = batchTableJsonByteLength;
28
- batchTableJsonByteLength = featureTableJsonByteLength;
29
- batchTableBinaryByteLength = featureTableBinaryByteLength;
30
- featureTableJsonByteLength = 0;
31
- featureTableBinaryByteLength = 0;
32
- console.warn(DEPRECATION_WARNING);
33
- }
34
-
35
- tile.header.featureTableJsonByteLength = featureTableJsonByteLength;
36
- tile.header.featureTableBinaryByteLength = featureTableBinaryByteLength;
37
- tile.header.batchTableJsonByteLength = batchTableJsonByteLength;
38
- tile.header.batchTableBinaryByteLength = batchTableBinaryByteLength;
39
- tile.header.batchLength = batchLength;
40
- return byteOffset;
9
+ // eslint-disable-next-line max-statements
10
+ function parse3DTileTablesHeaderSync(tile, arrayBuffer, byteOffset) {
11
+ const view = new DataView(arrayBuffer);
12
+ let batchLength;
13
+ tile.header = tile.header || {};
14
+ let featureTableJsonByteLength = view.getUint32(byteOffset, true);
15
+ byteOffset += SIZEOF_UINT32;
16
+ let featureTableBinaryByteLength = view.getUint32(byteOffset, true);
17
+ byteOffset += SIZEOF_UINT32;
18
+ let batchTableJsonByteLength = view.getUint32(byteOffset, true);
19
+ byteOffset += SIZEOF_UINT32;
20
+ let batchTableBinaryByteLength = view.getUint32(byteOffset, true);
21
+ byteOffset += SIZEOF_UINT32;
22
+ // First legacy header format - [batchLength] [batchTableByteLength] ('batchTableJsonByteLength': JSON starts with a quotation mark or the glTF magic)
23
+ // Second legacy format - [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength] (Second legacy format is similar as first but here we check 'batchTableBinaryByteLength' instead)
24
+ // Current header format - [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength]
25
+ // First byte will be 0x22 or 0x67. The minimum uint32 expected is 0x22000000 = 570425344 = 570MB.
26
+ if (batchTableJsonByteLength >= 570425344) {
27
+ byteOffset -= SIZEOF_UINT32 * 2;
28
+ batchLength = featureTableJsonByteLength;
29
+ batchTableJsonByteLength = featureTableBinaryByteLength;
30
+ batchTableBinaryByteLength = 0;
31
+ featureTableJsonByteLength = 0;
32
+ featureTableBinaryByteLength = 0;
33
+ console.warn(DEPRECATION_WARNING); // eslint-disable-line
34
+ }
35
+ else if (batchTableBinaryByteLength >= 570425344) {
36
+ byteOffset -= SIZEOF_UINT32;
37
+ batchLength = batchTableJsonByteLength;
38
+ batchTableJsonByteLength = featureTableJsonByteLength;
39
+ batchTableBinaryByteLength = featureTableBinaryByteLength;
40
+ featureTableJsonByteLength = 0;
41
+ featureTableBinaryByteLength = 0;
42
+ console.warn(DEPRECATION_WARNING); // eslint-disable-line
43
+ }
44
+ tile.header.featureTableJsonByteLength = featureTableJsonByteLength;
45
+ tile.header.featureTableBinaryByteLength = featureTableBinaryByteLength;
46
+ tile.header.batchTableJsonByteLength = batchTableJsonByteLength;
47
+ tile.header.batchTableBinaryByteLength = batchTableBinaryByteLength;
48
+ tile.header.batchLength = batchLength;
49
+ return byteOffset;
41
50
  }
42
- export function parse3DTileTablesSync(tile, arrayBuffer, byteOffset, options) {
43
- byteOffset = parse3DTileFeatureTable(tile, arrayBuffer, byteOffset, options);
44
- byteOffset = parse3DTileBatchTable(tile, arrayBuffer, byteOffset, options);
45
- return byteOffset;
51
+ exports.parse3DTileTablesHeaderSync = parse3DTileTablesHeaderSync;
52
+ function parse3DTileTablesSync(tile, arrayBuffer, byteOffset, options) {
53
+ byteOffset = parse3DTileFeatureTable(tile, arrayBuffer, byteOffset, options);
54
+ byteOffset = parse3DTileBatchTable(tile, arrayBuffer, byteOffset, options);
55
+ return byteOffset;
46
56
  }
47
-
57
+ exports.parse3DTileTablesSync = parse3DTileTablesSync;
48
58
  function parse3DTileFeatureTable(tile, arrayBuffer, byteOffset, options) {
49
- const {
50
- featureTableJsonByteLength,
51
- featureTableBinaryByteLength,
52
- batchLength
53
- } = tile.header;
54
- tile.featureTableJson = {
55
- BATCH_LENGTH: batchLength || 0
56
- };
57
-
58
- if (featureTableJsonByteLength > 0) {
59
- const featureTableString = getStringFromArrayBuffer(arrayBuffer, byteOffset, featureTableJsonByteLength);
60
- tile.featureTableJson = JSON.parse(featureTableString);
61
- }
62
-
63
- byteOffset += featureTableJsonByteLength;
64
- tile.featureTableBinary = new Uint8Array(arrayBuffer, byteOffset, featureTableBinaryByteLength);
65
- byteOffset += featureTableBinaryByteLength;
66
- return byteOffset;
59
+ const { featureTableJsonByteLength, featureTableBinaryByteLength, batchLength } = tile.header;
60
+ tile.featureTableJson = {
61
+ BATCH_LENGTH: batchLength || 0
62
+ };
63
+ if (featureTableJsonByteLength > 0) {
64
+ const featureTableString = (0, parse_utils_1.getStringFromArrayBuffer)(arrayBuffer, byteOffset, featureTableJsonByteLength);
65
+ tile.featureTableJson = JSON.parse(featureTableString);
66
+ }
67
+ byteOffset += featureTableJsonByteLength;
68
+ tile.featureTableBinary = new Uint8Array(arrayBuffer, byteOffset, featureTableBinaryByteLength);
69
+ byteOffset += featureTableBinaryByteLength;
70
+ /*
71
+ const featureTable = parseFeatureTable(featureTableJson, featureTableBinary);
72
+
73
+ const batchLength = featureTable.getGlobalProperty('BATCH_LENGTH');
74
+ featureTable.featuresLength = batchLength;
75
+ */
76
+ return byteOffset;
67
77
  }
68
-
69
78
  function parse3DTileBatchTable(tile, arrayBuffer, byteOffset, options) {
70
- const {
71
- batchTableJsonByteLength,
72
- batchTableBinaryByteLength
73
- } = tile.header;
74
-
75
- if (batchTableJsonByteLength > 0) {
76
- const batchTableString = getStringFromArrayBuffer(arrayBuffer, byteOffset, batchTableJsonByteLength);
77
- tile.batchTableJson = JSON.parse(batchTableString);
78
- byteOffset += batchTableJsonByteLength;
79
-
80
- if (batchTableBinaryByteLength > 0) {
81
- tile.batchTableBinary = new Uint8Array(arrayBuffer, byteOffset, batchTableBinaryByteLength);
82
- tile.batchTableBinary = new Uint8Array(tile.batchTableBinary);
83
- byteOffset += batchTableBinaryByteLength;
79
+ const { batchTableJsonByteLength, batchTableBinaryByteLength } = tile.header;
80
+ if (batchTableJsonByteLength > 0) {
81
+ const batchTableString = (0, parse_utils_1.getStringFromArrayBuffer)(arrayBuffer, byteOffset, batchTableJsonByteLength);
82
+ tile.batchTableJson = JSON.parse(batchTableString);
83
+ byteOffset += batchTableJsonByteLength;
84
+ if (batchTableBinaryByteLength > 0) {
85
+ // Has a batch table binary
86
+ tile.batchTableBinary = new Uint8Array(arrayBuffer, byteOffset, batchTableBinaryByteLength);
87
+ // Copy the batchTableBinary section and let the underlying ArrayBuffer be freed
88
+ tile.batchTableBinary = new Uint8Array(tile.batchTableBinary);
89
+ byteOffset += batchTableBinaryByteLength;
90
+ }
84
91
  }
85
- }
86
-
87
- return byteOffset;
92
+ return byteOffset;
88
93
  }
89
- //# sourceMappingURL=parse-3d-tile-tables.js.map
@@ -1,19 +1,32 @@
1
- import { assert } from '@loaders.gl/loader-utils';
2
- export function getStringFromArrayBuffer(arrayBuffer, byteOffset, byteLength) {
3
- assert(arrayBuffer instanceof ArrayBuffer);
4
- const textDecoder = new TextDecoder('utf8');
5
- const typedArray = new Uint8Array(arrayBuffer, byteOffset, byteLength);
6
- const string = textDecoder.decode(typedArray);
7
- return string;
1
+ "use strict";
2
+ // This file is derived from the Cesium code base under Apache 2 license
3
+ // See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.getMagicString = exports.getStringFromTypedArray = exports.getStringFromArrayBuffer = void 0;
6
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
7
+ // Decode the JSON binary array into clear text
8
+ function getStringFromArrayBuffer(arrayBuffer, byteOffset, byteLength) {
9
+ (0, loader_utils_1.assert)(arrayBuffer instanceof ArrayBuffer);
10
+ const textDecoder = new TextDecoder('utf8');
11
+ const typedArray = new Uint8Array(arrayBuffer, byteOffset, byteLength);
12
+ const string = textDecoder.decode(typedArray);
13
+ return string;
8
14
  }
9
- export function getStringFromTypedArray(typedArray) {
10
- assert(ArrayBuffer.isView(typedArray));
11
- const textDecoder = new TextDecoder('utf8');
12
- const string = textDecoder.decode(typedArray);
13
- return string;
15
+ exports.getStringFromArrayBuffer = getStringFromArrayBuffer;
16
+ // Decode the JSON binary array into clear text
17
+ function getStringFromTypedArray(typedArray) {
18
+ (0, loader_utils_1.assert)(ArrayBuffer.isView(typedArray));
19
+ const textDecoder = new TextDecoder('utf8');
20
+ const string = textDecoder.decode(typedArray);
21
+ return string;
14
22
  }
15
- export function getMagicString(arrayBuffer, byteOffset = 0) {
16
- const dataView = new DataView(arrayBuffer);
17
- return "".concat(String.fromCharCode(dataView.getUint8(byteOffset + 0))).concat(String.fromCharCode(dataView.getUint8(byteOffset + 1))).concat(String.fromCharCode(dataView.getUint8(byteOffset + 2))).concat(String.fromCharCode(dataView.getUint8(byteOffset + 3)));
23
+ exports.getStringFromTypedArray = getStringFromTypedArray;
24
+ function getMagicString(arrayBuffer, byteOffset = 0) {
25
+ const dataView = new DataView(arrayBuffer);
26
+ return `\
27
+ ${String.fromCharCode(dataView.getUint8(byteOffset + 0))}\
28
+ ${String.fromCharCode(dataView.getUint8(byteOffset + 1))}\
29
+ ${String.fromCharCode(dataView.getUint8(byteOffset + 2))}\
30
+ ${String.fromCharCode(dataView.getUint8(byteOffset + 3))}`;
18
31
  }
19
- //# sourceMappingURL=parse-utils.js.map
32
+ exports.getMagicString = getMagicString;
@@ -1,29 +1,33 @@
1
- import { GL } from '@loaders.gl/math';
2
- import Tile3DFeatureTable from '../classes/tile-3d-feature-table';
3
- import { parse3DTileHeaderSync } from './helpers/parse-3d-tile-header';
4
- import { parse3DTileTablesHeaderSync, parse3DTileTablesSync } from './helpers/parse-3d-tile-tables';
5
- import { parse3DTileGLTFViewSync, extractGLTF, GLTF_FORMAT } from './helpers/parse-3d-tile-gltf-view';
6
- export async function parseBatchedModel3DTile(tile, arrayBuffer, byteOffset, options, context) {
7
- var _tile$gltf;
8
-
9
- byteOffset = parseBatchedModel(tile, arrayBuffer, byteOffset, options, context);
10
- await extractGLTF(tile, GLTF_FORMAT.EMBEDDED, options, context);
11
- const extensions = tile === null || tile === void 0 ? void 0 : (_tile$gltf = tile.gltf) === null || _tile$gltf === void 0 ? void 0 : _tile$gltf.extensions;
12
-
13
- if (extensions && extensions.CESIUM_RTC) {
14
- tile.rtcCenter = extensions.CESIUM_RTC.center;
15
- }
16
-
17
- return byteOffset;
1
+ "use strict";
2
+ // This file is derived from the Cesium code base under Apache 2 license
3
+ // See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
4
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6
+ };
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.parseBatchedModel3DTile = void 0;
9
+ const math_1 = require("@loaders.gl/math"); // math.gl/geometry;
10
+ const tile_3d_feature_table_1 = __importDefault(require("../classes/tile-3d-feature-table"));
11
+ // import Tile3DBatchTable from '../classes/tile-3d-batch-table.js';
12
+ const parse_3d_tile_header_1 = require("./helpers/parse-3d-tile-header");
13
+ const parse_3d_tile_tables_1 = require("./helpers/parse-3d-tile-tables");
14
+ const parse_3d_tile_gltf_view_1 = require("./helpers/parse-3d-tile-gltf-view");
15
+ async function parseBatchedModel3DTile(tile, arrayBuffer, byteOffset, options, context) {
16
+ byteOffset = parseBatchedModel(tile, arrayBuffer, byteOffset, options, context);
17
+ await (0, parse_3d_tile_gltf_view_1.extractGLTF)(tile, parse_3d_tile_gltf_view_1.GLTF_FORMAT.EMBEDDED, options, context);
18
+ const extensions = tile?.gltf?.extensions;
19
+ if (extensions && extensions.CESIUM_RTC) {
20
+ tile.rtcCenter = extensions.CESIUM_RTC.center;
21
+ }
22
+ return byteOffset;
18
23
  }
19
-
24
+ exports.parseBatchedModel3DTile = parseBatchedModel3DTile;
20
25
  function parseBatchedModel(tile, arrayBuffer, byteOffset, options, context) {
21
- byteOffset = parse3DTileHeaderSync(tile, arrayBuffer, byteOffset);
22
- byteOffset = parse3DTileTablesHeaderSync(tile, arrayBuffer, byteOffset);
23
- byteOffset = parse3DTileTablesSync(tile, arrayBuffer, byteOffset, options);
24
- byteOffset = parse3DTileGLTFViewSync(tile, arrayBuffer, byteOffset, options);
25
- const featureTable = new Tile3DFeatureTable(tile.featureTableJson, tile.featureTableBinary);
26
- tile.rtcCenter = featureTable.getGlobalProperty('RTC_CENTER', GL.FLOAT, 3);
27
- return byteOffset;
26
+ byteOffset = (0, parse_3d_tile_header_1.parse3DTileHeaderSync)(tile, arrayBuffer, byteOffset);
27
+ byteOffset = (0, parse_3d_tile_tables_1.parse3DTileTablesHeaderSync)(tile, arrayBuffer, byteOffset);
28
+ byteOffset = (0, parse_3d_tile_tables_1.parse3DTileTablesSync)(tile, arrayBuffer, byteOffset, options);
29
+ byteOffset = (0, parse_3d_tile_gltf_view_1.parse3DTileGLTFViewSync)(tile, arrayBuffer, byteOffset, options);
30
+ const featureTable = new tile_3d_feature_table_1.default(tile.featureTableJson, tile.featureTableBinary);
31
+ tile.rtcCenter = featureTable.getGlobalProperty('RTC_CENTER', math_1.GL.FLOAT, 3);
32
+ return byteOffset;
28
33
  }
29
- //# sourceMappingURL=parse-3d-tile-batched-model.js.map
@@ -1,17 +1,26 @@
1
- import { parse3DTileHeaderSync } from './helpers/parse-3d-tile-header';
2
- export async function parseComposite3DTile(tile, arrayBuffer, byteOffset, options, context, parse3DTile) {
3
- byteOffset = parse3DTileHeaderSync(tile, arrayBuffer, byteOffset);
4
- const view = new DataView(arrayBuffer);
5
- tile.tilesLength = view.getUint32(byteOffset, true);
6
- byteOffset += 4;
7
- tile.tiles = [];
8
-
9
- while (tile.tiles.length < tile.tilesLength && tile.byteLength - byteOffset > 12) {
10
- const subtile = {};
11
- tile.tiles.push(subtile);
12
- byteOffset = await parse3DTile(arrayBuffer, byteOffset, options, context, subtile);
13
- }
14
-
15
- return byteOffset;
1
+ "use strict";
2
+ // This file is derived from the Cesium code base under Apache 2 license
3
+ // See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.parseComposite3DTile = void 0;
6
+ // Reference code:
7
+ // https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Source/Scene/Composite3DTileContent.js#L182
8
+ const parse_3d_tile_header_1 = require("./helpers/parse-3d-tile-header");
9
+ // eslint-disable-next-line max-params
10
+ async function parseComposite3DTile(tile, arrayBuffer, byteOffset, options, context, parse3DTile) {
11
+ byteOffset = (0, parse_3d_tile_header_1.parse3DTileHeaderSync)(tile, arrayBuffer, byteOffset);
12
+ const view = new DataView(arrayBuffer);
13
+ // Extract number of tiles
14
+ tile.tilesLength = view.getUint32(byteOffset, true);
15
+ byteOffset += 4;
16
+ // extract each tile from the byte stream
17
+ tile.tiles = [];
18
+ while (tile.tiles.length < tile.tilesLength && tile.byteLength - byteOffset > 12) {
19
+ const subtile = {};
20
+ tile.tiles.push(subtile);
21
+ byteOffset = await parse3DTile(arrayBuffer, byteOffset, options, context, subtile);
22
+ // TODO - do we need to add any padding in between tiles?
23
+ }
24
+ return byteOffset;
16
25
  }
17
- //# sourceMappingURL=parse-3d-tile-composite.js.map
26
+ exports.parseComposite3DTile = parseComposite3DTile;
@@ -1,2 +1,2 @@
1
- export function parseGltf3DTile(tile: any, arrayBuffer: any, options: any, context: any): Promise<void>;
1
+ export declare function parseGltf3DTile(tile: any, arrayBuffer: any, options: any, context: any): Promise<void>;
2
2
  //# sourceMappingURL=parse-3d-tile-gltf.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-3d-tile-gltf.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-3d-tile-gltf.js"],"names":[],"mappings":"AAEA,wGAaC"}
1
+ {"version":3,"file":"parse-3d-tile-gltf.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-3d-tile-gltf.ts"],"names":[],"mappings":"AAEA,wBAAsB,eAAe,CAAC,IAAI,KAAA,EAAE,WAAW,KAAA,EAAE,OAAO,KAAA,EAAE,OAAO,KAAA,iBAaxE"}
@@ -1,10 +1,18 @@
1
- import { GLTFLoader } from '@loaders.gl/gltf';
2
- export async function parseGltf3DTile(tile, arrayBuffer, options, context) {
3
- tile.rotateYtoZ = true;
4
- tile.gltfUpAxis = options['3d-tiles'] && options['3d-tiles'].assetGltfUpAxis ? options['3d-tiles'].assetGltfUpAxis : 'Y';
5
- const {
6
- parse
7
- } = context;
8
- tile.gltf = await parse(arrayBuffer, GLTFLoader, options, context);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseGltf3DTile = void 0;
4
+ const gltf_1 = require("@loaders.gl/gltf");
5
+ async function parseGltf3DTile(tile, arrayBuffer, options, context) {
6
+ // Set flags
7
+ // glTF models need to be rotated from Y to Z up
8
+ // https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification#y-up-to-z-up
9
+ tile.rotateYtoZ = true;
10
+ // Save gltf up axis
11
+ tile.gltfUpAxis =
12
+ options['3d-tiles'] && options['3d-tiles'].assetGltfUpAxis
13
+ ? options['3d-tiles'].assetGltfUpAxis
14
+ : 'Y';
15
+ const { parse } = context;
16
+ tile.gltf = await parse(arrayBuffer, gltf_1.GLTFLoader, options, context);
9
17
  }
10
- //# sourceMappingURL=parse-3d-tile-gltf.js.map
18
+ exports.parseGltf3DTile = parseGltf3DTile;
@@ -1,13 +1,14 @@
1
- import { Tileset3D } from '@loaders.gl/tiles';
2
- import { Subtree } from '../../types';
1
+ import type { LoaderOptions } from '@loaders.gl/loader-utils';
2
+ import { Tileset3D, Tile3D } from '@loaders.gl/tiles';
3
+ import { ImplicitTilingExtension, Subtree } from '../../types';
3
4
  export declare function normalizeTileData(tile: any, options: any): any;
4
- export declare function normalizeTileHeaders(tileset: any): any;
5
+ export declare function normalizeTileHeaders(tileset: Tileset3D, options: LoaderOptions): Promise<Tileset3D>;
5
6
  /**
6
7
  * Do normalisation of implicit tile headers
7
8
  * TODO Check if Tile3D class can be a return type here.
8
9
  * @param tileset
9
10
  */
10
- export declare function normalizeImplicitTileHeaders(tileset: Tileset3D): Promise<any>;
11
+ export declare function normalizeImplicitTileHeaders(tile: Tile3D, tileset: Tileset3D, implicitTilingExtension: ImplicitTilingExtension, options: LoaderOptions): Promise<any>;
11
12
  /**
12
13
  * Do implicit data normalisation to create hierarchical tile structure
13
14
  * @param tile