@loaders.gl/3d-tiles 3.1.0-alpha.3 → 3.1.0-beta.2

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 (301) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +9972 -4
  4. package/dist/cesium-ion-loader.d.ts +6 -0
  5. package/dist/cesium-ion-loader.d.ts.map +1 -0
  6. package/dist/cesium-ion-loader.js +36 -32
  7. package/dist/es5/bundle.js +7 -0
  8. package/dist/es5/bundle.js.map +1 -0
  9. package/dist/es5/cesium-ion-loader.js +45 -0
  10. package/dist/es5/cesium-ion-loader.js.map +1 -0
  11. package/dist/es5/index.js +72 -0
  12. package/dist/es5/index.js.map +1 -0
  13. package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js +108 -0
  14. package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -0
  15. package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js +223 -0
  16. package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -0
  17. package/dist/es5/lib/classes/tile-3d-batch-table.js +312 -0
  18. package/dist/es5/lib/classes/tile-3d-batch-table.js.map +1 -0
  19. package/dist/es5/lib/classes/tile-3d-feature-table.js +103 -0
  20. package/dist/es5/lib/classes/tile-3d-feature-table.js.map +1 -0
  21. package/dist/es5/lib/constants.js +31 -0
  22. package/dist/es5/lib/constants.js.map +1 -0
  23. package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js +56 -0
  24. package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js.map +1 -0
  25. package/dist/es5/lib/encoders/encode-3d-tile-composite.js +34 -0
  26. package/dist/es5/lib/encoders/encode-3d-tile-composite.js.map +1 -0
  27. package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js +48 -0
  28. package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -0
  29. package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js +52 -0
  30. package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -0
  31. package/dist/es5/lib/encoders/encode-3d-tile.js +48 -0
  32. package/dist/es5/lib/encoders/encode-3d-tile.js.map +1 -0
  33. package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js +41 -0
  34. package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -0
  35. package/dist/es5/lib/ion/ion.js +91 -0
  36. package/dist/es5/lib/ion/ion.js.map +1 -0
  37. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js +75 -0
  38. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -0
  39. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js +40 -0
  40. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -0
  41. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js +40 -0
  42. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -0
  43. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js +83 -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 +24 -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 +73 -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 +100 -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 +31 -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 +43 -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 +25 -0
  56. package/dist/es5/lib/parsers/parse-3d-tile-composite.js.map +1 -0
  57. package/dist/es5/lib/parsers/parse-3d-tile-header.js +86 -0
  58. package/dist/es5/lib/parsers/parse-3d-tile-header.js.map +1 -0
  59. package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js +195 -0
  60. package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -0
  61. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js +265 -0
  62. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -0
  63. package/dist/es5/lib/parsers/parse-3d-tile.js +41 -0
  64. package/dist/es5/lib/parsers/parse-3d-tile.js.map +1 -0
  65. package/dist/es5/lib/utils/version.js +9 -0
  66. package/dist/es5/lib/utils/version.js.map +1 -0
  67. package/dist/es5/tile-3d-subtree-loader.js +26 -0
  68. package/dist/es5/tile-3d-subtree-loader.js.map +1 -0
  69. package/dist/es5/tile-3d-writer.js +32 -0
  70. package/dist/es5/tile-3d-writer.js.map +1 -0
  71. package/dist/es5/tiles-3d-loader.js +85 -0
  72. package/dist/es5/tiles-3d-loader.js.map +1 -0
  73. package/dist/es5/types.js +2 -0
  74. package/dist/{types.js.map → es5/types.js.map} +0 -0
  75. package/dist/esm/bundle.js +5 -0
  76. package/dist/esm/bundle.js.map +1 -0
  77. package/dist/esm/cesium-ion-loader.js +36 -0
  78. package/dist/esm/cesium-ion-loader.js.map +1 -0
  79. package/dist/esm/index.js +9 -0
  80. package/dist/esm/index.js.map +1 -0
  81. package/dist/esm/lib/classes/helpers/tile-3d-accessor-utils.js +96 -0
  82. package/dist/esm/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -0
  83. package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js +215 -0
  84. package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -0
  85. package/dist/esm/lib/classes/tile-3d-batch-table.js +304 -0
  86. package/dist/esm/lib/classes/tile-3d-batch-table.js.map +1 -0
  87. package/dist/esm/lib/classes/tile-3d-feature-table.js +94 -0
  88. package/dist/esm/lib/classes/tile-3d-feature-table.js.map +1 -0
  89. package/dist/esm/lib/constants.js +21 -0
  90. package/dist/esm/lib/constants.js.map +1 -0
  91. package/dist/esm/lib/encoders/encode-3d-tile-batched-model.js +46 -0
  92. package/dist/esm/lib/encoders/encode-3d-tile-batched-model.js.map +1 -0
  93. package/dist/esm/lib/encoders/encode-3d-tile-composite.js +25 -0
  94. package/dist/esm/lib/encoders/encode-3d-tile-composite.js.map +1 -0
  95. package/dist/esm/lib/encoders/encode-3d-tile-instanced-model.js +38 -0
  96. package/dist/esm/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -0
  97. package/dist/esm/lib/encoders/encode-3d-tile-point-cloud.js +41 -0
  98. package/dist/esm/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -0
  99. package/dist/esm/lib/encoders/encode-3d-tile.js +35 -0
  100. package/dist/esm/lib/encoders/encode-3d-tile.js.map +1 -0
  101. package/dist/esm/lib/encoders/helpers/encode-3d-tile-header.js +31 -0
  102. package/dist/esm/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -0
  103. package/dist/esm/lib/ion/ion.js +77 -0
  104. package/dist/esm/lib/ion/ion.js.map +1 -0
  105. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js +67 -0
  106. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -0
  107. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-normals.js +30 -0
  108. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -0
  109. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-positions.js +31 -0
  110. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -0
  111. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js +69 -0
  112. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -0
  113. package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js +17 -0
  114. package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -0
  115. package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js +64 -0
  116. package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -0
  117. package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js +89 -0
  118. package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -0
  119. package/dist/esm/lib/parsers/helpers/parse-utils.js +19 -0
  120. package/dist/esm/lib/parsers/helpers/parse-utils.js.map +1 -0
  121. package/dist/esm/lib/parsers/parse-3d-tile-batched-model.js +29 -0
  122. package/dist/esm/lib/parsers/parse-3d-tile-batched-model.js.map +1 -0
  123. package/dist/esm/lib/parsers/parse-3d-tile-composite.js +17 -0
  124. package/dist/esm/lib/parsers/parse-3d-tile-composite.js.map +1 -0
  125. package/dist/esm/lib/parsers/parse-3d-tile-header.js +77 -0
  126. package/dist/esm/lib/parsers/parse-3d-tile-header.js.map +1 -0
  127. package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js +177 -0
  128. package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -0
  129. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js +245 -0
  130. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -0
  131. package/dist/esm/lib/parsers/parse-3d-tile.js +28 -0
  132. package/dist/esm/lib/parsers/parse-3d-tile.js.map +1 -0
  133. package/dist/esm/lib/utils/version.js +2 -0
  134. package/dist/esm/lib/utils/version.js.map +1 -0
  135. package/dist/esm/tile-3d-subtree-loader.js +14 -0
  136. package/dist/esm/tile-3d-subtree-loader.js.map +1 -0
  137. package/dist/esm/tile-3d-writer.js +20 -0
  138. package/dist/esm/tile-3d-writer.js.map +1 -0
  139. package/dist/esm/tiles-3d-loader.js +72 -0
  140. package/dist/esm/tiles-3d-loader.js.map +1 -0
  141. package/dist/esm/types.js +2 -0
  142. package/dist/esm/types.js.map +1 -0
  143. package/dist/index.d.ts +10 -0
  144. package/dist/index.d.ts.map +1 -0
  145. package/dist/index.js +26 -8
  146. package/dist/lib/classes/helpers/tile-3d-accessor-utils.d.ts +8 -0
  147. package/dist/lib/classes/helpers/tile-3d-accessor-utils.d.ts.map +1 -0
  148. package/dist/lib/classes/helpers/tile-3d-accessor-utils.js +106 -89
  149. package/dist/lib/classes/tile-3d-batch-table-hierarchy.d.ts +10 -0
  150. package/dist/lib/classes/tile-3d-batch-table-hierarchy.d.ts.map +1 -0
  151. package/dist/lib/classes/tile-3d-batch-table-hierarchy.js +184 -202
  152. package/dist/lib/classes/tile-3d-batch-table.d.ts +34 -0
  153. package/dist/lib/classes/tile-3d-batch-table.d.ts.map +1 -0
  154. package/dist/lib/classes/tile-3d-batch-table.js +223 -267
  155. package/dist/lib/classes/tile-3d-feature-table.d.ts +15 -0
  156. package/dist/lib/classes/tile-3d-feature-table.d.ts.map +1 -0
  157. package/dist/lib/classes/tile-3d-feature-table.js +64 -79
  158. package/dist/lib/constants.d.ts +21 -0
  159. package/dist/lib/constants.d.ts.map +1 -0
  160. package/dist/lib/constants.js +22 -18
  161. package/dist/lib/encoders/encode-3d-tile-batched-model.d.ts +2 -0
  162. package/dist/lib/encoders/encode-3d-tile-batched-model.d.ts.map +1 -0
  163. package/dist/lib/encoders/encode-3d-tile-batched-model.js +45 -45
  164. package/dist/lib/encoders/encode-3d-tile-composite.d.ts +2 -0
  165. package/dist/lib/encoders/encode-3d-tile-composite.d.ts.map +1 -0
  166. package/dist/lib/encoders/encode-3d-tile-composite.js +23 -24
  167. package/dist/lib/encoders/encode-3d-tile-instanced-model.d.ts +2 -0
  168. package/dist/lib/encoders/encode-3d-tile-instanced-model.d.ts.map +1 -0
  169. package/dist/lib/encoders/encode-3d-tile-instanced-model.js +37 -37
  170. package/dist/lib/encoders/encode-3d-tile-point-cloud.d.ts +2 -0
  171. package/dist/lib/encoders/encode-3d-tile-point-cloud.d.ts.map +1 -0
  172. package/dist/lib/encoders/encode-3d-tile-point-cloud.js +36 -38
  173. package/dist/lib/encoders/encode-3d-tile.d.ts +2 -0
  174. package/dist/lib/encoders/encode-3d-tile.d.ts.map +1 -0
  175. package/dist/lib/encoders/encode-3d-tile.js +30 -32
  176. package/dist/lib/encoders/helpers/encode-3d-tile-header.d.ts +3 -0
  177. package/dist/lib/encoders/helpers/encode-3d-tile-header.d.ts.map +1 -0
  178. package/dist/lib/encoders/helpers/encode-3d-tile-header.js +28 -29
  179. package/dist/lib/ion/ion.d.ts +4 -0
  180. package/dist/lib/ion/ion.d.ts.map +1 -0
  181. package/dist/lib/ion/ion.js +60 -69
  182. package/dist/lib/parsers/helpers/normalize-3d-tile-colors.d.ts +7 -0
  183. package/dist/lib/parsers/helpers/normalize-3d-tile-colors.d.ts.map +1 -0
  184. package/dist/lib/parsers/helpers/normalize-3d-tile-colors.js +60 -62
  185. package/dist/lib/parsers/helpers/normalize-3d-tile-normals.d.ts +6 -0
  186. package/dist/lib/parsers/helpers/normalize-3d-tile-normals.d.ts.map +1 -0
  187. package/dist/lib/parsers/helpers/normalize-3d-tile-normals.js +26 -26
  188. package/dist/lib/parsers/helpers/normalize-3d-tile-positions.d.ts +2 -0
  189. package/dist/lib/parsers/helpers/normalize-3d-tile-positions.d.ts.map +1 -0
  190. package/dist/lib/parsers/helpers/normalize-3d-tile-positions.js +39 -28
  191. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.d.ts +7 -0
  192. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.d.ts.map +1 -0
  193. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js +82 -63
  194. package/dist/lib/parsers/helpers/parse-3d-tile-header.d.ts +2 -0
  195. package/dist/lib/parsers/helpers/parse-3d-tile-header.d.ts.map +1 -0
  196. package/dist/lib/parsers/helpers/parse-3d-tile-header.js +26 -15
  197. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts +9 -0
  198. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts.map +1 -0
  199. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.js +74 -0
  200. package/dist/lib/parsers/helpers/parse-3d-tile-tables.d.ts +3 -0
  201. package/dist/lib/parsers/helpers/parse-3d-tile-tables.d.ts.map +1 -0
  202. package/dist/lib/parsers/helpers/parse-3d-tile-tables.js +85 -81
  203. package/dist/lib/parsers/helpers/parse-utils.d.ts +4 -0
  204. package/dist/lib/parsers/helpers/parse-utils.d.ts.map +1 -0
  205. package/dist/lib/parsers/helpers/parse-utils.js +25 -16
  206. package/dist/lib/parsers/parse-3d-tile-batched-model.d.ts +2 -0
  207. package/dist/lib/parsers/parse-3d-tile-batched-model.d.ts.map +1 -0
  208. package/dist/lib/parsers/parse-3d-tile-batched-model.js +30 -26
  209. package/dist/lib/parsers/parse-3d-tile-composite.d.ts +2 -0
  210. package/dist/lib/parsers/parse-3d-tile-composite.d.ts.map +1 -0
  211. package/dist/lib/parsers/parse-3d-tile-composite.js +25 -16
  212. package/dist/lib/parsers/parse-3d-tile-header.d.ts +3 -0
  213. package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -0
  214. package/dist/lib/parsers/parse-3d-tile-header.js +59 -70
  215. package/dist/lib/parsers/parse-3d-tile-instanced-model.d.ts +2 -0
  216. package/dist/lib/parsers/parse-3d-tile-instanced-model.d.ts.map +1 -0
  217. package/dist/lib/parsers/parse-3d-tile-instanced-model.js +179 -170
  218. package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts +3 -0
  219. package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts.map +1 -0
  220. package/dist/lib/parsers/parse-3d-tile-point-cloud.js +350 -184
  221. package/dist/lib/parsers/parse-3d-tile.d.ts +2 -0
  222. package/dist/lib/parsers/parse-3d-tile.d.ts.map +1 -0
  223. package/dist/lib/parsers/parse-3d-tile.js +33 -27
  224. package/dist/lib/utils/version.d.ts +2 -0
  225. package/dist/lib/utils/version.d.ts.map +1 -0
  226. package/dist/lib/utils/version.js +7 -2
  227. package/dist/tile-3d-subtree-loader.d.ts +7 -0
  228. package/dist/tile-3d-subtree-loader.d.ts.map +1 -0
  229. package/dist/tile-3d-subtree-loader.js +23 -0
  230. package/dist/tile-3d-writer.d.ts +6 -0
  231. package/dist/tile-3d-writer.d.ts.map +1 -0
  232. package/dist/tile-3d-writer.js +24 -17
  233. package/dist/tiles-3d-loader.d.ts +6 -0
  234. package/dist/tiles-3d-loader.d.ts.map +1 -0
  235. package/dist/tiles-3d-loader.js +63 -62
  236. package/dist/types.d.ts +75 -0
  237. package/dist/types.d.ts.map +1 -0
  238. package/dist/types.js +2 -2
  239. package/package.json +14 -12
  240. package/src/index.ts +1 -0
  241. package/src/lib/classes/helpers/{tile-3d-accessor-utils.js → tile-3d-accessor-utils.ts} +0 -0
  242. package/src/lib/classes/{tile-3d-batch-table-hierarchy.js → tile-3d-batch-table-hierarchy.ts} +0 -0
  243. package/src/lib/classes/{tile-3d-batch-table.js → tile-3d-batch-table.ts} +14 -4
  244. package/src/lib/classes/{tile-3d-feature-table.js → tile-3d-feature-table.ts} +5 -2
  245. package/src/lib/{constants.js → constants.ts} +0 -0
  246. package/src/lib/encoders/{encode-3d-tile-batched-model.js → encode-3d-tile-batched-model.ts} +0 -0
  247. package/src/lib/encoders/{encode-3d-tile-composite.js → encode-3d-tile-composite.ts} +0 -0
  248. package/src/lib/encoders/{encode-3d-tile-instanced-model.js → encode-3d-tile-instanced-model.ts} +0 -0
  249. package/src/lib/encoders/{encode-3d-tile-point-cloud.js → encode-3d-tile-point-cloud.ts} +0 -0
  250. package/src/lib/encoders/{encode-3d-tile.js → encode-3d-tile.ts} +0 -0
  251. package/src/lib/encoders/helpers/{encode-3d-tile-header.js → encode-3d-tile-header.ts} +0 -0
  252. package/src/lib/parsers/helpers/{normalize-3d-tile-colors.js → normalize-3d-tile-colors.ts} +1 -1
  253. package/src/lib/parsers/helpers/{normalize-3d-tile-normals.js → normalize-3d-tile-normals.ts} +0 -0
  254. package/src/lib/parsers/helpers/{normalize-3d-tile-positions.js → normalize-3d-tile-positions.ts} +0 -0
  255. package/src/lib/parsers/helpers/{parse-3d-tile-gltf-view.js → parse-3d-tile-gltf-view.ts} +1 -1
  256. package/src/lib/parsers/helpers/{parse-3d-tile-header.js → parse-3d-tile-header.ts} +0 -0
  257. package/src/lib/parsers/helpers/parse-3d-tile-subtree.ts +104 -0
  258. package/src/lib/parsers/helpers/{parse-3d-tile-tables.js → parse-3d-tile-tables.ts} +1 -1
  259. package/src/lib/parsers/helpers/{parse-utils.js → parse-utils.ts} +0 -0
  260. package/src/lib/parsers/{parse-3d-tile-batched-model.js → parse-3d-tile-batched-model.ts} +0 -0
  261. package/src/lib/parsers/{parse-3d-tile-composite.js → parse-3d-tile-composite.ts} +0 -0
  262. package/src/lib/parsers/{parse-3d-tile-header.js → parse-3d-tile-header.ts} +1 -1
  263. package/src/lib/parsers/{parse-3d-tile-instanced-model.js → parse-3d-tile-instanced-model.ts} +6 -0
  264. package/src/lib/parsers/{parse-3d-tile-point-cloud.js → parse-3d-tile-point-cloud.ts} +2 -2
  265. package/src/lib/parsers/{parse-3d-tile.js → parse-3d-tile.ts} +4 -0
  266. package/src/lib/utils/{version.js → version.ts} +0 -0
  267. package/src/tile-3d-subtree-loader.ts +19 -0
  268. package/src/types.ts +33 -0
  269. package/dist/bundle.js.map +0 -1
  270. package/dist/cesium-ion-loader.js.map +0 -1
  271. package/dist/dist.min.js +0 -2
  272. package/dist/dist.min.js.map +0 -1
  273. package/dist/index.js.map +0 -1
  274. package/dist/lib/classes/helpers/tile-3d-accessor-utils.js.map +0 -1
  275. package/dist/lib/classes/tile-3d-batch-table-hierarchy.js.map +0 -1
  276. package/dist/lib/classes/tile-3d-batch-table.js.map +0 -1
  277. package/dist/lib/classes/tile-3d-feature-table.js.map +0 -1
  278. package/dist/lib/constants.js.map +0 -1
  279. package/dist/lib/encoders/encode-3d-tile-batched-model.js.map +0 -1
  280. package/dist/lib/encoders/encode-3d-tile-composite.js.map +0 -1
  281. package/dist/lib/encoders/encode-3d-tile-instanced-model.js.map +0 -1
  282. package/dist/lib/encoders/encode-3d-tile-point-cloud.js.map +0 -1
  283. package/dist/lib/encoders/encode-3d-tile.js.map +0 -1
  284. package/dist/lib/encoders/helpers/encode-3d-tile-header.js.map +0 -1
  285. package/dist/lib/ion/ion.js.map +0 -1
  286. package/dist/lib/parsers/helpers/normalize-3d-tile-colors.js.map +0 -1
  287. package/dist/lib/parsers/helpers/normalize-3d-tile-normals.js.map +0 -1
  288. package/dist/lib/parsers/helpers/normalize-3d-tile-positions.js.map +0 -1
  289. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +0 -1
  290. package/dist/lib/parsers/helpers/parse-3d-tile-header.js.map +0 -1
  291. package/dist/lib/parsers/helpers/parse-3d-tile-tables.js.map +0 -1
  292. package/dist/lib/parsers/helpers/parse-utils.js.map +0 -1
  293. package/dist/lib/parsers/parse-3d-tile-batched-model.js.map +0 -1
  294. package/dist/lib/parsers/parse-3d-tile-composite.js.map +0 -1
  295. package/dist/lib/parsers/parse-3d-tile-header.js.map +0 -1
  296. package/dist/lib/parsers/parse-3d-tile-instanced-model.js.map +0 -1
  297. package/dist/lib/parsers/parse-3d-tile-point-cloud.js.map +0 -1
  298. package/dist/lib/parsers/parse-3d-tile.js.map +0 -1
  299. package/dist/lib/utils/version.js.map +0 -1
  300. package/dist/tile-3d-writer.js.map +0 -1
  301. package/dist/tiles-3d-loader.js.map +0 -1
@@ -0,0 +1,36 @@
1
+ import { Tiles3DLoader } from './tiles-3d-loader';
2
+ import { getIonTilesetMetadata } from './lib/ion/ion';
3
+
4
+ async function preload(url, options = {}) {
5
+ options = options['cesium-ion'] || {};
6
+ const {
7
+ accessToken
8
+ } = options;
9
+ let assetId = options.assetId;
10
+
11
+ if (!Number.isFinite(assetId)) {
12
+ const matched = url.match(/\/([0-9]+)\/tileset.json/);
13
+ assetId = matched && matched[1];
14
+ }
15
+
16
+ return getIonTilesetMetadata(accessToken, assetId);
17
+ }
18
+
19
+ export const CesiumIonLoader = { ...Tiles3DLoader,
20
+ id: 'cesium-ion',
21
+ name: 'Cesium Ion',
22
+ preload,
23
+ parse: async (data, options, context) => {
24
+ options = { ...options
25
+ };
26
+ options['3d-tiles'] = options['cesium-ion'];
27
+ options.loader = CesiumIonLoader;
28
+ return Tiles3DLoader.parse(data, options, context);
29
+ },
30
+ options: {
31
+ 'cesium-ion': { ...Tiles3DLoader.options['3d-tiles'],
32
+ accessToken: null
33
+ }
34
+ }
35
+ };
36
+ //# sourceMappingURL=cesium-ion-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/cesium-ion-loader.ts"],"names":["Tiles3DLoader","getIonTilesetMetadata","preload","url","options","accessToken","assetId","Number","isFinite","matched","match","CesiumIonLoader","id","name","parse","data","context","loader"],"mappings":"AACA,SAAQA,aAAR,QAA4B,mBAA5B;AACA,SAAQC,qBAAR,QAAoC,eAApC;;AAEA,eAAeC,OAAf,CAAuBC,GAAvB,EAA4BC,OAAO,GAAG,EAAtC,EAA0C;AACxCA,EAAAA,OAAO,GAAGA,OAAO,CAAC,YAAD,CAAP,IAAyB,EAAnC;AAEA,QAAM;AAACC,IAAAA;AAAD,MAAgBD,OAAtB;AAEA,MAAIE,OAAO,GAAGF,OAAO,CAACE,OAAtB;;AACA,MAAI,CAACC,MAAM,CAACC,QAAP,CAAgBF,OAAhB,CAAL,EAA+B;AAC7B,UAAMG,OAAO,GAAGN,GAAG,CAACO,KAAJ,CAAU,0BAAV,CAAhB;AACAJ,IAAAA,OAAO,GAAGG,OAAO,IAAIA,OAAO,CAAC,CAAD,CAA5B;AACD;;AACD,SAAOR,qBAAqB,CAACI,WAAD,EAAcC,OAAd,CAA5B;AACD;;AAKD,OAAO,MAAMK,eAAiC,GAAG,EAC/C,GAAGX,aAD4C;AAE/CY,EAAAA,EAAE,EAAE,YAF2C;AAG/CC,EAAAA,IAAI,EAAE,YAHyC;AAK/CX,EAAAA,OAL+C;AAM/CY,EAAAA,KAAK,EAAE,OAAOC,IAAP,EAAaX,OAAb,EAAuBY,OAAvB,KAAoC;AACzCZ,IAAAA,OAAO,GAAG,EAAC,GAAGA;AAAJ,KAAV;AACAA,IAAAA,OAAO,CAAC,UAAD,CAAP,GAAsBA,OAAO,CAAC,YAAD,CAA7B;AAEAA,IAAAA,OAAO,CAACa,MAAR,GAAiBN,eAAjB;AACA,WAAOX,aAAa,CAACc,KAAd,CAAoBC,IAApB,EAA0BX,OAA1B,EAAmCY,OAAnC,CAAP;AACD,GAZ8C;AAa/CZ,EAAAA,OAAO,EAAE;AACP,kBAAc,EACZ,GAAGJ,aAAa,CAACI,OAAd,CAAsB,UAAtB,CADS;AAEZC,MAAAA,WAAW,EAAE;AAFD;AADP;AAbsC,CAA1C","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {Tiles3DLoader} from './tiles-3d-loader';\nimport {getIonTilesetMetadata} from './lib/ion/ion';\n\nasync function preload(url, options = {}) {\n options = options['cesium-ion'] || {};\n // @ts-ignore\n const {accessToken} = options;\n // @ts-ignore\n let assetId = options.assetId;\n if (!Number.isFinite(assetId)) {\n const matched = url.match(/\\/([0-9]+)\\/tileset.json/);\n assetId = matched && matched[1];\n }\n return getIonTilesetMetadata(accessToken, assetId);\n}\n\n/**\n * Loader for 3D tiles from Cesium ION\n */\nexport const CesiumIonLoader: LoaderWithParser = {\n ...Tiles3DLoader,\n id: 'cesium-ion',\n name: 'Cesium Ion',\n // @ts-ignore\n preload,\n parse: async (data, options?, context?) => {\n options = {...options};\n options['3d-tiles'] = options['cesium-ion'];\n // @ts-ignore\n options.loader = CesiumIonLoader;\n return Tiles3DLoader.parse(data, options, context); // , loader);\n },\n options: {\n 'cesium-ion': {\n ...Tiles3DLoader.options['3d-tiles'],\n accessToken: null\n }\n }\n};\n"],"file":"cesium-ion-loader.js"}
@@ -0,0 +1,9 @@
1
+ export { Tiles3DLoader } from './tiles-3d-loader';
2
+ export { CesiumIonLoader } from './cesium-ion-loader';
3
+ export { Tile3DSubtreeLoader } from './tile-3d-subtree-loader';
4
+ export { Tile3DWriter } from './tile-3d-writer';
5
+ export { default as Tile3DFeatureTable } from './lib/classes/tile-3d-feature-table';
6
+ export { default as Tile3DBatchTable } from './lib/classes/tile-3d-batch-table';
7
+ export { TILE3D_TYPE } from './lib/constants';
8
+ export { getIonTilesetMetadata as _getIonTilesetMetadata } from './lib/ion/ion';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts"],"names":["Tiles3DLoader","CesiumIonLoader","Tile3DSubtreeLoader","Tile3DWriter","default","Tile3DFeatureTable","Tile3DBatchTable","TILE3D_TYPE","getIonTilesetMetadata","_getIonTilesetMetadata"],"mappings":"AACA,SAAQA,aAAR,QAA4B,mBAA5B;AACA,SAAQC,eAAR,QAA8B,qBAA9B;AACA,SAAQC,mBAAR,QAAkC,0BAAlC;AAGA,SAAQC,YAAR,QAA2B,kBAA3B;AAGA,SAAQC,OAAO,IAAIC,kBAAnB,QAA4C,qCAA5C;AACA,SAAQD,OAAO,IAAIE,gBAAnB,QAA0C,mCAA1C;AAGA,SAAQC,WAAR,QAA0B,iBAA1B;AACA,SAAQC,qBAAqB,IAAIC,sBAAjC,QAA8D,eAA9D","sourcesContent":["// LOADERS\nexport {Tiles3DLoader} from './tiles-3d-loader';\nexport {CesiumIonLoader} from './cesium-ion-loader';\nexport {Tile3DSubtreeLoader} from './tile-3d-subtree-loader';\n\n// WRITERS\nexport {Tile3DWriter} from './tile-3d-writer';\n\n// CLASSES\nexport {default as Tile3DFeatureTable} from './lib/classes/tile-3d-feature-table';\nexport {default as Tile3DBatchTable} from './lib/classes/tile-3d-batch-table';\n\n// EXPERIMENTAL\nexport {TILE3D_TYPE} from './lib/constants';\nexport {getIonTilesetMetadata as _getIonTilesetMetadata} from './lib/ion/ion';\nexport type {BatchTableJson, B3DMContent, Node3D} from './types';\n"],"file":"index.js"}
@@ -0,0 +1,96 @@
1
+ import { GLType } from '@loaders.gl/math';
2
+ import { assert } from '@loaders.gl/loader-utils';
3
+ const COMPONENTS_PER_ATTRIBUTE = {
4
+ SCALAR: 1,
5
+ VEC2: 2,
6
+ VEC3: 3,
7
+ VEC4: 4,
8
+ MAT2: 4,
9
+ MAT3: 9,
10
+ MAT4: 16
11
+ };
12
+ const UNPACKER = {
13
+ SCALAR: (values, i) => values[i],
14
+ VEC2: (values, i) => [values[2 * i + 0], values[2 * i + 1]],
15
+ VEC3: (values, i) => [values[3 * i + 0], values[3 * i + 1], values[3 * i + 2]],
16
+ VEC4: (values, i) => [values[4 * i + 0], values[4 * i + 1], values[4 * i + 2], values[4 * i + 3]],
17
+ MAT2: (values, i) => [values[4 * i + 0], values[4 * i + 1], values[4 * i + 2], values[4 * i + 3]],
18
+ MAT3: (values, i) => [values[9 * i + 0], values[9 * i + 1], values[9 * i + 2], values[9 * i + 3], values[9 * i + 4], values[9 * i + 5], values[9 * i + 6], values[9 * i + 7], values[9 * i + 8]],
19
+ MAT4: (values, i) => [values[16 * i + 0], values[16 * i + 1], values[16 * i + 2], values[16 * i + 3], values[16 * i + 4], values[16 * i + 5], values[16 * i + 6], values[16 * i + 7], values[16 * i + 8], values[16 * i + 9], values[16 * i + 10], values[16 * i + 11], values[16 * i + 12], values[16 * i + 13], values[16 * i + 14], values[16 * i + 15]]
20
+ };
21
+ const PACKER = {
22
+ SCALAR: (x, values, i) => {
23
+ values[i] = x;
24
+ },
25
+ VEC2: (x, values, i) => {
26
+ values[2 * i + 0] = x[0];
27
+ values[2 * i + 1] = x[1];
28
+ },
29
+ VEC3: (x, values, i) => {
30
+ values[3 * i + 0] = x[0];
31
+ values[3 * i + 1] = x[1];
32
+ values[3 * i + 2] = x[2];
33
+ },
34
+ VEC4: (x, values, i) => {
35
+ values[4 * i + 0] = x[0];
36
+ values[4 * i + 1] = x[1];
37
+ values[4 * i + 2] = x[2];
38
+ values[4 * i + 3] = x[3];
39
+ },
40
+ MAT2: (x, values, i) => {
41
+ values[4 * i + 0] = x[0];
42
+ values[4 * i + 1] = x[1];
43
+ values[4 * i + 2] = x[2];
44
+ values[4 * i + 3] = x[3];
45
+ },
46
+ MAT3: (x, values, i) => {
47
+ values[9 * i + 0] = x[0];
48
+ values[9 * i + 1] = x[1];
49
+ values[9 * i + 2] = x[2];
50
+ values[9 * i + 3] = x[3];
51
+ values[9 * i + 4] = x[4];
52
+ values[9 * i + 5] = x[5];
53
+ values[9 * i + 6] = x[6];
54
+ values[9 * i + 7] = x[7];
55
+ values[9 * i + 8] = x[8];
56
+ values[9 * i + 9] = x[9];
57
+ },
58
+ MAT4: (x, values, i) => {
59
+ values[16 * i + 0] = x[0];
60
+ values[16 * i + 1] = x[1];
61
+ values[16 * i + 2] = x[2];
62
+ values[16 * i + 3] = x[3];
63
+ values[16 * i + 4] = x[4];
64
+ values[16 * i + 5] = x[5];
65
+ values[16 * i + 6] = x[6];
66
+ values[16 * i + 7] = x[7];
67
+ values[16 * i + 8] = x[8];
68
+ values[16 * i + 9] = x[9];
69
+ values[16 * i + 10] = x[10];
70
+ values[16 * i + 11] = x[11];
71
+ values[16 * i + 12] = x[12];
72
+ values[16 * i + 13] = x[13];
73
+ values[16 * i + 14] = x[14];
74
+ values[16 * i + 15] = x[15];
75
+ }
76
+ };
77
+ export function createTypedArrayFromAccessor(tile3DAccessor, buffer, byteOffset, length) {
78
+ const {
79
+ componentType
80
+ } = tile3DAccessor;
81
+ assert(tile3DAccessor.componentType);
82
+ const type = typeof componentType === 'string' ? GLType.fromName(componentType) : componentType;
83
+ const size = COMPONENTS_PER_ATTRIBUTE[tile3DAccessor.type];
84
+ const unpacker = UNPACKER[tile3DAccessor.type];
85
+ const packer = PACKER[tile3DAccessor.type];
86
+ byteOffset += tile3DAccessor.byteOffset;
87
+ const values = GLType.createTypedArray(type, buffer, byteOffset, size * length);
88
+ return {
89
+ values,
90
+ type,
91
+ size,
92
+ unpacker,
93
+ packer
94
+ };
95
+ }
96
+ //# sourceMappingURL=tile-3d-accessor-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/lib/classes/helpers/tile-3d-accessor-utils.ts"],"names":["GLType","assert","COMPONENTS_PER_ATTRIBUTE","SCALAR","VEC2","VEC3","VEC4","MAT2","MAT3","MAT4","UNPACKER","values","i","PACKER","x","createTypedArrayFromAccessor","tile3DAccessor","buffer","byteOffset","length","componentType","type","fromName","size","unpacker","packer","createTypedArray"],"mappings":"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","sourcesContent":["import {GLType} from '@loaders.gl/math'; // '@math.gl/geometry';\nimport {assert} from '@loaders.gl/loader-utils';\n\nconst COMPONENTS_PER_ATTRIBUTE = {\n SCALAR: 1,\n VEC2: 2,\n VEC3: 3,\n VEC4: 4,\n MAT2: 4,\n MAT3: 9,\n MAT4: 16\n};\n\n// TODO - could just return typed array views...\n// prettier-ignore\nconst UNPACKER = {\n SCALAR: (values, i) => values[i],\n VEC2: (values, i) => [values[2 * i + 0], values[2 * i + 1]],\n VEC3: (values, i) => [values[3 * i + 0], values[3 * i + 1], values[3 * i + 2]],\n VEC4: (values, i) => [values[4 * i + 0], values[4 * i + 1], values[4 * i + 2], values[4 * i + 3]],\n // TODO: check column major\n MAT2: (values, i) => [\n values[4 * i + 0], values[4 * i + 1],\n values[4 * i + 2], values[4 * i + 3]\n ],\n MAT3: (values, i) => [\n values[9 * i + 0], values[9 * i + 1], values[9 * i + 2],\n values[9 * i + 3], values[9 * i + 4], values[9 * i + 5],\n values[9 * i + 6], values[9 * i + 7], values[9 * i + 8]\n ],\n MAT4: (values, i) => [\n values[16 * i + 0], values[16 * i + 1], values[16 * i + 2], values[16 * i + 3],\n values[16 * i + 4], values[16 * i + 5], values[16 * i + 6], values[16 * i + 7],\n values[16 * i + 8], values[16 * i + 9], values[16 * i + 10], values[16 * i + 11],\n values[16 * i + 12], values[16 * i + 13], values[16 * i + 14], values[16 * i + 15]\n ]\n};\n\nconst PACKER = {\n SCALAR: (x, values, i) => {\n values[i] = x;\n },\n VEC2: (x, values, i) => {\n values[2 * i + 0] = x[0];\n values[2 * i + 1] = x[1];\n },\n VEC3: (x, values, i) => {\n values[3 * i + 0] = x[0];\n values[3 * i + 1] = x[1];\n values[3 * i + 2] = x[2];\n },\n VEC4: (x, values, i) => {\n values[4 * i + 0] = x[0];\n values[4 * i + 1] = x[1];\n values[4 * i + 2] = x[2];\n values[4 * i + 3] = x[3];\n },\n // TODO: check column major correctness\n MAT2: (x, values, i) => {\n values[4 * i + 0] = x[0];\n values[4 * i + 1] = x[1];\n values[4 * i + 2] = x[2];\n values[4 * i + 3] = x[3];\n },\n MAT3: (x, values, i) => {\n values[9 * i + 0] = x[0];\n values[9 * i + 1] = x[1];\n values[9 * i + 2] = x[2];\n values[9 * i + 3] = x[3];\n values[9 * i + 4] = x[4];\n values[9 * i + 5] = x[5];\n values[9 * i + 6] = x[6];\n values[9 * i + 7] = x[7];\n values[9 * i + 8] = x[8];\n values[9 * i + 9] = x[9];\n },\n MAT4: (x, values, i) => {\n values[16 * i + 0] = x[0];\n values[16 * i + 1] = x[1];\n values[16 * i + 2] = x[2];\n values[16 * i + 3] = x[3];\n values[16 * i + 4] = x[4];\n values[16 * i + 5] = x[5];\n values[16 * i + 6] = x[6];\n values[16 * i + 7] = x[7];\n values[16 * i + 8] = x[8];\n values[16 * i + 9] = x[9];\n values[16 * i + 10] = x[10];\n values[16 * i + 11] = x[11];\n values[16 * i + 12] = x[12];\n values[16 * i + 13] = x[13];\n values[16 * i + 14] = x[14];\n values[16 * i + 15] = x[15];\n }\n};\n\nexport function createTypedArrayFromAccessor(tile3DAccessor, buffer, byteOffset, length) {\n const {componentType} = tile3DAccessor;\n assert(tile3DAccessor.componentType);\n const type = typeof componentType === 'string' ? GLType.fromName(componentType) : componentType;\n const size = COMPONENTS_PER_ATTRIBUTE[tile3DAccessor.type];\n const unpacker = UNPACKER[tile3DAccessor.type];\n const packer = PACKER[tile3DAccessor.type];\n\n byteOffset += tile3DAccessor.byteOffset;\n const values = GLType.createTypedArray(type, buffer, byteOffset, size * length);\n\n return {\n values,\n type,\n size,\n unpacker,\n packer\n };\n}\n"],"file":"tile-3d-accessor-utils.js"}
@@ -0,0 +1,215 @@
1
+ const defined = x => x !== undefined;
2
+
3
+ export function initializeHierarchy(batchTable, jsonHeader, binaryBody) {
4
+ if (!jsonHeader) {
5
+ return null;
6
+ }
7
+
8
+ let hierarchy = batchTable.getExtension('3DTILES_batch_table_hierarchy');
9
+ const legacyHierarchy = jsonHeader.HIERARCHY;
10
+
11
+ if (legacyHierarchy) {
12
+ console.warn('3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy.');
13
+ jsonHeader.extensions = jsonHeader.extensions || {};
14
+ jsonHeader.extensions['3DTILES_batch_table_hierarchy'] = legacyHierarchy;
15
+ hierarchy = legacyHierarchy;
16
+ }
17
+
18
+ if (!hierarchy) {
19
+ return null;
20
+ }
21
+
22
+ return initializeHierarchyValues(hierarchy, binaryBody);
23
+ }
24
+
25
+ function initializeHierarchyValues(hierarchyJson, binaryBody) {
26
+ let i;
27
+ let classId;
28
+ let binaryAccessor;
29
+ const instancesLength = hierarchyJson.instancesLength;
30
+ const classes = hierarchyJson.classes;
31
+ let classIds = hierarchyJson.classIds;
32
+ let parentCounts = hierarchyJson.parentCounts;
33
+ let parentIds = hierarchyJson.parentIds;
34
+ let parentIdsLength = instancesLength;
35
+
36
+ if (defined(classIds.byteOffset)) {
37
+ classIds.componentType = defaultValue(classIds.componentType, GL.UNSIGNED_SHORT);
38
+ classIds.type = AttributeType.SCALAR;
39
+ binaryAccessor = getBinaryAccessor(classIds);
40
+ classIds = binaryAccessor.createArrayBufferView(binaryBody.buffer, binaryBody.byteOffset + classIds.byteOffset, instancesLength);
41
+ }
42
+
43
+ let parentIndexes;
44
+
45
+ if (defined(parentCounts)) {
46
+ if (defined(parentCounts.byteOffset)) {
47
+ parentCounts.componentType = defaultValue(parentCounts.componentType, GL.UNSIGNED_SHORT);
48
+ parentCounts.type = AttributeType.SCALAR;
49
+ binaryAccessor = getBinaryAccessor(parentCounts);
50
+ parentCounts = binaryAccessor.createArrayBufferView(binaryBody.buffer, binaryBody.byteOffset + parentCounts.byteOffset, instancesLength);
51
+ }
52
+
53
+ parentIndexes = new Uint16Array(instancesLength);
54
+ parentIdsLength = 0;
55
+
56
+ for (i = 0; i < instancesLength; ++i) {
57
+ parentIndexes[i] = parentIdsLength;
58
+ parentIdsLength += parentCounts[i];
59
+ }
60
+ }
61
+
62
+ if (defined(parentIds) && defined(parentIds.byteOffset)) {
63
+ parentIds.componentType = defaultValue(parentIds.componentType, GL.UNSIGNED_SHORT);
64
+ parentIds.type = AttributeType.SCALAR;
65
+ binaryAccessor = getBinaryAccessor(parentIds);
66
+ parentIds = binaryAccessor.createArrayBufferView(binaryBody.buffer, binaryBody.byteOffset + parentIds.byteOffset, parentIdsLength);
67
+ }
68
+
69
+ const classesLength = classes.length;
70
+
71
+ for (i = 0; i < classesLength; ++i) {
72
+ const classInstancesLength = classes[i].length;
73
+ const properties = classes[i].instances;
74
+ const binaryProperties = getBinaryProperties(classInstancesLength, properties, binaryBody);
75
+ classes[i].instances = combine(binaryProperties, properties);
76
+ }
77
+
78
+ const classCounts = new Array(classesLength).fill(0);
79
+ const classIndexes = new Uint16Array(instancesLength);
80
+
81
+ for (i = 0; i < instancesLength; ++i) {
82
+ classId = classIds[i];
83
+ classIndexes[i] = classCounts[classId];
84
+ ++classCounts[classId];
85
+ }
86
+
87
+ const hierarchy = {
88
+ classes,
89
+ classIds,
90
+ classIndexes,
91
+ parentCounts,
92
+ parentIndexes,
93
+ parentIds
94
+ };
95
+ validateHierarchy(hierarchy);
96
+ return hierarchy;
97
+ }
98
+
99
+ export function traverseHierarchy(hierarchy, instanceIndex, endConditionCallback) {
100
+ if (!hierarchy) {
101
+ return;
102
+ }
103
+
104
+ const parentCounts = hierarchy.parentCounts;
105
+ const parentIds = hierarchy.parentIds;
106
+
107
+ if (parentIds) {
108
+ return endConditionCallback(hierarchy, instanceIndex);
109
+ }
110
+
111
+ if (parentCounts > 0) {
112
+ return traverseHierarchyMultipleParents(hierarchy, instanceIndex, endConditionCallback);
113
+ }
114
+
115
+ return traverseHierarchySingleParent(hierarchy, instanceIndex, endConditionCallback);
116
+ }
117
+
118
+ function traverseHierarchyMultipleParents(hierarchy, instanceIndex, endConditionCallback) {
119
+ const classIds = hierarchy.classIds;
120
+ const parentCounts = hierarchy.parentCounts;
121
+ const parentIds = hierarchy.parentIds;
122
+ const parentIndexes = hierarchy.parentIndexes;
123
+ const instancesLength = classIds.length;
124
+ const visited = scratchVisited;
125
+ visited.length = Math.max(visited.length, instancesLength);
126
+ const visitedMarker = ++marker;
127
+ const stack = scratchStack;
128
+ stack.length = 0;
129
+ stack.push(instanceIndex);
130
+
131
+ while (stack.length > 0) {
132
+ instanceIndex = stack.pop();
133
+
134
+ if (visited[instanceIndex] === visitedMarker) {
135
+ continue;
136
+ }
137
+
138
+ visited[instanceIndex] = visitedMarker;
139
+ const result = endConditionCallback(hierarchy, instanceIndex);
140
+
141
+ if (defined(result)) {
142
+ return result;
143
+ }
144
+
145
+ const parentCount = parentCounts[instanceIndex];
146
+ const parentIndex = parentIndexes[instanceIndex];
147
+
148
+ for (let i = 0; i < parentCount; ++i) {
149
+ const parentId = parentIds[parentIndex + i];
150
+
151
+ if (parentId !== instanceIndex) {
152
+ stack.push(parentId);
153
+ }
154
+ }
155
+ }
156
+
157
+ return null;
158
+ }
159
+
160
+ function traverseHierarchySingleParent(hierarchy, instanceIndex, endConditionCallback) {
161
+ let hasParent = true;
162
+
163
+ while (hasParent) {
164
+ const result = endConditionCallback(hierarchy, instanceIndex);
165
+
166
+ if (defined(result)) {
167
+ return result;
168
+ }
169
+
170
+ const parentId = hierarchy.parentIds[instanceIndex];
171
+ hasParent = parentId !== instanceIndex;
172
+ instanceIndex = parentId;
173
+ }
174
+
175
+ throw new Error('traverseHierarchySingleParent');
176
+ }
177
+
178
+ function validateHierarchy(hierarchy) {
179
+ const scratchValidateStack = [];
180
+ const classIds = hierarchy.classIds;
181
+ const instancesLength = classIds.length;
182
+
183
+ for (let i = 0; i < instancesLength; ++i) {
184
+ validateInstance(hierarchy, i, stack);
185
+ }
186
+ }
187
+
188
+ function validateInstance(hierarchy, instanceIndex, stack) {
189
+ const parentCounts = hierarchy.parentCounts;
190
+ const parentIds = hierarchy.parentIds;
191
+ const parentIndexes = hierarchy.parentIndexes;
192
+ const classIds = hierarchy.classIds;
193
+ const instancesLength = classIds.length;
194
+
195
+ if (!defined(parentIds)) {
196
+ return;
197
+ }
198
+
199
+ assert(instanceIndex < instancesLength, "Parent index ".concat(instanceIndex, " exceeds the total number of instances: ").concat(instancesLength));
200
+ assert(stack.indexOf(instanceIndex) === -1, 'Circular dependency detected in the batch table hierarchy.');
201
+ stack.push(instanceIndex);
202
+ const parentCount = defined(parentCounts) ? parentCounts[instanceIndex] : 1;
203
+ const parentIndex = defined(parentCounts) ? parentIndexes[instanceIndex] : instanceIndex;
204
+
205
+ for (let i = 0; i < parentCount; ++i) {
206
+ const parentId = parentIds[parentIndex + i];
207
+
208
+ if (parentId !== instanceIndex) {
209
+ validateInstance(hierarchy, parentId, stack);
210
+ }
211
+ }
212
+
213
+ stack.pop(instanceIndex);
214
+ }
215
+ //# sourceMappingURL=tile-3d-batch-table-hierarchy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/classes/tile-3d-batch-table-hierarchy.ts"],"names":["defined","x","undefined","initializeHierarchy","batchTable","jsonHeader","binaryBody","hierarchy","getExtension","legacyHierarchy","HIERARCHY","console","warn","extensions","initializeHierarchyValues","hierarchyJson","i","classId","binaryAccessor","instancesLength","classes","classIds","parentCounts","parentIds","parentIdsLength","byteOffset","componentType","defaultValue","GL","UNSIGNED_SHORT","type","AttributeType","SCALAR","getBinaryAccessor","createArrayBufferView","buffer","parentIndexes","Uint16Array","classesLength","length","classInstancesLength","properties","instances","binaryProperties","getBinaryProperties","combine","classCounts","Array","fill","classIndexes","validateHierarchy","traverseHierarchy","instanceIndex","endConditionCallback","traverseHierarchyMultipleParents","traverseHierarchySingleParent","visited","scratchVisited","Math","max","visitedMarker","marker","stack","scratchStack","push","pop","result","parentCount","parentIndex","parentId","hasParent","Error","scratchValidateStack","validateInstance","assert","indexOf"],"mappings":"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","sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\n// TODO - Finish hierarchy suypport: this file is only half ported\n/* eslint-disable */\n// @ts-nocheck\nconst defined = (x) => x !== undefined;\n\nexport function initializeHierarchy(batchTable, jsonHeader, binaryBody) {\n if (!jsonHeader) {\n return null;\n }\n\n let hierarchy = batchTable.getExtension('3DTILES_batch_table_hierarchy');\n\n const legacyHierarchy = jsonHeader.HIERARCHY;\n if (legacyHierarchy) {\n // eslint-disable-next-line\n console.warn('3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy.');\n jsonHeader.extensions = jsonHeader.extensions || {};\n jsonHeader.extensions['3DTILES_batch_table_hierarchy'] = legacyHierarchy;\n hierarchy = legacyHierarchy;\n }\n\n if (!hierarchy) {\n return null;\n }\n\n return initializeHierarchyValues(hierarchy, binaryBody);\n}\n\n// eslint-disable-next-line max-statements\nfunction initializeHierarchyValues(hierarchyJson, binaryBody) {\n let i;\n let classId;\n let binaryAccessor;\n\n const instancesLength = hierarchyJson.instancesLength;\n const classes = hierarchyJson.classes;\n let classIds = hierarchyJson.classIds;\n let parentCounts = hierarchyJson.parentCounts;\n let parentIds = hierarchyJson.parentIds;\n let parentIdsLength = instancesLength;\n\n if (defined(classIds.byteOffset)) {\n classIds.componentType = defaultValue(classIds.componentType, GL.UNSIGNED_SHORT);\n classIds.type = AttributeType.SCALAR;\n binaryAccessor = getBinaryAccessor(classIds);\n classIds = binaryAccessor.createArrayBufferView(\n binaryBody.buffer,\n binaryBody.byteOffset + classIds.byteOffset,\n instancesLength\n );\n }\n\n let parentIndexes;\n if (defined(parentCounts)) {\n if (defined(parentCounts.byteOffset)) {\n parentCounts.componentType = defaultValue(parentCounts.componentType, GL.UNSIGNED_SHORT);\n parentCounts.type = AttributeType.SCALAR;\n binaryAccessor = getBinaryAccessor(parentCounts);\n parentCounts = binaryAccessor.createArrayBufferView(\n binaryBody.buffer,\n binaryBody.byteOffset + parentCounts.byteOffset,\n instancesLength\n );\n }\n parentIndexes = new Uint16Array(instancesLength);\n parentIdsLength = 0;\n for (i = 0; i < instancesLength; ++i) {\n parentIndexes[i] = parentIdsLength;\n parentIdsLength += parentCounts[i];\n }\n }\n\n if (defined(parentIds) && defined(parentIds.byteOffset)) {\n parentIds.componentType = defaultValue(parentIds.componentType, GL.UNSIGNED_SHORT);\n parentIds.type = AttributeType.SCALAR;\n binaryAccessor = getBinaryAccessor(parentIds);\n parentIds = binaryAccessor.createArrayBufferView(\n binaryBody.buffer,\n binaryBody.byteOffset + parentIds.byteOffset,\n parentIdsLength\n );\n }\n\n const classesLength = classes.length;\n for (i = 0; i < classesLength; ++i) {\n const classInstancesLength = classes[i].length;\n const properties = classes[i].instances;\n const binaryProperties = getBinaryProperties(classInstancesLength, properties, binaryBody);\n classes[i].instances = combine(binaryProperties, properties);\n }\n\n const classCounts = new Array(classesLength).fill(0);\n const classIndexes = new Uint16Array(instancesLength);\n for (i = 0; i < instancesLength; ++i) {\n classId = classIds[i];\n classIndexes[i] = classCounts[classId];\n ++classCounts[classId];\n }\n\n const hierarchy = {\n classes,\n classIds,\n classIndexes,\n parentCounts,\n parentIndexes,\n parentIds\n };\n\n validateHierarchy(hierarchy);\n\n return hierarchy;\n}\n\n// HELPER CODE\n\n// Traverse over the hierarchy and process each instance with the endConditionCallback.\n// When the endConditionCallback returns a value, the traversal stops and that value is returned.\nexport function traverseHierarchy(hierarchy, instanceIndex, endConditionCallback) {\n if (!hierarchy) {\n return;\n }\n\n const parentCounts = hierarchy.parentCounts;\n const parentIds = hierarchy.parentIds;\n if (parentIds) {\n return endConditionCallback(hierarchy, instanceIndex);\n }\n if (parentCounts > 0) {\n return traverseHierarchyMultipleParents(hierarchy, instanceIndex, endConditionCallback);\n }\n return traverseHierarchySingleParent(hierarchy, instanceIndex, endConditionCallback);\n}\n\n// eslint-disable-next-line max-statements\nfunction traverseHierarchyMultipleParents(hierarchy, instanceIndex, endConditionCallback) {\n const classIds = hierarchy.classIds;\n const parentCounts = hierarchy.parentCounts;\n const parentIds = hierarchy.parentIds;\n const parentIndexes = hierarchy.parentIndexes;\n const instancesLength = classIds.length;\n\n // Ignore instances that have already been visited. This occurs in diamond inheritance situations.\n // Use a marker value to indicate that an instance has been visited, which increments with each run.\n // This is more efficient than clearing the visited array every time.\n const visited = scratchVisited;\n visited.length = Math.max(visited.length, instancesLength);\n const visitedMarker = ++marker;\n\n const stack = scratchStack;\n stack.length = 0;\n stack.push(instanceIndex);\n\n while (stack.length > 0) {\n instanceIndex = stack.pop();\n if (visited[instanceIndex] === visitedMarker) {\n // This instance has already been visited, stop traversal\n continue;\n }\n visited[instanceIndex] = visitedMarker;\n const result = endConditionCallback(hierarchy, instanceIndex);\n if (defined(result)) {\n // The end condition was met, stop the traversal and return the result\n return result;\n }\n const parentCount = parentCounts[instanceIndex];\n const parentIndex = parentIndexes[instanceIndex];\n for (let i = 0; i < parentCount; ++i) {\n const parentId = parentIds[parentIndex + i];\n // Stop the traversal when the instance has no parent (its parentId equals itself)\n // else add the parent to the stack to continue the traversal.\n if (parentId !== instanceIndex) {\n stack.push(parentId);\n }\n }\n }\n\n return null;\n}\n\nfunction traverseHierarchySingleParent(hierarchy, instanceIndex, endConditionCallback) {\n let hasParent = true;\n while (hasParent) {\n const result = endConditionCallback(hierarchy, instanceIndex);\n if (defined(result)) {\n // The end condition was met, stop the traversal and return the result\n return result;\n }\n const parentId = hierarchy.parentIds[instanceIndex];\n hasParent = parentId !== instanceIndex;\n instanceIndex = parentId;\n }\n throw new Error('traverseHierarchySingleParent');\n}\n\n// DEBUG CODE\n\nfunction validateHierarchy(hierarchy) {\n const scratchValidateStack = [];\n\n const classIds = hierarchy.classIds;\n const instancesLength = classIds.length;\n\n for (let i = 0; i < instancesLength; ++i) {\n validateInstance(hierarchy, i, stack);\n }\n}\n\nfunction validateInstance(hierarchy, instanceIndex, stack) {\n const parentCounts = hierarchy.parentCounts;\n const parentIds = hierarchy.parentIds;\n const parentIndexes = hierarchy.parentIndexes;\n const classIds = hierarchy.classIds;\n const instancesLength = classIds.length;\n\n if (!defined(parentIds)) {\n // No need to validate if there are no parents\n return;\n }\n\n assert(\n instanceIndex < instancesLength,\n `Parent index ${instanceIndex} exceeds the total number of instances: ${instancesLength}`\n );\n assert(\n stack.indexOf(instanceIndex) === -1,\n 'Circular dependency detected in the batch table hierarchy.'\n );\n\n stack.push(instanceIndex);\n const parentCount = defined(parentCounts) ? parentCounts[instanceIndex] : 1;\n const parentIndex = defined(parentCounts) ? parentIndexes[instanceIndex] : instanceIndex;\n for (let i = 0; i < parentCount; ++i) {\n const parentId = parentIds[parentIndex + i];\n // Stop the traversal when the instance has no parent (its parentId equals itself), else continue the traversal.\n if (parentId !== instanceIndex) {\n validateInstance(hierarchy, parentId, stack);\n }\n }\n stack.pop(instanceIndex);\n}\n"],"file":"tile-3d-batch-table-hierarchy.js"}