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

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 (327) 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 +5345 -2938
  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 +98 -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 +37 -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 +138 -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 +61 -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 +12 -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/esm/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -0
  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 +62 -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.d.ts.map +1 -1
  209. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js +84 -63
  210. package/dist/lib/parsers/helpers/parse-3d-tile-header.js +26 -15
  211. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts +2 -1
  212. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts.map +1 -1
  213. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.js +98 -58
  214. package/dist/lib/parsers/helpers/parse-3d-tile-tables.js +84 -80
  215. package/dist/lib/parsers/helpers/parse-utils.js +29 -16
  216. package/dist/lib/parsers/parse-3d-tile-batched-model.js +30 -26
  217. package/dist/lib/parsers/parse-3d-tile-composite.d.ts +6 -1
  218. package/dist/lib/parsers/parse-3d-tile-composite.d.ts.map +1 -1
  219. package/dist/lib/parsers/parse-3d-tile-composite.js +23 -16
  220. package/dist/lib/parsers/parse-3d-tile-gltf.d.ts +3 -1
  221. package/dist/lib/parsers/parse-3d-tile-gltf.d.ts.map +1 -1
  222. package/dist/lib/parsers/parse-3d-tile-gltf.js +19 -9
  223. package/dist/lib/parsers/parse-3d-tile-header.d.ts +6 -4
  224. package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -1
  225. package/dist/lib/parsers/parse-3d-tile-header.js +166 -138
  226. package/dist/lib/parsers/parse-3d-tile-instanced-model.d.ts +3 -1
  227. package/dist/lib/parsers/parse-3d-tile-instanced-model.d.ts.map +1 -1
  228. package/dist/lib/parsers/parse-3d-tile-instanced-model.js +179 -170
  229. package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts +4 -2
  230. package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts.map +1 -1
  231. package/dist/lib/parsers/parse-3d-tile-point-cloud.js +351 -184
  232. package/dist/lib/parsers/parse-3d-tile.js +36 -31
  233. package/dist/lib/utils/obb/s2-corners-to-obb.d.ts +15 -0
  234. package/dist/lib/utils/obb/s2-corners-to-obb.d.ts.map +1 -0
  235. package/dist/lib/utils/obb/s2-corners-to-obb.js +37 -0
  236. package/dist/lib/utils/s2/converters/s2-to-boundary.d.ts +9 -0
  237. package/dist/lib/utils/s2/converters/s2-to-boundary.d.ts.map +1 -0
  238. package/dist/lib/utils/s2/converters/s2-to-boundary.js +61 -0
  239. package/dist/lib/utils/s2/converters/s2-to-obb-points.d.ts +15 -0
  240. package/dist/lib/utils/s2/converters/s2-to-obb-points.d.ts.map +1 -0
  241. package/dist/lib/utils/s2/converters/s2-to-obb-points.js +36 -0
  242. package/dist/lib/utils/s2/converters/s2-to-region.d.ts +13 -0
  243. package/dist/lib/utils/s2/converters/s2-to-region.d.ts.map +1 -0
  244. package/dist/lib/utils/s2/converters/s2-to-region.js +59 -0
  245. package/dist/lib/utils/s2/index.d.ts +8 -0
  246. package/dist/lib/utils/s2/index.d.ts.map +1 -0
  247. package/dist/lib/utils/s2/index.js +23 -0
  248. package/dist/lib/utils/s2/s2-geometry-functions.d.ts +14 -0
  249. package/dist/lib/utils/s2/s2-geometry-functions.d.ts.map +1 -0
  250. package/dist/lib/utils/s2/s2-geometry-functions.js +29 -0
  251. package/dist/lib/utils/s2/s2-token-functions.d.ts +23 -0
  252. package/dist/lib/utils/s2/s2-token-functions.d.ts.map +1 -0
  253. package/dist/lib/utils/s2/s2-token-functions.js +68 -0
  254. package/dist/lib/utils/s2/s2geometry/s2-cell-utils.d.ts +14 -0
  255. package/dist/lib/utils/s2/s2geometry/s2-cell-utils.d.ts.map +1 -0
  256. package/dist/lib/utils/s2/s2geometry/s2-cell-utils.js +32 -0
  257. package/dist/lib/utils/s2/s2geometry/s2-geometry.d.ts +52 -0
  258. package/dist/lib/utils/s2/s2geometry/s2-geometry.d.ts.map +1 -0
  259. package/dist/lib/utils/s2/s2geometry/s2-geometry.js +260 -0
  260. package/dist/lib/utils/version.js +7 -2
  261. package/dist/tile-3d-subtree-loader.js +22 -13
  262. package/dist/tile-3d-writer.js +24 -17
  263. package/dist/tiles-3d-loader.d.ts +15 -1
  264. package/dist/tiles-3d-loader.d.ts.map +1 -1
  265. package/dist/tiles-3d-loader.js +67 -71
  266. package/dist/types.d.ts +28 -15
  267. package/dist/types.d.ts.map +1 -1
  268. package/dist/types.js +2 -2
  269. package/package.json +12 -11
  270. package/src/cesium-ion-loader.ts +1 -0
  271. package/src/index.ts +1 -1
  272. package/src/lib/parsers/helpers/parse-3d-implicit-tiles.ts +104 -27
  273. package/src/lib/parsers/helpers/parse-3d-tile-gltf-view.ts +4 -2
  274. package/src/lib/parsers/helpers/parse-3d-tile-subtree.ts +50 -7
  275. package/src/lib/parsers/parse-3d-tile-composite.ts +17 -6
  276. package/src/lib/parsers/parse-3d-tile-gltf.ts +25 -0
  277. package/src/lib/parsers/parse-3d-tile-header.ts +93 -24
  278. package/src/lib/parsers/parse-3d-tile-instanced-model.ts +17 -3
  279. package/src/lib/parsers/parse-3d-tile-point-cloud.ts +37 -10
  280. package/src/lib/utils/obb/s2-corners-to-obb.ts +51 -0
  281. package/src/lib/utils/s2/converters/s2-to-boundary.ts +67 -0
  282. package/src/lib/utils/s2/converters/s2-to-obb-points.ts +46 -0
  283. package/src/lib/utils/s2/converters/s2-to-region.ts +69 -0
  284. package/src/lib/utils/s2/index.ts +17 -0
  285. package/src/lib/utils/s2/s2-geometry-functions.ts +28 -0
  286. package/src/lib/utils/s2/s2-token-functions.ts +67 -0
  287. package/src/lib/utils/s2/s2geometry/s2-cell-utils.ts +33 -0
  288. package/src/lib/utils/s2/s2geometry/s2-geometry.ts +296 -0
  289. package/src/tiles-3d-loader.ts +64 -46
  290. package/src/types.ts +20 -5
  291. package/dist/bundle.js.map +0 -1
  292. package/dist/cesium-ion-loader.js.map +0 -1
  293. package/dist/index.js.map +0 -1
  294. package/dist/lib/classes/helpers/tile-3d-accessor-utils.js.map +0 -1
  295. package/dist/lib/classes/tile-3d-batch-table-hierarchy.js.map +0 -1
  296. package/dist/lib/classes/tile-3d-batch-table.js.map +0 -1
  297. package/dist/lib/classes/tile-3d-feature-table.js.map +0 -1
  298. package/dist/lib/constants.js.map +0 -1
  299. package/dist/lib/encoders/encode-3d-tile-batched-model.js.map +0 -1
  300. package/dist/lib/encoders/encode-3d-tile-composite.js.map +0 -1
  301. package/dist/lib/encoders/encode-3d-tile-instanced-model.js.map +0 -1
  302. package/dist/lib/encoders/encode-3d-tile-point-cloud.js.map +0 -1
  303. package/dist/lib/encoders/encode-3d-tile.js.map +0 -1
  304. package/dist/lib/encoders/helpers/encode-3d-tile-header.js.map +0 -1
  305. package/dist/lib/ion/ion.js.map +0 -1
  306. package/dist/lib/parsers/helpers/normalize-3d-tile-colors.js.map +0 -1
  307. package/dist/lib/parsers/helpers/normalize-3d-tile-normals.js.map +0 -1
  308. package/dist/lib/parsers/helpers/normalize-3d-tile-positions.js.map +0 -1
  309. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +0 -1
  310. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +0 -1
  311. package/dist/lib/parsers/helpers/parse-3d-tile-header.js.map +0 -1
  312. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.js.map +0 -1
  313. package/dist/lib/parsers/helpers/parse-3d-tile-tables.js.map +0 -1
  314. package/dist/lib/parsers/helpers/parse-utils.js.map +0 -1
  315. package/dist/lib/parsers/parse-3d-tile-batched-model.js.map +0 -1
  316. package/dist/lib/parsers/parse-3d-tile-composite.js.map +0 -1
  317. package/dist/lib/parsers/parse-3d-tile-gltf.js.map +0 -1
  318. package/dist/lib/parsers/parse-3d-tile-header.js.map +0 -1
  319. package/dist/lib/parsers/parse-3d-tile-instanced-model.js.map +0 -1
  320. package/dist/lib/parsers/parse-3d-tile-point-cloud.js.map +0 -1
  321. package/dist/lib/parsers/parse-3d-tile.js.map +0 -1
  322. package/dist/lib/utils/version.js.map +0 -1
  323. package/dist/tile-3d-subtree-loader.js.map +0 -1
  324. package/dist/tile-3d-writer.js.map +0 -1
  325. package/dist/tiles-3d-loader.js.map +0 -1
  326. package/dist/types.js.map +0 -1
  327. package/src/lib/parsers/parse-3d-tile-gltf.js +0 -16
@@ -1,13 +1,15 @@
1
- import { Tileset3D } from '@loaders.gl/tiles';
2
- import { Subtree } from '../../types';
1
+ import type { Tiles3DLoaderOptions } from '../../tiles-3d-loader';
2
+ import type { LoaderOptions } from '@loaders.gl/loader-utils';
3
+ import { Tileset3D, Tile3D } from '@loaders.gl/tiles';
4
+ import { ImplicitTilingExtension, Subtree } from '../../types';
3
5
  export declare function normalizeTileData(tile: any, options: any): any;
4
- export declare function normalizeTileHeaders(tileset: any): any;
6
+ export declare function normalizeTileHeaders(tileset: Tileset3D, options: LoaderOptions): Promise<Tileset3D>;
5
7
  /**
6
8
  * Do normalisation of implicit tile headers
7
9
  * TODO Check if Tile3D class can be a return type here.
8
10
  * @param tileset
9
11
  */
10
- export declare function normalizeImplicitTileHeaders(tileset: Tileset3D): Promise<any>;
12
+ export declare function normalizeImplicitTileHeaders(tile: Tile3D, tileset: Tileset3D, implicitTilingExtension: ImplicitTilingExtension, options: Tiles3DLoaderOptions): Promise<any>;
11
13
  /**
12
14
  * Do implicit data normalisation to create hierarchical tile structure
13
15
  * @param tile
@@ -1 +1 @@
1
- {"version":3,"file":"parse-3d-tile-header.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-3d-tile-header.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAA8C,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AAoCpC,wBAAgB,iBAAiB,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA,OAgB9C;AAGD,wBAAgB,oBAAoB,CAAC,OAAO,KAAA,OAiB3C;AAED;;;;GAIG;AACH,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,SAAS,gBAsCpE;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,IAAI,KAAA,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,gBAsBvF"}
1
+ {"version":3,"file":"parse-3d-tile-header.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-3d-tile-header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAC,SAAS,EAA+C,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAC,uBAAuB,EAAE,OAAO,EAAC,MAAM,aAAa,CAAC;AAqD7D,wBAAgB,iBAAiB,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA,OAgB9C;AAGD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,SAAS,CAAC,CAwCpB;AAED;;;;GAIG;AACH,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,EAClB,uBAAuB,EAAE,uBAAuB,EAChD,OAAO,EAAE,oBAAoB,gBA2C9B;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,IAAI,KAAA,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,gBA0BvF"}
@@ -1,149 +1,177 @@
1
- import { Tile3DSubtreeLoader } from '../../tile-3d-subtree-loader';
2
- import { load } from '@loaders.gl/core';
3
- import { LOD_METRIC_TYPE, TILE_REFINEMENT, TILE_TYPE } from '@loaders.gl/tiles';
4
- import { parseImplicitTiles, replaceContentUrlTemplate } from './helpers/parse-3d-implicit-tiles';
5
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeImplicitTileData = exports.normalizeImplicitTileHeaders = exports.normalizeTileHeaders = exports.normalizeTileData = void 0;
4
+ const tile_3d_subtree_loader_1 = require("../../tile-3d-subtree-loader");
5
+ const core_1 = require("@loaders.gl/core");
6
+ const tiles_1 = require("@loaders.gl/tiles");
7
+ const parse_3d_implicit_tiles_1 = require("./helpers/parse-3d-implicit-tiles");
8
+ const s2_corners_to_obb_1 = require("../utils/obb/s2-corners-to-obb");
6
9
  function getTileType(tile) {
7
- if (!tile.contentUrl) {
8
- return TILE_TYPE.EMPTY;
9
- }
10
-
11
- const contentUrl = tile.contentUrl;
12
- const fileExtension = contentUrl.split('.').pop();
13
-
14
- switch (fileExtension) {
15
- case 'pnts':
16
- return TILE_TYPE.POINTCLOUD;
17
-
18
- case 'i3dm':
19
- case 'b3dm':
20
- case 'glb':
21
- case 'gltf':
22
- return TILE_TYPE.SCENEGRAPH;
23
-
24
- default:
25
- return fileExtension;
26
- }
10
+ if (!tile.contentUrl) {
11
+ return tiles_1.TILE_TYPE.EMPTY;
12
+ }
13
+ const contentUrl = tile.contentUrl.split('?')[0]; // Discard query string
14
+ const fileExtension = contentUrl.split('.').pop();
15
+ switch (fileExtension) {
16
+ case 'pnts':
17
+ return tiles_1.TILE_TYPE.POINTCLOUD;
18
+ case 'i3dm':
19
+ case 'b3dm':
20
+ case 'glb':
21
+ case 'gltf':
22
+ return tiles_1.TILE_TYPE.SCENEGRAPH;
23
+ default:
24
+ return fileExtension;
25
+ }
27
26
  }
28
-
29
27
  function getRefine(refine) {
30
- switch (refine) {
31
- case 'REPLACE':
32
- case 'replace':
33
- return TILE_REFINEMENT.REPLACE;
34
-
35
- case 'ADD':
36
- case 'add':
37
- return TILE_REFINEMENT.ADD;
38
-
39
- default:
40
- return refine;
41
- }
28
+ switch (refine) {
29
+ case 'REPLACE':
30
+ case 'replace':
31
+ return tiles_1.TILE_REFINEMENT.REPLACE;
32
+ case 'ADD':
33
+ case 'add':
34
+ return tiles_1.TILE_REFINEMENT.ADD;
35
+ default:
36
+ return refine;
37
+ }
42
38
  }
43
-
44
- export function normalizeTileData(tile, options) {
45
- if (!tile) {
46
- return null;
47
- }
48
-
49
- if (tile.content) {
50
- const contentUri = tile.content.uri || tile.content.url;
51
- tile.contentUrl = "".concat(options.basePath, "/").concat(contentUri);
52
- }
53
-
54
- tile.id = tile.contentUrl;
55
- tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;
56
- tile.lodMetricValue = tile.geometricError;
57
- tile.transformMatrix = tile.transform;
58
- tile.type = getTileType(tile);
59
- tile.refine = getRefine(tile.refine);
60
- return tile;
39
+ function resolveUri(uri, basePath) {
40
+ // url scheme per RFC3986
41
+ const urlSchemeRegex = /^[a-z][0-9a-z+.-]*:/i;
42
+ if (urlSchemeRegex.test(basePath)) {
43
+ const url = new URL(uri, `${basePath}/`);
44
+ return decodeURI(url.toString());
45
+ }
46
+ else if (uri.startsWith('/')) {
47
+ return uri;
48
+ }
49
+ return `${basePath}/${uri}`;
61
50
  }
62
- export function normalizeTileHeaders(tileset) {
63
- const basePath = tileset.basePath;
64
- const root = normalizeTileData(tileset.root, tileset);
65
- const stack = [];
66
- stack.push(root);
67
-
68
- while (stack.length > 0) {
69
- const tile = stack.pop() || {};
70
- const children = tile.children || [];
71
-
72
- for (const childHeader of children) {
73
- normalizeTileData(childHeader, {
74
- basePath
75
- });
76
- stack.push(childHeader);
51
+ function normalizeTileData(tile, options) {
52
+ if (!tile) {
53
+ return null;
54
+ }
55
+ if (tile.content) {
56
+ const contentUri = tile.content.uri || tile.content.url;
57
+ tile.contentUrl = resolveUri(contentUri, options.basePath);
77
58
  }
78
- }
79
-
80
- return root;
59
+ tile.id = tile.contentUrl;
60
+ tile.lodMetricType = tiles_1.LOD_METRIC_TYPE.GEOMETRIC_ERROR;
61
+ tile.lodMetricValue = tile.geometricError;
62
+ tile.transformMatrix = tile.transform;
63
+ tile.type = getTileType(tile);
64
+ tile.refine = getRefine(tile.refine);
65
+ return tile;
81
66
  }
82
- export async function normalizeImplicitTileHeaders(tileset) {
83
- if (!tileset.root) {
84
- return null;
85
- }
86
-
87
- const basePath = tileset.basePath;
88
- const implicitTilingExtension = tileset.root.extensions['3DTILES_implicit_tiling'];
89
- const {
90
- subdivisionScheme,
91
- maximumLevel,
92
- subtreeLevels,
93
- subtrees: {
94
- uri: subtreesUriTemplate
67
+ exports.normalizeTileData = normalizeTileData;
68
+ // normalize tile headers
69
+ async function normalizeTileHeaders(tileset, options) {
70
+ const basePath = tileset.basePath;
71
+ let root;
72
+ const rootImplicitTilingExtension = getImplicitTilingExtensionData(tileset?.root);
73
+ if (rootImplicitTilingExtension && tileset.root) {
74
+ root = await normalizeImplicitTileHeaders(tileset.root, tileset, rootImplicitTilingExtension, options);
75
+ }
76
+ else {
77
+ root = normalizeTileData(tileset.root, tileset);
95
78
  }
96
- } = implicitTilingExtension;
97
- const subtreeUrl = replaceContentUrlTemplate(subtreesUriTemplate, 0, 0, 0, 0);
98
- const rootSubtreeUrl = "".concat(basePath, "/").concat(subtreeUrl);
99
- const rootSubtree = await load(rootSubtreeUrl, Tile3DSubtreeLoader);
100
- const contentUrlTemplate = "".concat(basePath, "/").concat(tileset.root.content.uri);
101
- const refine = tileset.root.refine;
102
- const rootLodMetricValue = tileset.root.geometricError;
103
- const rootBoundingVolume = tileset.root.boundingVolume;
104
- const options = {
105
- contentUrlTemplate,
106
- subtreesUriTemplate,
107
- subdivisionScheme,
108
- subtreeLevels,
109
- maximumLevel,
110
- refine,
111
- basePath,
112
- lodMetricType: LOD_METRIC_TYPE.GEOMETRIC_ERROR,
113
- rootLodMetricValue,
114
- rootBoundingVolume,
115
- getTileType,
116
- getRefine
117
- };
118
- return await normalizeImplicitTileData(tileset.root, rootSubtree, options);
79
+ const stack = [];
80
+ stack.push(root);
81
+ while (stack.length > 0) {
82
+ const tile = stack.pop() || {};
83
+ const children = tile.children || [];
84
+ for (let childHeader of children) {
85
+ const childImplicitTilingExtension = getImplicitTilingExtensionData(childHeader);
86
+ if (childImplicitTilingExtension) {
87
+ childHeader = await normalizeImplicitTileHeaders(childHeader, tileset, childImplicitTilingExtension, options);
88
+ }
89
+ else {
90
+ normalizeTileData(childHeader, { basePath });
91
+ }
92
+ stack.push(childHeader);
93
+ }
94
+ }
95
+ return root;
119
96
  }
120
- export async function normalizeImplicitTileData(tile, rootSubtree, options) {
121
- if (!tile) {
122
- return null;
123
- }
124
-
125
- tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;
126
- tile.lodMetricValue = tile.geometricError;
127
- tile.transformMatrix = tile.transform;
128
- const {
129
- children,
130
- contentUrl
131
- } = await parseImplicitTiles({
132
- subtree: rootSubtree,
133
- options
134
- });
135
-
136
- if (contentUrl) {
137
- tile.contentUrl = contentUrl;
138
- tile.content = {
139
- uri: contentUrl.replace("".concat(options.basePath, "/"), '')
97
+ exports.normalizeTileHeaders = normalizeTileHeaders;
98
+ /**
99
+ * Do normalisation of implicit tile headers
100
+ * TODO Check if Tile3D class can be a return type here.
101
+ * @param tileset
102
+ */
103
+ async function normalizeImplicitTileHeaders(tile, tileset, implicitTilingExtension, options) {
104
+ const basePath = tileset.basePath;
105
+ const { subdivisionScheme, maximumLevel, subtreeLevels, subtrees: { uri: subtreesUriTemplate } } = implicitTilingExtension;
106
+ const replacedUrlTemplate = (0, parse_3d_implicit_tiles_1.replaceContentUrlTemplate)(subtreesUriTemplate, 0, 0, 0, 0);
107
+ const subtreeUrl = resolveUri(replacedUrlTemplate, basePath);
108
+ const subtree = await (0, core_1.load)(subtreeUrl, tile_3d_subtree_loader_1.Tile3DSubtreeLoader, options);
109
+ const contentUrlTemplate = resolveUri(tile.content.uri, basePath);
110
+ const refine = tileset?.root?.refine;
111
+ // @ts-ignore
112
+ const rootLodMetricValue = tile.geometricError;
113
+ // Replace tile.boundingVolume with the the bounding volume specified by the extensions['3DTILES_bounding_volume_S2']
114
+ const s2VolumeInfo = tile.boundingVolume.extensions?.['3DTILES_bounding_volume_S2'];
115
+ if (s2VolumeInfo) {
116
+ const box = (0, s2_corners_to_obb_1.convertS2BoundingVolumetoOBB)(s2VolumeInfo);
117
+ const s2VolumeBox = { box, s2VolumeInfo };
118
+ tile.boundingVolume = s2VolumeBox;
119
+ }
120
+ const rootBoundingVolume = tile.boundingVolume;
121
+ const implicitOptions = {
122
+ contentUrlTemplate,
123
+ subtreesUriTemplate,
124
+ subdivisionScheme,
125
+ subtreeLevels,
126
+ maximumLevel,
127
+ refine,
128
+ basePath,
129
+ lodMetricType: tiles_1.LOD_METRIC_TYPE.GEOMETRIC_ERROR,
130
+ rootLodMetricValue,
131
+ rootBoundingVolume,
132
+ getTileType,
133
+ getRefine
140
134
  };
141
- }
142
-
143
- tile.refine = getRefine(tile.refine);
144
- tile.type = getTileType(tile);
145
- tile.children = children;
146
- tile.id = tile.contentUrl;
147
- return tile;
135
+ return await normalizeImplicitTileData(tile, subtree, implicitOptions);
136
+ }
137
+ exports.normalizeImplicitTileHeaders = normalizeImplicitTileHeaders;
138
+ /**
139
+ * Do implicit data normalisation to create hierarchical tile structure
140
+ * @param tile
141
+ * @param rootSubtree
142
+ * @param options
143
+ * @returns
144
+ */
145
+ async function normalizeImplicitTileData(tile, rootSubtree, options) {
146
+ if (!tile) {
147
+ return null;
148
+ }
149
+ tile.lodMetricType = tiles_1.LOD_METRIC_TYPE.GEOMETRIC_ERROR;
150
+ tile.lodMetricValue = tile.geometricError;
151
+ tile.transformMatrix = tile.transform;
152
+ const { children, contentUrl } = await (0, parse_3d_implicit_tiles_1.parseImplicitTiles)({
153
+ subtree: rootSubtree,
154
+ options,
155
+ s2VolumeBox: tile
156
+ });
157
+ if (contentUrl) {
158
+ tile.contentUrl = contentUrl;
159
+ tile.content = { uri: contentUrl.replace(`${options.basePath}/`, '') };
160
+ }
161
+ tile.refine = getRefine(tile.refine);
162
+ tile.type = getTileType(tile);
163
+ tile.children = children;
164
+ tile.id = tile.contentUrl;
165
+ return tile;
166
+ }
167
+ exports.normalizeImplicitTileData = normalizeImplicitTileData;
168
+ /**
169
+ * Implicit Tiling data can be in 3DTILES_implicit_tiling for 3DTiles v.Next or directly in implicitTiling object for 3DTiles v1.1.
170
+ * Spec 3DTiles v.Next - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling
171
+ * Spec 3DTiles v.1.1 - https://github.com/CesiumGS/3d-tiles/tree/draft-1.1/specification/ImplicitTiling
172
+ * @param tile
173
+ * @returns
174
+ */
175
+ function getImplicitTilingExtensionData(tile) {
176
+ return tile?.extensions?.['3DTILES_implicit_tiling'] || tile?.implicitTiling;
148
177
  }
149
- //# sourceMappingURL=parse-3d-tile-header.js.map
@@ -1,2 +1,4 @@
1
- export declare function parseInstancedModel3DTile(tile: any, arrayBuffer: any, byteOffset: any, options: any, context: any): Promise<any>;
1
+ import { Tiles3DLoaderOptions } from '../../tiles-3d-loader';
2
+ import { LoaderContext } from '@loaders.gl/loader-utils';
3
+ export declare function parseInstancedModel3DTile(tile: any, arrayBuffer: ArrayBuffer, byteOffset: number, options: Tiles3DLoaderOptions, context: LoaderContext): Promise<number>;
2
4
  //# sourceMappingURL=parse-3d-tile-instanced-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-3d-tile-instanced-model.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-3d-tile-instanced-model.ts"],"names":[],"mappings":"AAaA,wBAAsB,yBAAyB,CAAC,IAAI,KAAA,EAAE,WAAW,KAAA,EAAE,UAAU,KAAA,EAAE,OAAO,KAAA,EAAE,OAAO,KAAA,gBAI9F"}
1
+ {"version":3,"file":"parse-3d-tile-instanced-model.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-3d-tile-instanced-model.ts"],"names":[],"mappings":"AAYA,OAAO,EAAC,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAEvD,wBAAsB,yBAAyB,CAC7C,IAAI,KAAA,EACJ,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CAIjB"}