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

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 (245) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +10008 -0
  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 +40 -0
  7. package/dist/es5/bundle.js +1 -1
  8. package/dist/es5/bundle.js.map +1 -1
  9. package/dist/es5/cesium-ion-loader.js +23 -78
  10. package/dist/es5/cesium-ion-loader.js.map +1 -1
  11. package/dist/es5/index.js +15 -7
  12. package/dist/es5/index.js.map +1 -1
  13. package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js +30 -42
  14. package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -1
  15. package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js +57 -59
  16. package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -1
  17. package/dist/es5/lib/classes/tile-3d-batch-table.js +209 -237
  18. package/dist/es5/lib/classes/tile-3d-batch-table.js.map +1 -1
  19. package/dist/es5/lib/classes/tile-3d-feature-table.js +67 -79
  20. package/dist/es5/lib/classes/tile-3d-feature-table.js.map +1 -1
  21. package/dist/es5/lib/constants.js +4 -4
  22. package/dist/es5/lib/constants.js.map +1 -1
  23. package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js +15 -22
  24. package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js.map +1 -1
  25. package/dist/es5/lib/encoders/encode-3d-tile-composite.js +6 -13
  26. package/dist/es5/lib/encoders/encode-3d-tile-composite.js.map +1 -1
  27. package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js +14 -23
  28. package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -1
  29. package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js +15 -22
  30. package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -1
  31. package/dist/es5/lib/encoders/encode-3d-tile.js +3 -3
  32. package/dist/es5/lib/encoders/encode-3d-tile.js.map +1 -1
  33. package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js +6 -6
  34. package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -1
  35. package/dist/es5/lib/ion/ion.js +69 -197
  36. package/dist/es5/lib/ion/ion.js.map +1 -1
  37. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js +17 -18
  38. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -1
  39. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js +3 -3
  40. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -1
  41. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js +3 -3
  42. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -1
  43. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js +27 -67
  44. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
  45. package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js +3 -4
  46. package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -1
  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 +19 -17
  50. package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -1
  51. package/dist/es5/lib/parsers/helpers/parse-utils.js +7 -8
  52. package/dist/es5/lib/parsers/helpers/parse-utils.js.map +1 -1
  53. package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js +10 -36
  54. package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js.map +1 -1
  55. package/dist/es5/lib/parsers/parse-3d-tile-composite.js +12 -48
  56. package/dist/es5/lib/parsers/parse-3d-tile-composite.js.map +1 -1
  57. package/dist/es5/lib/parsers/parse-3d-tile-header.js +14 -30
  58. package/dist/es5/lib/parsers/parse-3d-tile-header.js.map +1 -1
  59. package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js +38 -63
  60. package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -1
  61. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js +117 -198
  62. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
  63. package/dist/es5/lib/parsers/parse-3d-tile.js +15 -65
  64. package/dist/es5/lib/parsers/parse-3d-tile.js.map +1 -1
  65. package/dist/es5/lib/utils/version.js +1 -1
  66. package/dist/es5/lib/utils/version.js.map +1 -1
  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 +5 -5
  70. package/dist/es5/tile-3d-writer.js.map +1 -1
  71. package/dist/es5/tiles-3d-loader.js +37 -117
  72. package/dist/es5/tiles-3d-loader.js.map +1 -1
  73. package/dist/esm/index.js +1 -0
  74. package/dist/esm/index.js.map +1 -1
  75. package/dist/esm/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -1
  76. package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js +1 -1
  77. package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -1
  78. package/dist/esm/lib/classes/tile-3d-batch-table.js +19 -4
  79. package/dist/esm/lib/classes/tile-3d-batch-table.js.map +1 -1
  80. package/dist/esm/lib/classes/tile-3d-feature-table.js +9 -2
  81. package/dist/esm/lib/classes/tile-3d-feature-table.js.map +1 -1
  82. package/dist/esm/lib/constants.js.map +1 -1
  83. package/dist/esm/lib/encoders/encode-3d-tile-batched-model.js.map +1 -1
  84. package/dist/esm/lib/encoders/encode-3d-tile-composite.js.map +1 -1
  85. package/dist/esm/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -1
  86. package/dist/esm/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -1
  87. package/dist/esm/lib/encoders/encode-3d-tile.js.map +1 -1
  88. package/dist/esm/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -1
  89. package/dist/esm/lib/ion/ion.js +6 -6
  90. package/dist/esm/lib/ion/ion.js.map +1 -1
  91. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -1
  92. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -1
  93. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -1
  94. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js +2 -2
  95. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
  96. package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js +1 -1
  97. package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -1
  98. package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js +64 -0
  99. package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -0
  100. package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js +1 -1
  101. package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -1
  102. package/dist/esm/lib/parsers/helpers/parse-utils.js +1 -5
  103. package/dist/esm/lib/parsers/helpers/parse-utils.js.map +1 -1
  104. package/dist/esm/lib/parsers/parse-3d-tile-batched-model.js.map +1 -1
  105. package/dist/esm/lib/parsers/parse-3d-tile-composite.js.map +1 -1
  106. package/dist/esm/lib/parsers/parse-3d-tile-header.js +1 -1
  107. package/dist/esm/lib/parsers/parse-3d-tile-header.js.map +1 -1
  108. package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js +1 -1
  109. package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -1
  110. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js +1 -1
  111. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
  112. package/dist/esm/lib/parsers/parse-3d-tile.js +1 -1
  113. package/dist/esm/lib/parsers/parse-3d-tile.js.map +1 -1
  114. package/dist/esm/lib/utils/version.js +1 -1
  115. package/dist/esm/lib/utils/version.js.map +1 -1
  116. package/dist/esm/tile-3d-subtree-loader.js +14 -0
  117. package/dist/esm/tile-3d-subtree-loader.js.map +1 -0
  118. package/dist/index.d.ts +10 -0
  119. package/dist/index.d.ts.map +1 -0
  120. package/dist/index.js +26 -0
  121. package/dist/lib/classes/helpers/tile-3d-accessor-utils.d.ts +8 -0
  122. package/dist/lib/classes/helpers/tile-3d-accessor-utils.d.ts.map +1 -0
  123. package/dist/lib/classes/helpers/tile-3d-accessor-utils.js +113 -0
  124. package/dist/lib/classes/tile-3d-batch-table-hierarchy.d.ts +10 -0
  125. package/dist/lib/classes/tile-3d-batch-table-hierarchy.d.ts.map +1 -0
  126. package/dist/lib/classes/tile-3d-batch-table-hierarchy.js +197 -0
  127. package/dist/lib/classes/tile-3d-batch-table.d.ts +34 -0
  128. package/dist/lib/classes/tile-3d-batch-table.d.ts.map +1 -0
  129. package/dist/lib/classes/tile-3d-batch-table.js +245 -0
  130. package/dist/lib/classes/tile-3d-feature-table.d.ts +15 -0
  131. package/dist/lib/classes/tile-3d-feature-table.d.ts.map +1 -0
  132. package/dist/lib/classes/tile-3d-feature-table.js +72 -0
  133. package/dist/lib/constants.d.ts +21 -0
  134. package/dist/lib/constants.d.ts.map +1 -0
  135. package/dist/lib/constants.js +25 -0
  136. package/dist/lib/encoders/encode-3d-tile-batched-model.d.ts +2 -0
  137. package/dist/lib/encoders/encode-3d-tile-batched-model.d.ts.map +1 -0
  138. package/dist/lib/encoders/encode-3d-tile-batched-model.js +46 -0
  139. package/dist/lib/encoders/encode-3d-tile-composite.d.ts +2 -0
  140. package/dist/lib/encoders/encode-3d-tile-composite.d.ts.map +1 -0
  141. package/dist/lib/encoders/encode-3d-tile-composite.js +24 -0
  142. package/dist/lib/encoders/encode-3d-tile-instanced-model.d.ts +2 -0
  143. package/dist/lib/encoders/encode-3d-tile-instanced-model.d.ts.map +1 -0
  144. package/dist/lib/encoders/encode-3d-tile-instanced-model.js +38 -0
  145. package/dist/lib/encoders/encode-3d-tile-point-cloud.d.ts +2 -0
  146. package/dist/lib/encoders/encode-3d-tile-point-cloud.d.ts.map +1 -0
  147. package/dist/lib/encoders/encode-3d-tile-point-cloud.js +39 -0
  148. package/dist/lib/encoders/encode-3d-tile.d.ts +2 -0
  149. package/dist/lib/encoders/encode-3d-tile.d.ts.map +1 -0
  150. package/dist/lib/encoders/encode-3d-tile.js +33 -0
  151. package/dist/lib/encoders/helpers/encode-3d-tile-header.d.ts +3 -0
  152. package/dist/lib/encoders/helpers/encode-3d-tile-header.d.ts.map +1 -0
  153. package/dist/lib/encoders/helpers/encode-3d-tile-header.js +30 -0
  154. package/dist/lib/ion/ion.d.ts +4 -0
  155. package/dist/lib/ion/ion.d.ts.map +1 -0
  156. package/dist/lib/ion/ion.js +68 -0
  157. package/dist/lib/parsers/helpers/normalize-3d-tile-colors.d.ts +7 -0
  158. package/dist/lib/parsers/helpers/normalize-3d-tile-colors.d.ts.map +1 -0
  159. package/dist/lib/parsers/helpers/normalize-3d-tile-colors.js +65 -0
  160. package/dist/lib/parsers/helpers/normalize-3d-tile-normals.d.ts +6 -0
  161. package/dist/lib/parsers/helpers/normalize-3d-tile-normals.d.ts.map +1 -0
  162. package/dist/lib/parsers/helpers/normalize-3d-tile-normals.js +30 -0
  163. package/dist/lib/parsers/helpers/normalize-3d-tile-positions.d.ts +2 -0
  164. package/dist/lib/parsers/helpers/normalize-3d-tile-positions.d.ts.map +1 -0
  165. package/dist/lib/parsers/helpers/normalize-3d-tile-positions.js +42 -0
  166. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.d.ts +7 -0
  167. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.d.ts.map +1 -0
  168. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js +88 -0
  169. package/dist/lib/parsers/helpers/parse-3d-tile-header.d.ts +2 -0
  170. package/dist/lib/parsers/helpers/parse-3d-tile-header.d.ts.map +1 -0
  171. package/dist/lib/parsers/helpers/parse-3d-tile-header.js +28 -0
  172. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts +9 -0
  173. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts.map +1 -0
  174. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.js +74 -0
  175. package/dist/lib/parsers/helpers/parse-3d-tile-tables.d.ts +3 -0
  176. package/dist/lib/parsers/helpers/parse-3d-tile-tables.d.ts.map +1 -0
  177. package/dist/lib/parsers/helpers/parse-3d-tile-tables.js +93 -0
  178. package/dist/lib/parsers/helpers/parse-utils.d.ts +4 -0
  179. package/dist/lib/parsers/helpers/parse-utils.d.ts.map +1 -0
  180. package/dist/lib/parsers/helpers/parse-utils.js +32 -0
  181. package/dist/lib/parsers/parse-3d-tile-batched-model.d.ts +2 -0
  182. package/dist/lib/parsers/parse-3d-tile-batched-model.d.ts.map +1 -0
  183. package/dist/lib/parsers/parse-3d-tile-batched-model.js +33 -0
  184. package/dist/lib/parsers/parse-3d-tile-composite.d.ts +2 -0
  185. package/dist/lib/parsers/parse-3d-tile-composite.d.ts.map +1 -0
  186. package/dist/lib/parsers/parse-3d-tile-composite.js +26 -0
  187. package/dist/lib/parsers/parse-3d-tile-header.d.ts +3 -0
  188. package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -0
  189. package/dist/lib/parsers/parse-3d-tile-header.js +66 -0
  190. package/dist/lib/parsers/parse-3d-tile-instanced-model.d.ts +2 -0
  191. package/dist/lib/parsers/parse-3d-tile-instanced-model.d.ts.map +1 -0
  192. package/dist/lib/parsers/parse-3d-tile-instanced-model.js +186 -0
  193. package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts +3 -0
  194. package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts.map +1 -0
  195. package/dist/lib/parsers/parse-3d-tile-point-cloud.js +411 -0
  196. package/dist/lib/parsers/parse-3d-tile.d.ts +2 -0
  197. package/dist/lib/parsers/parse-3d-tile.d.ts.map +1 -0
  198. package/dist/lib/parsers/parse-3d-tile.js +34 -0
  199. package/dist/lib/utils/version.d.ts +2 -0
  200. package/dist/lib/utils/version.d.ts.map +1 -0
  201. package/dist/lib/utils/version.js +7 -0
  202. package/dist/tile-3d-subtree-loader.d.ts +7 -0
  203. package/dist/tile-3d-subtree-loader.d.ts.map +1 -0
  204. package/dist/tile-3d-subtree-loader.js +23 -0
  205. package/dist/tile-3d-writer.d.ts +6 -0
  206. package/dist/tile-3d-writer.d.ts.map +1 -0
  207. package/dist/tile-3d-writer.js +27 -0
  208. package/dist/tiles-3d-loader.d.ts +6 -0
  209. package/dist/tiles-3d-loader.d.ts.map +1 -0
  210. package/dist/tiles-3d-loader.js +73 -0
  211. package/dist/types.d.ts +75 -0
  212. package/dist/types.d.ts.map +1 -0
  213. package/dist/types.js +2 -0
  214. package/package.json +12 -10
  215. package/src/index.ts +1 -0
  216. package/src/lib/classes/helpers/{tile-3d-accessor-utils.js → tile-3d-accessor-utils.ts} +0 -0
  217. package/src/lib/classes/{tile-3d-batch-table-hierarchy.js → tile-3d-batch-table-hierarchy.ts} +0 -0
  218. package/src/lib/classes/{tile-3d-batch-table.js → tile-3d-batch-table.ts} +14 -4
  219. package/src/lib/classes/{tile-3d-feature-table.js → tile-3d-feature-table.ts} +5 -2
  220. package/src/lib/{constants.js → constants.ts} +0 -0
  221. package/src/lib/encoders/{encode-3d-tile-batched-model.js → encode-3d-tile-batched-model.ts} +0 -0
  222. package/src/lib/encoders/{encode-3d-tile-composite.js → encode-3d-tile-composite.ts} +0 -0
  223. package/src/lib/encoders/{encode-3d-tile-instanced-model.js → encode-3d-tile-instanced-model.ts} +0 -0
  224. package/src/lib/encoders/{encode-3d-tile-point-cloud.js → encode-3d-tile-point-cloud.ts} +0 -0
  225. package/src/lib/encoders/{encode-3d-tile.js → encode-3d-tile.ts} +0 -0
  226. package/src/lib/encoders/helpers/{encode-3d-tile-header.js → encode-3d-tile-header.ts} +0 -0
  227. package/src/lib/parsers/helpers/{normalize-3d-tile-colors.js → normalize-3d-tile-colors.ts} +1 -1
  228. package/src/lib/parsers/helpers/{normalize-3d-tile-normals.js → normalize-3d-tile-normals.ts} +0 -0
  229. package/src/lib/parsers/helpers/{normalize-3d-tile-positions.js → normalize-3d-tile-positions.ts} +0 -0
  230. package/src/lib/parsers/helpers/{parse-3d-tile-gltf-view.js → parse-3d-tile-gltf-view.ts} +1 -1
  231. package/src/lib/parsers/helpers/{parse-3d-tile-header.js → parse-3d-tile-header.ts} +0 -0
  232. package/src/lib/parsers/helpers/parse-3d-tile-subtree.ts +104 -0
  233. package/src/lib/parsers/helpers/{parse-3d-tile-tables.js → parse-3d-tile-tables.ts} +1 -1
  234. package/src/lib/parsers/helpers/{parse-utils.js → parse-utils.ts} +0 -0
  235. package/src/lib/parsers/{parse-3d-tile-batched-model.js → parse-3d-tile-batched-model.ts} +0 -0
  236. package/src/lib/parsers/{parse-3d-tile-composite.js → parse-3d-tile-composite.ts} +0 -0
  237. package/src/lib/parsers/{parse-3d-tile-header.js → parse-3d-tile-header.ts} +1 -1
  238. package/src/lib/parsers/{parse-3d-tile-instanced-model.js → parse-3d-tile-instanced-model.ts} +6 -0
  239. package/src/lib/parsers/{parse-3d-tile-point-cloud.js → parse-3d-tile-point-cloud.ts} +2 -2
  240. package/src/lib/parsers/{parse-3d-tile.js → parse-3d-tile.ts} +4 -0
  241. package/src/lib/utils/{version.js → version.ts} +0 -0
  242. package/src/tile-3d-subtree-loader.ts +19 -0
  243. package/src/types.ts +33 -0
  244. package/dist/dist.min.js +0 -2
  245. package/dist/dist.min.js.map +0 -1
@@ -0,0 +1,7 @@
1
+ import type { LoaderWithParser } from '@loaders.gl/loader-utils';
2
+ /**
3
+ * Loader for 3D Tiles Subtree
4
+ *
5
+ */
6
+ export declare const Tile3DSubtreeLoader: LoaderWithParser;
7
+ //# sourceMappingURL=tile-3d-subtree-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tile-3d-subtree-loader.d.ts","sourceRoot":"","sources":["../src/tile-3d-subtree-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAI/D;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAUjC,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Tile3DSubtreeLoader = void 0;
7
+ const parse_3d_tile_subtree_1 = __importDefault(require("./lib/parsers/helpers/parse-3d-tile-subtree"));
8
+ const version_1 = require("./lib/utils/version");
9
+ /**
10
+ * Loader for 3D Tiles Subtree
11
+ *
12
+ */
13
+ exports.Tile3DSubtreeLoader = {
14
+ id: '3d-tiles-subtree',
15
+ name: '3D Tiles Subtree',
16
+ module: '3d-tiles',
17
+ version: version_1.VERSION,
18
+ extensions: ['subtree'],
19
+ mimeTypes: ['application/octet-stream'],
20
+ tests: ['subtree'],
21
+ parse: parse_3d_tile_subtree_1.default,
22
+ options: {}
23
+ };
@@ -0,0 +1,6 @@
1
+ import type { Writer } from '@loaders.gl/loader-utils';
2
+ /**
3
+ * Exporter for 3D Tiles
4
+ */
5
+ export declare const Tile3DWriter: Writer;
6
+ //# sourceMappingURL=tile-3d-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tile-3d-writer.d.ts","sourceRoot":"","sources":["../src/tile-3d-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAIrD;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAY1B,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Tile3DWriter = void 0;
7
+ const version_1 = require("./lib/utils/version");
8
+ const encode_3d_tile_1 = __importDefault(require("./lib/encoders/encode-3d-tile"));
9
+ /**
10
+ * Exporter for 3D Tiles
11
+ */
12
+ exports.Tile3DWriter = {
13
+ name: '3D Tile',
14
+ id: '3d-tiles',
15
+ module: '3d-tiles',
16
+ version: version_1.VERSION,
17
+ extensions: ['cmpt', 'pnts', 'b3dm', 'i3dm'],
18
+ mimeTypes: ['application/octet-stream'],
19
+ encodeSync,
20
+ binary: true,
21
+ options: {
22
+ ['3d-tiles']: {}
23
+ }
24
+ };
25
+ function encodeSync(tile, options) {
26
+ return (0, encode_3d_tile_1.default)(tile, options);
27
+ }
@@ -0,0 +1,6 @@
1
+ import type { LoaderWithParser } from '@loaders.gl/loader-utils';
2
+ /**
3
+ * Loader for 3D Tiles
4
+ */
5
+ export declare const Tiles3DLoader: LoaderWithParser;
6
+ //# sourceMappingURL=tiles-3d-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tiles-3d-loader.d.ts","sourceRoot":"","sources":["../src/tiles-3d-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAO/D;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,gBAiB3B,CAAC"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Tiles3DLoader = void 0;
4
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
5
+ const tiles_1 = require("@loaders.gl/tiles");
6
+ const version_1 = require("./lib/utils/version");
7
+ const parse_3d_tile_1 = require("./lib/parsers/parse-3d-tile");
8
+ const parse_3d_tile_header_1 = require("./lib/parsers/parse-3d-tile-header");
9
+ /**
10
+ * Loader for 3D Tiles
11
+ */
12
+ exports.Tiles3DLoader = {
13
+ id: '3d-tiles',
14
+ name: '3D Tiles',
15
+ module: '3d-tiles',
16
+ version: version_1.VERSION,
17
+ extensions: ['cmpt', 'pnts', 'b3dm', 'i3dm'],
18
+ mimeTypes: ['application/octet-stream'],
19
+ tests: ['cmpt', 'pnts', 'b3dm', 'i3dm'],
20
+ parse,
21
+ options: {
22
+ '3d-tiles': {
23
+ loadGLTF: true,
24
+ decodeQuantizedPositions: false,
25
+ isTileset: 'auto',
26
+ assetGltfUpAxis: null
27
+ }
28
+ }
29
+ };
30
+ function getBaseUri(tileset) {
31
+ return loader_utils_1.path.dirname(tileset.url);
32
+ }
33
+ async function parseTile(arrayBuffer, options, context) {
34
+ const tile = {
35
+ content: {
36
+ featureIds: null
37
+ }
38
+ };
39
+ const byteOffset = 0;
40
+ await (0, parse_3d_tile_1.parse3DTile)(arrayBuffer, byteOffset, options, context, tile.content);
41
+ return tile.content;
42
+ }
43
+ async function parseTileset(data, options, context) {
44
+ const tilesetJson = JSON.parse(new TextDecoder().decode(data));
45
+ // eslint-disable-next-line no-use-before-define
46
+ tilesetJson.loader = options.loader || exports.Tiles3DLoader;
47
+ tilesetJson.url = context.url;
48
+ // base path that non-absolute paths in tileset are relative to.
49
+ tilesetJson.basePath = getBaseUri(tilesetJson);
50
+ tilesetJson.root = (0, parse_3d_tile_header_1.normalizeTileHeaders)(tilesetJson);
51
+ tilesetJson.type = tiles_1.TILESET_TYPE.TILES3D;
52
+ tilesetJson.lodMetricType = tiles_1.LOD_METRIC_TYPE.GEOMETRIC_ERROR;
53
+ tilesetJson.lodMetricValue = tilesetJson.root?.lodMetricValue || 0;
54
+ return tilesetJson;
55
+ }
56
+ async function parse(data, options, context) {
57
+ // auto detect file type
58
+ const loaderOptions = options['3d-tiles'] || {};
59
+ let isTileset;
60
+ if (loaderOptions.isTileset === 'auto') {
61
+ isTileset = context.url && context.url.indexOf('.json') !== -1;
62
+ }
63
+ else {
64
+ isTileset = loaderOptions.isTileset;
65
+ }
66
+ if (isTileset) {
67
+ data = await parseTileset(data, options, context);
68
+ }
69
+ else {
70
+ data = await parseTile(data, options, context);
71
+ }
72
+ return data;
73
+ }
@@ -0,0 +1,75 @@
1
+ import type { GLTFObject } from '@loaders.gl/gltf';
2
+ import { Matrix4, Vector3 } from '@math.gl/core';
3
+ export declare type BatchTableJson = {
4
+ [key: string]: any[];
5
+ };
6
+ export declare type B3DMContent = {
7
+ batchTableJson?: BatchTableJson;
8
+ byteLength: number;
9
+ byteOffset: number;
10
+ cartesianModelMatrix: Matrix4;
11
+ cartesianOrigin: Vector3;
12
+ cartographicModelMatrix: Matrix4;
13
+ cartographicOrigin: Vector3;
14
+ featureIds?: number[] | null;
15
+ featureTableBinary?: Uint8Array;
16
+ featureTableJson?: BatchTableJson;
17
+ gltf?: GLTFObject;
18
+ gltfUpAxis: string;
19
+ header: GLTFHeader;
20
+ magic: number;
21
+ modelMatrix: Matrix4;
22
+ rotateYtoZ: boolean;
23
+ rtcCenter: [number, number, number];
24
+ type: string;
25
+ version: number;
26
+ };
27
+ export declare type GLTFHeader = {
28
+ batchLength?: number;
29
+ batchTableBinaryByteLength: number;
30
+ batchTableJsonByteLength: number;
31
+ featureTableBinaryByteLength: number;
32
+ featureTableJsonByteLength: number;
33
+ };
34
+ export declare type Node3D = {
35
+ boundingVolume: BoundingVolume;
36
+ children: any;
37
+ geometricError: number;
38
+ content?: {
39
+ uri: string;
40
+ boundingVolume: BoundingVolume;
41
+ };
42
+ };
43
+ declare type BoundingVolume = {
44
+ box?: number[];
45
+ sphere?: number[];
46
+ };
47
+ /**
48
+ * 3DTILES_implicit_tiling types
49
+ * Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subtree-file-format
50
+ */
51
+ export declare type SubtreeAvailability = {
52
+ buffers: Buffer[];
53
+ bufferViews: BufferView[];
54
+ tileAvailability: Availability;
55
+ contentAvailability: Availability;
56
+ childSubtreeAvailability: Availability;
57
+ };
58
+ declare type Availability = {
59
+ constant?: 0 | 1;
60
+ bufferView?: number;
61
+ explicitBitstream?: ExplicitBitstream;
62
+ };
63
+ export declare type ExplicitBitstream = Uint8Array;
64
+ declare type Buffer = {
65
+ name: string;
66
+ uri?: string;
67
+ byteLength: number;
68
+ };
69
+ declare type BufferView = {
70
+ buffer: number;
71
+ byteOffset: number;
72
+ byteLength: number;
73
+ };
74
+ export {};
75
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAE/C,oBAAY,cAAc,GAAG;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC;CACtB,CAAC;AAEF,oBAAY,WAAW,GAAG;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,uBAAuB,EAAE,OAAO,CAAC;IACjC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAChC,gBAAgB,CAAC,EAAE,cAAc,CAAC;IAClC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B,EAAE,MAAM,CAAC;IACnC,wBAAwB,EAAE,MAAM,CAAC;IACjC,4BAA4B,EAAE,MAAM,CAAC;IACrC,0BAA0B,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,oBAAY,MAAM,GAAG;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,GAAG,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,cAAc,EAAE,cAAc,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,aAAK,cAAc,GAAG;IACpB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,oBAAY,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,mBAAmB,EAAE,YAAY,CAAC;IAClC,wBAAwB,EAAE,YAAY,CAAC;CACxC,CAAC;AAEF,aAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CAAC;AAEF,oBAAY,iBAAiB,GAAG,UAAU,CAAC;AAE3C,aAAK,MAAM,GAAG;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,aAAK,UAAU,GAAG;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/3d-tiles",
3
- "version": "3.1.0-alpha.4",
3
+ "version": "3.1.0-beta.5",
4
4
  "description": "3D Tiles, an open standard for streaming massive heterogeneous 3D geospatial datasets.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -20,7 +20,7 @@
20
20
  "point cloud",
21
21
  "pointcloud"
22
22
  ],
23
- "types": "src/index.ts",
23
+ "types": "dist/index.d.ts",
24
24
  "main": "dist/es5/index.js",
25
25
  "module": "dist/esm/index.js",
26
26
  "sideEffects": false,
@@ -31,17 +31,19 @@
31
31
  ],
32
32
  "scripts": {
33
33
  "pre-build": "npm run build-bundle",
34
- "build-bundle": "webpack --display=minimal --config ../../scripts/webpack/bundle.js"
34
+ "build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/bundle.js"
35
35
  },
36
36
  "dependencies": {
37
- "@loaders.gl/core": "3.1.0-alpha.4",
38
- "@loaders.gl/draco": "3.1.0-alpha.4",
39
- "@loaders.gl/gltf": "3.1.0-alpha.4",
40
- "@loaders.gl/loader-utils": "3.1.0-alpha.4",
41
- "@loaders.gl/math": "3.1.0-alpha.4",
42
- "@loaders.gl/tiles": "3.1.0-alpha.4",
37
+ "@loaders.gl/draco": "3.1.0-beta.5",
38
+ "@loaders.gl/gltf": "3.1.0-beta.5",
39
+ "@loaders.gl/loader-utils": "3.1.0-beta.5",
40
+ "@loaders.gl/math": "3.1.0-beta.5",
41
+ "@loaders.gl/tiles": "3.1.0-beta.5",
43
42
  "@math.gl/core": "^3.5.1",
44
43
  "@math.gl/geospatial": "^3.5.1"
45
44
  },
46
- "gitHead": "e309784af37ef9f3640c7733c7851124c72e1fa3"
45
+ "peerDependencies": {
46
+ "@loaders.gl/core": "3.1.0-beta.1"
47
+ },
48
+ "gitHead": "5d66468457cc878d2dbff3d7807d737ceb181c9a"
47
49
  }
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  // LOADERS
2
2
  export {Tiles3DLoader} from './tiles-3d-loader';
3
3
  export {CesiumIonLoader} from './cesium-ion-loader';
4
+ export {Tile3DSubtreeLoader} from './tile-3d-subtree-loader';
4
5
 
5
6
  // WRITERS
6
7
  export {Tile3DWriter} from './tile-3d-writer';
@@ -21,6 +21,16 @@ const IGNORED_PROPERTY_FIELDS = {
21
21
 
22
22
  // The size of this array equals the maximum instance count among all loaded tiles, which has the potential to be large.
23
23
  export default class Tile3DBatchTableParser {
24
+ json;
25
+ binary;
26
+ featureCount;
27
+ _extensions;
28
+ // Copy all top-level property fields from the json object, ignoring special fields
29
+ _properties;
30
+ _binaryProperties;
31
+ // TODO: hierarchy support is only partially implemented and not tested
32
+ _hierarchy;
33
+
24
34
  constructor(json, binary, featureCount, options = {}) {
25
35
  assert(featureCount >= 0);
26
36
  this.json = json || {};
@@ -49,11 +59,11 @@ export default class Tile3DBatchTableParser {
49
59
  return this.json && this.json.extensions && this.json.extensions[extensionName];
50
60
  }
51
61
 
52
- memorySizeInBytes() {
62
+ memorySizeInBytes(): number {
53
63
  return 0;
54
64
  }
55
65
 
56
- isClass(batchId, className) {
66
+ isClass(batchId, className: string): boolean {
57
67
  this._checkBatchId(batchId);
58
68
  assert(typeof className === 'string', className);
59
69
 
@@ -178,7 +188,7 @@ export default class Tile3DBatchTableParser {
178
188
  _checkBatchId(batchId) {
179
189
  const valid = batchId >= 0 && batchId < this.featureCount;
180
190
  if (!valid) {
181
- throw new Error(`batchId not in range [0, featureCount - 1].`);
191
+ throw new Error('batchId not in range [0, featureCount - 1].');
182
192
  }
183
193
  }
184
194
 
@@ -191,7 +201,7 @@ export default class Tile3DBatchTableParser {
191
201
  }
192
202
 
193
203
  _initializeBinaryProperties() {
194
- let binaryProperties = null;
204
+ let binaryProperties: Record<string, any> | null = null;
195
205
  for (const name in this._properties) {
196
206
  const property = this._properties[name];
197
207
  const binaryProperty = this._initializeBinaryProperty(name, property);
@@ -6,11 +6,14 @@ import {GL, GLType} from '@loaders.gl/math';
6
6
  // Reference:
7
7
  // https://github.com/AnalyticalGraphicsInc/cesium/blob/1de96d087f0b17575eb1a3f736407b348c765d59/Source/Scene/Cesium3DTileFeatureTable.js
8
8
  export default class Tile3DFeatureTable {
9
+ json;
10
+ buffer;
11
+ featuresLength = 0;
12
+ _cachedTypedArrays = {};
13
+
9
14
  constructor(featureTableJson, featureTableBinary) {
10
15
  this.json = featureTableJson;
11
16
  this.buffer = featureTableBinary;
12
- this.featuresLength = 0;
13
- this._cachedTypedArrays = {};
14
17
  }
15
18
 
16
19
  getExtension(extensionName) {
File without changes
@@ -1,7 +1,7 @@
1
1
  import {decodeRGB565, GL} from '@loaders.gl/math';
2
2
 
3
3
  /* eslint-disable complexity*/
4
- export function normalize3DTileColorAttribute(tile, colors, batchTable) {
4
+ export function normalize3DTileColorAttribute(tile, colors, batchTable?) {
5
5
  // no colors defined
6
6
  if (!colors && (!tile || !tile.batchIds || !batchTable)) {
7
7
  return null;
@@ -90,6 +90,6 @@ function extractGLTFBufferOrURL(tile, gltfFormat, options) {
90
90
  case GLTF_FORMAT.EMBEDDED:
91
91
  break;
92
92
  default:
93
- throw new Error(`b3dm: Illegal glTF format field`);
93
+ throw new Error('b3dm: Illegal glTF format field');
94
94
  }
95
95
  }
@@ -0,0 +1,104 @@
1
+ import type {SubtreeAvailability, ExplicitBitstream} from '../../../types';
2
+ import {fetchFile} from '@loaders.gl/core';
3
+
4
+ const SUBTREE_FILE_MAGIC = 0x74627573;
5
+ const SUBTREE_FILE_VERSION = 1;
6
+
7
+ /**
8
+ * Parse subtree file
9
+ * Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subtree-file-format
10
+ * @param data
11
+ * @returns
12
+ */
13
+ export default async function parse3DTilesSubtree(data: ArrayBuffer): Promise<SubtreeAvailability> {
14
+ const magic = new Uint32Array(data.slice(0, 4));
15
+
16
+ if (magic[0] !== SUBTREE_FILE_MAGIC) {
17
+ throw new Error('Wrong subtree file magic number');
18
+ }
19
+
20
+ const version = new Uint32Array(data.slice(4, 8));
21
+
22
+ if (version[0] !== SUBTREE_FILE_VERSION) {
23
+ throw new Error('Wrong subtree file verson, must be 1');
24
+ }
25
+
26
+ const jsonByteLength = parseUint64Value(data.slice(8, 16));
27
+ const stringAttribute = new Uint8Array(data, 24, jsonByteLength);
28
+
29
+ const textDecoder = new TextDecoder('utf8');
30
+ const string = textDecoder.decode(stringAttribute);
31
+ const subtree = JSON.parse(string);
32
+
33
+ const binaryByteLength = parseUint64Value(data.slice(16, 24));
34
+ let internalBinaryBuffer = new ArrayBuffer(0);
35
+
36
+ if (binaryByteLength) {
37
+ internalBinaryBuffer = data.slice(24 + jsonByteLength);
38
+ }
39
+
40
+ if ('bufferView' in subtree.tileAvailability) {
41
+ subtree.tileAvailability.explicitBitstream = await getExplicitBitstream(
42
+ subtree,
43
+ 'tileAvailability',
44
+ internalBinaryBuffer
45
+ );
46
+ }
47
+
48
+ if ('bufferView' in subtree.contentAvailability) {
49
+ subtree.contentAvailability.explicitBitstream = await getExplicitBitstream(
50
+ subtree,
51
+ 'contentAvailability',
52
+ internalBinaryBuffer
53
+ );
54
+ }
55
+
56
+ if ('bufferView' in subtree.childSubtreeAvailability) {
57
+ subtree.childSubtreeAvailability.explicitBitstream = await getExplicitBitstream(
58
+ subtree,
59
+ 'childSubtreeAvailability',
60
+ internalBinaryBuffer
61
+ );
62
+ }
63
+
64
+ return subtree;
65
+ }
66
+
67
+ /**
68
+ * Get explicit bitstream for subtree availability data.
69
+ * @param subtree
70
+ * @param name
71
+ * @param internalBinaryBuffer
72
+ */
73
+ async function getExplicitBitstream(
74
+ subtree: SubtreeAvailability,
75
+ name: string,
76
+ internalBinaryBuffer: ArrayBuffer
77
+ ): Promise<ExplicitBitstream> {
78
+ const bufferViewIndex = subtree[name].bufferView;
79
+ const bufferView = subtree.bufferViews[bufferViewIndex];
80
+ const buffer = subtree.buffers[bufferView.buffer];
81
+
82
+ // External bitstream loading
83
+ if (buffer.uri) {
84
+ const response = await fetchFile(buffer.uri);
85
+ const data = await response.arrayBuffer();
86
+ // Return view of bitstream.
87
+ return new Uint8Array(data, bufferView.byteOffset, bufferView.byteLength);
88
+ }
89
+ // Return view of bitstream.
90
+ return new Uint8Array(internalBinaryBuffer, bufferView.byteOffset, bufferView.byteLength);
91
+ }
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
+ */
98
+ function parseUint64Value(buffer: ArrayBuffer): number {
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;
104
+ }
@@ -4,7 +4,7 @@
4
4
  import {getStringFromArrayBuffer} from './parse-utils';
5
5
 
6
6
  const SIZEOF_UINT32 = 4;
7
- const DEPRECATION_WARNING = `b3dm tile in legacy format.`;
7
+ const DEPRECATION_WARNING = 'b3dm tile in legacy format.';
8
8
 
9
9
  // eslint-disable-next-line max-statements
10
10
  export function parse3DTileTablesHeaderSync(tile, arrayBuffer, byteOffset) {
@@ -53,7 +53,7 @@ export function normalizeTileHeaders(tileset) {
53
53
  const basePath = tileset.basePath;
54
54
  const root = normalizeTileData(tileset.root, tileset);
55
55
 
56
- const stack = [];
56
+ const stack: any[] = [];
57
57
  stack.push(root);
58
58
 
59
59
  while (stack.length > 0) {
@@ -146,6 +146,7 @@ function extractInstancedAttributes(tile, featureTable, batchTable, instancesLen
146
146
  }
147
147
 
148
148
  instancePosition.copy(position);
149
+ // @ts-expect-error
149
150
  instanceTranslationRotationScale.translation = instancePosition;
150
151
 
151
152
  // Get the instance rotation
@@ -203,6 +204,7 @@ function extractInstancedAttributes(tile, featureTable, batchTable, instancesLen
203
204
  }
204
205
 
205
206
  instanceQuaternion.fromMatrix3(instanceRotation);
207
+ // @ts-expect-error
206
208
  instanceTranslationRotationScale.rotation = instanceQuaternion;
207
209
 
208
210
  // Get the instance scale
@@ -216,6 +218,7 @@ function extractInstancedAttributes(tile, featureTable, batchTable, instancesLen
216
218
  instanceScale.scale(nonUniformScale);
217
219
  }
218
220
 
221
+ // @ts-expect-error
219
222
  instanceTranslationRotationScale.scale = instanceScale;
220
223
 
221
224
  // Get the batchId
@@ -225,12 +228,15 @@ function extractInstancedAttributes(tile, featureTable, batchTable, instancesLen
225
228
  batchId = i;
226
229
  }
227
230
 
231
+ // @ts-expect-error
228
232
  const rotationMatrix = new Matrix4().fromQuaternion(instanceTranslationRotationScale.rotation);
229
233
 
230
234
  // Create the model matrix and the instance
231
235
  instanceTransform.identity();
236
+ // @ts-expect-error
232
237
  instanceTransform.translate(instanceTranslationRotationScale.translation);
233
238
  instanceTransform.multiplyRight(rotationMatrix);
239
+ // @ts-expect-error
234
240
  instanceTransform.scale(instanceTranslationRotationScale.scale);
235
241
 
236
242
  const modelMatrix = instanceTransform.clone();
@@ -137,7 +137,7 @@ function parseNormals(tile, featureTable) {
137
137
  }
138
138
 
139
139
  function parseBatchIds(tile, featureTable) {
140
- let batchTable = null;
140
+ let batchTable: Tile3DBatchTable | null = null;
141
141
  if (!tile.batchIds && featureTable.hasProperty('BATCH_ID')) {
142
142
  tile.batchIds = featureTable.getPropertyArray('BATCH_ID', GL.UNSIGNED_SHORT, 1);
143
143
 
@@ -250,7 +250,7 @@ export async function loadDraco(tile, dracoData, options, context) {
250
250
 
251
251
  tile.attributes = {
252
252
  positions: decodedPositions,
253
- colors: normalize3DTileColorAttribute(tile, decodedColors),
253
+ colors: normalize3DTileColorAttribute(tile, decodedColors, undefined),
254
254
  normals: decodedNormals,
255
255
  batchIds: decodedBatchIds,
256
256
  ...batchTableAttributes
@@ -11,9 +11,12 @@ import {parseComposite3DTile} from './parse-3d-tile-composite';
11
11
 
12
12
  // Extracts
13
13
  export async function parse3DTile(arrayBuffer, byteOffset = 0, options, context, tile = {}) {
14
+ // @ts-expect-error
14
15
  tile.byteOffset = byteOffset;
16
+ // @ts-expect-error
15
17
  tile.type = getMagicString(arrayBuffer, byteOffset);
16
18
 
19
+ // @ts-expect-error
17
20
  switch (tile.type) {
18
21
  case TILE3D_TYPE.COMPOSITE:
19
22
  // Note: We pass this function as argument so that embedded tiles can be parsed recursively
@@ -36,6 +39,7 @@ export async function parse3DTile(arrayBuffer, byteOffset = 0, options, context,
36
39
  return await parsePointCloud3DTile(tile, arrayBuffer, byteOffset, options, context);
37
40
 
38
41
  default:
42
+ // @ts-expect-error
39
43
  throw new Error(`3DTileLoader: unknown type ${tile.type}`); // eslint-disable-line
40
44
  }
41
45
  }
File without changes
@@ -0,0 +1,19 @@
1
+ import type {LoaderWithParser} from '@loaders.gl/loader-utils';
2
+ import parse3DTilesSubtree from './lib/parsers/helpers/parse-3d-tile-subtree';
3
+ import {VERSION} from './lib/utils/version';
4
+
5
+ /**
6
+ * Loader for 3D Tiles Subtree
7
+ *
8
+ */
9
+ export const Tile3DSubtreeLoader: LoaderWithParser = {
10
+ id: '3d-tiles-subtree',
11
+ name: '3D Tiles Subtree',
12
+ module: '3d-tiles',
13
+ version: VERSION,
14
+ extensions: ['subtree'],
15
+ mimeTypes: ['application/octet-stream'],
16
+ tests: ['subtree'],
17
+ parse: parse3DTilesSubtree,
18
+ options: {}
19
+ };