@loaders.gl/3d-tiles 3.1.3 → 4.0.0-alpha.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 (224) hide show
  1. package/dist/bundle.js +2 -2
  2. package/dist/bundle.js.map +1 -0
  3. package/dist/cesium-ion-loader.js +32 -36
  4. package/dist/cesium-ion-loader.js.map +1 -0
  5. package/dist/dist.min.js +88 -40
  6. package/dist/index.js +9 -26
  7. package/dist/index.js.map +1 -0
  8. package/dist/lib/classes/helpers/tile-3d-accessor-utils.js +89 -106
  9. package/dist/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -0
  10. package/dist/lib/classes/tile-3d-batch-table-hierarchy.js +202 -184
  11. package/dist/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -0
  12. package/dist/lib/classes/tile-3d-batch-table.js +282 -223
  13. package/dist/lib/classes/tile-3d-batch-table.js.map +1 -0
  14. package/dist/lib/classes/tile-3d-feature-table.js +86 -64
  15. package/dist/lib/classes/tile-3d-feature-table.js.map +1 -0
  16. package/dist/lib/constants.js +19 -23
  17. package/dist/lib/constants.js.map +1 -0
  18. package/dist/lib/encoders/encode-3d-tile-batched-model.js +45 -45
  19. package/dist/lib/encoders/encode-3d-tile-batched-model.js.map +1 -0
  20. package/dist/lib/encoders/encode-3d-tile-composite.js +24 -23
  21. package/dist/lib/encoders/encode-3d-tile-composite.js.map +1 -0
  22. package/dist/lib/encoders/encode-3d-tile-instanced-model.js +37 -37
  23. package/dist/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -0
  24. package/dist/lib/encoders/encode-3d-tile-point-cloud.js +38 -36
  25. package/dist/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -0
  26. package/dist/lib/encoders/encode-3d-tile.js +32 -30
  27. package/dist/lib/encoders/encode-3d-tile.js.map +1 -0
  28. package/dist/lib/encoders/helpers/encode-3d-tile-header.js +29 -28
  29. package/dist/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -0
  30. package/dist/lib/ion/ion.js +69 -60
  31. package/dist/lib/ion/ion.js.map +1 -0
  32. package/dist/lib/parsers/helpers/normalize-3d-tile-colors.js +62 -60
  33. package/dist/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -0
  34. package/dist/lib/parsers/helpers/normalize-3d-tile-normals.js +26 -26
  35. package/dist/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -0
  36. package/dist/lib/parsers/helpers/normalize-3d-tile-positions.js +28 -39
  37. package/dist/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -0
  38. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.d.ts +18 -11
  39. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.d.ts.map +1 -1
  40. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.js +203 -170
  41. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -0
  42. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js +63 -82
  43. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -0
  44. package/dist/lib/parsers/helpers/parse-3d-tile-header.js +15 -26
  45. package/dist/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -0
  46. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.js +57 -68
  47. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -0
  48. package/dist/lib/parsers/helpers/parse-3d-tile-tables.js +80 -84
  49. package/dist/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -0
  50. package/dist/lib/parsers/helpers/parse-utils.js +16 -29
  51. package/dist/lib/parsers/helpers/parse-utils.js.map +1 -0
  52. package/dist/lib/parsers/parse-3d-tile-batched-model.js +26 -30
  53. package/dist/lib/parsers/parse-3d-tile-batched-model.js.map +1 -0
  54. package/dist/lib/parsers/parse-3d-tile-composite.js +16 -25
  55. package/dist/lib/parsers/parse-3d-tile-composite.js.map +1 -0
  56. package/dist/lib/parsers/parse-3d-tile-gltf.js +9 -17
  57. package/dist/lib/parsers/parse-3d-tile-gltf.js.map +1 -0
  58. package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -1
  59. package/dist/lib/parsers/parse-3d-tile-header.js +139 -122
  60. package/dist/lib/parsers/parse-3d-tile-header.js.map +1 -0
  61. package/dist/lib/parsers/parse-3d-tile-instanced-model.js +170 -179
  62. package/dist/{es5/lib → lib}/parsers/parse-3d-tile-instanced-model.js.map +1 -1
  63. package/dist/lib/parsers/parse-3d-tile-point-cloud.js +184 -350
  64. package/dist/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -0
  65. package/dist/lib/parsers/parse-3d-tile.js +31 -36
  66. package/dist/lib/parsers/parse-3d-tile.js.map +1 -0
  67. package/dist/lib/utils/version.js +2 -7
  68. package/dist/lib/utils/version.js.map +1 -0
  69. package/dist/tile-3d-subtree-loader.js +13 -22
  70. package/dist/tile-3d-subtree-loader.js.map +1 -0
  71. package/dist/tile-3d-writer.js +17 -24
  72. package/dist/tile-3d-writer.js.map +1 -0
  73. package/dist/tiles-3d-loader.js +66 -67
  74. package/dist/tiles-3d-loader.js.map +1 -0
  75. package/dist/types.d.ts +2 -1
  76. package/dist/types.d.ts.map +1 -1
  77. package/dist/types.js +2 -2
  78. package/dist/{es5/types.js.map → types.js.map} +0 -0
  79. package/package.json +10 -10
  80. package/src/lib/parsers/helpers/parse-3d-implicit-tiles.ts +95 -31
  81. package/src/lib/parsers/parse-3d-tile-header.ts +3 -1
  82. package/src/types.ts +2 -1
  83. package/dist/es5/bundle.js +0 -7
  84. package/dist/es5/bundle.js.map +0 -1
  85. package/dist/es5/cesium-ion-loader.js +0 -100
  86. package/dist/es5/cesium-ion-loader.js.map +0 -1
  87. package/dist/es5/index.js +0 -72
  88. package/dist/es5/index.js.map +0 -1
  89. package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js +0 -120
  90. package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js.map +0 -1
  91. package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js +0 -225
  92. package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js.map +0 -1
  93. package/dist/es5/lib/classes/tile-3d-batch-table.js +0 -349
  94. package/dist/es5/lib/classes/tile-3d-batch-table.js.map +0 -1
  95. package/dist/es5/lib/classes/tile-3d-feature-table.js +0 -119
  96. package/dist/es5/lib/classes/tile-3d-feature-table.js.map +0 -1
  97. package/dist/es5/lib/constants.js +0 -32
  98. package/dist/es5/lib/constants.js.map +0 -1
  99. package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js +0 -63
  100. package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js.map +0 -1
  101. package/dist/es5/lib/encoders/encode-3d-tile-composite.js +0 -41
  102. package/dist/es5/lib/encoders/encode-3d-tile-composite.js.map +0 -1
  103. package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js +0 -57
  104. package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js.map +0 -1
  105. package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js +0 -59
  106. package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js.map +0 -1
  107. package/dist/es5/lib/encoders/encode-3d-tile.js +0 -48
  108. package/dist/es5/lib/encoders/encode-3d-tile.js.map +0 -1
  109. package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js +0 -41
  110. package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js.map +0 -1
  111. package/dist/es5/lib/ion/ion.js +0 -219
  112. package/dist/es5/lib/ion/ion.js.map +0 -1
  113. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js +0 -76
  114. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js.map +0 -1
  115. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js +0 -40
  116. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js.map +0 -1
  117. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js +0 -40
  118. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js.map +0 -1
  119. package/dist/es5/lib/parsers/helpers/parse-3d-implicit-tiles.js +0 -270
  120. package/dist/es5/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +0 -1
  121. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js +0 -123
  122. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +0 -1
  123. package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js +0 -25
  124. package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js.map +0 -1
  125. package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js +0 -161
  126. package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js.map +0 -1
  127. package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js +0 -98
  128. package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js.map +0 -1
  129. package/dist/es5/lib/parsers/helpers/parse-utils.js +0 -32
  130. package/dist/es5/lib/parsers/helpers/parse-utils.js.map +0 -1
  131. package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js +0 -69
  132. package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js.map +0 -1
  133. package/dist/es5/lib/parsers/parse-3d-tile-composite.js +0 -61
  134. package/dist/es5/lib/parsers/parse-3d-tile-composite.js.map +0 -1
  135. package/dist/es5/lib/parsers/parse-3d-tile-gltf.js +0 -45
  136. package/dist/es5/lib/parsers/parse-3d-tile-gltf.js.map +0 -1
  137. package/dist/es5/lib/parsers/parse-3d-tile-header.js +0 -233
  138. package/dist/es5/lib/parsers/parse-3d-tile-header.js.map +0 -1
  139. package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js +0 -220
  140. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js +0 -346
  141. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js.map +0 -1
  142. package/dist/es5/lib/parsers/parse-3d-tile.js +0 -100
  143. package/dist/es5/lib/parsers/parse-3d-tile.js.map +0 -1
  144. package/dist/es5/lib/utils/version.js +0 -9
  145. package/dist/es5/lib/utils/version.js.map +0 -1
  146. package/dist/es5/tile-3d-subtree-loader.js +0 -26
  147. package/dist/es5/tile-3d-subtree-loader.js.map +0 -1
  148. package/dist/es5/tile-3d-writer.js +0 -32
  149. package/dist/es5/tile-3d-writer.js.map +0 -1
  150. package/dist/es5/tiles-3d-loader.js +0 -190
  151. package/dist/es5/tiles-3d-loader.js.map +0 -1
  152. package/dist/es5/types.js +0 -2
  153. package/dist/esm/bundle.js +0 -5
  154. package/dist/esm/bundle.js.map +0 -1
  155. package/dist/esm/cesium-ion-loader.js +0 -36
  156. package/dist/esm/cesium-ion-loader.js.map +0 -1
  157. package/dist/esm/index.js +0 -9
  158. package/dist/esm/index.js.map +0 -1
  159. package/dist/esm/lib/classes/helpers/tile-3d-accessor-utils.js +0 -96
  160. package/dist/esm/lib/classes/helpers/tile-3d-accessor-utils.js.map +0 -1
  161. package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js +0 -215
  162. package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js.map +0 -1
  163. package/dist/esm/lib/classes/tile-3d-batch-table.js +0 -304
  164. package/dist/esm/lib/classes/tile-3d-batch-table.js.map +0 -1
  165. package/dist/esm/lib/classes/tile-3d-feature-table.js +0 -94
  166. package/dist/esm/lib/classes/tile-3d-feature-table.js.map +0 -1
  167. package/dist/esm/lib/constants.js +0 -22
  168. package/dist/esm/lib/constants.js.map +0 -1
  169. package/dist/esm/lib/encoders/encode-3d-tile-batched-model.js +0 -46
  170. package/dist/esm/lib/encoders/encode-3d-tile-batched-model.js.map +0 -1
  171. package/dist/esm/lib/encoders/encode-3d-tile-composite.js +0 -25
  172. package/dist/esm/lib/encoders/encode-3d-tile-composite.js.map +0 -1
  173. package/dist/esm/lib/encoders/encode-3d-tile-instanced-model.js +0 -38
  174. package/dist/esm/lib/encoders/encode-3d-tile-instanced-model.js.map +0 -1
  175. package/dist/esm/lib/encoders/encode-3d-tile-point-cloud.js +0 -41
  176. package/dist/esm/lib/encoders/encode-3d-tile-point-cloud.js.map +0 -1
  177. package/dist/esm/lib/encoders/encode-3d-tile.js +0 -35
  178. package/dist/esm/lib/encoders/encode-3d-tile.js.map +0 -1
  179. package/dist/esm/lib/encoders/helpers/encode-3d-tile-header.js +0 -31
  180. package/dist/esm/lib/encoders/helpers/encode-3d-tile-header.js.map +0 -1
  181. package/dist/esm/lib/ion/ion.js +0 -77
  182. package/dist/esm/lib/ion/ion.js.map +0 -1
  183. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js +0 -67
  184. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js.map +0 -1
  185. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-normals.js +0 -30
  186. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-normals.js.map +0 -1
  187. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-positions.js +0 -31
  188. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-positions.js.map +0 -1
  189. package/dist/esm/lib/parsers/helpers/parse-3d-implicit-tiles.js +0 -173
  190. package/dist/esm/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +0 -1
  191. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js +0 -69
  192. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +0 -1
  193. package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js +0 -17
  194. package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js.map +0 -1
  195. package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js +0 -64
  196. package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js.map +0 -1
  197. package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js +0 -89
  198. package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js.map +0 -1
  199. package/dist/esm/lib/parsers/helpers/parse-utils.js +0 -19
  200. package/dist/esm/lib/parsers/helpers/parse-utils.js.map +0 -1
  201. package/dist/esm/lib/parsers/parse-3d-tile-batched-model.js +0 -29
  202. package/dist/esm/lib/parsers/parse-3d-tile-batched-model.js.map +0 -1
  203. package/dist/esm/lib/parsers/parse-3d-tile-composite.js +0 -17
  204. package/dist/esm/lib/parsers/parse-3d-tile-composite.js.map +0 -1
  205. package/dist/esm/lib/parsers/parse-3d-tile-gltf.js +0 -10
  206. package/dist/esm/lib/parsers/parse-3d-tile-gltf.js.map +0 -1
  207. package/dist/esm/lib/parsers/parse-3d-tile-header.js +0 -144
  208. package/dist/esm/lib/parsers/parse-3d-tile-header.js.map +0 -1
  209. package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js +0 -177
  210. package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js.map +0 -1
  211. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js +0 -245
  212. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js.map +0 -1
  213. package/dist/esm/lib/parsers/parse-3d-tile.js +0 -32
  214. package/dist/esm/lib/parsers/parse-3d-tile.js.map +0 -1
  215. package/dist/esm/lib/utils/version.js +0 -2
  216. package/dist/esm/lib/utils/version.js.map +0 -1
  217. package/dist/esm/tile-3d-subtree-loader.js +0 -14
  218. package/dist/esm/tile-3d-subtree-loader.js.map +0 -1
  219. package/dist/esm/tile-3d-writer.js +0 -20
  220. package/dist/esm/tile-3d-writer.js.map +0 -1
  221. package/dist/esm/tiles-3d-loader.js +0 -79
  222. package/dist/esm/tiles-3d-loader.js.map +0 -1
  223. package/dist/esm/types.js +0 -2
  224. package/dist/esm/types.js.map +0 -1
package/dist/bundle.js CHANGED
@@ -1,5 +1,5 @@
1
- "use strict";
2
- // @ts-nocheck
3
1
  const moduleExports = require('./index');
2
+
4
3
  globalThis.loaders = globalThis.loaders || {};
5
4
  module.exports = Object.assign(globalThis.loaders, moduleExports);
5
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
@@ -1,40 +1,36 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CesiumIonLoader = void 0;
4
- const tiles_3d_loader_1 = require("./tiles-3d-loader");
5
- const ion_1 = require("./lib/ion/ion");
1
+ import { Tiles3DLoader } from './tiles-3d-loader';
2
+ import { getIonTilesetMetadata } from './lib/ion/ion';
3
+
6
4
  async function preload(url, options = {}) {
7
- options = options['cesium-ion'] || {};
8
- // @ts-ignore
9
- const { accessToken } = options;
10
- // @ts-ignore
11
- let assetId = options.assetId;
12
- if (!Number.isFinite(assetId)) {
13
- const matched = url.match(/\/([0-9]+)\/tileset.json/);
14
- assetId = matched && matched[1];
15
- }
16
- return (0, ion_1.getIonTilesetMetadata)(accessToken, assetId);
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
17
  }
18
- /**
19
- * Loader for 3D tiles from Cesium ION
20
- */
21
- exports.CesiumIonLoader = {
22
- ...tiles_3d_loader_1.Tiles3DLoader,
23
- id: 'cesium-ion',
24
- name: 'Cesium Ion',
25
- // @ts-ignore
26
- preload,
27
- parse: async (data, options, context) => {
28
- options = { ...options };
29
- options['3d-tiles'] = options['cesium-ion'];
30
- // @ts-ignore
31
- options.loader = exports.CesiumIonLoader;
32
- return tiles_3d_loader_1.Tiles3DLoader.parse(data, options, context); // , loader);
33
- },
34
- options: {
35
- 'cesium-ion': {
36
- ...tiles_3d_loader_1.Tiles3DLoader.options['3d-tiles'],
37
- accessToken: null
38
- }
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
39
33
  }
34
+ }
40
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"}
package/dist/dist.min.js CHANGED
@@ -64,7 +64,7 @@
64
64
  var DEFAULT_VERSION, VERSION;
65
65
  var init_version = __esm({
66
66
  "../worker-utils/src/lib/env-utils/version.ts"() {
67
- DEFAULT_VERSION = "latest";
67
+ DEFAULT_VERSION = "beta";
68
68
  VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : DEFAULT_VERSION;
69
69
  if (typeof __VERSION__ === "undefined") {
70
70
  console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
@@ -500,7 +500,7 @@
500
500
  var init_get_worker_url = __esm({
501
501
  "../worker-utils/src/lib/worker-api/get-worker-url.ts"() {
502
502
  init_assert2();
503
- NPM_TAG = "latest";
503
+ NPM_TAG = "beta";
504
504
  }
505
505
  });
506
506
 
@@ -598,7 +598,7 @@
598
598
  node = __toModule(require_require_utils());
599
599
  init_assert2();
600
600
  init_version();
601
- LATEST = "latest";
601
+ LATEST = "beta";
602
602
  VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
603
603
  loadLibraryPromises = {};
604
604
  }
@@ -4993,29 +4993,29 @@
4993
4993
  }
4994
4994
  });
4995
4995
 
4996
- // ../../node_modules/@probe.gl/stats/dist/esm/utils/hi-res-timestamp.js
4996
+ // ../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/utils/hi-res-timestamp.js
4997
4997
  var init_hi_res_timestamp2 = __esm({
4998
- "../../node_modules/@probe.gl/stats/dist/esm/utils/hi-res-timestamp.js"() {
4998
+ "../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/utils/hi-res-timestamp.js"() {
4999
4999
  }
5000
5000
  });
5001
5001
 
5002
- // ../../node_modules/@probe.gl/stats/dist/esm/lib/stat.js
5002
+ // ../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/lib/stat.js
5003
5003
  var init_stat = __esm({
5004
- "../../node_modules/@probe.gl/stats/dist/esm/lib/stat.js"() {
5004
+ "../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/lib/stat.js"() {
5005
5005
  init_hi_res_timestamp2();
5006
5006
  }
5007
5007
  });
5008
5008
 
5009
- // ../../node_modules/@probe.gl/stats/dist/esm/lib/stats.js
5009
+ // ../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/lib/stats.js
5010
5010
  var init_stats = __esm({
5011
- "../../node_modules/@probe.gl/stats/dist/esm/lib/stats.js"() {
5011
+ "../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/lib/stats.js"() {
5012
5012
  init_stat();
5013
5013
  }
5014
5014
  });
5015
5015
 
5016
- // ../../node_modules/@probe.gl/stats/dist/esm/index.js
5016
+ // ../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/index.js
5017
5017
  var init_esm3 = __esm({
5018
- "../../node_modules/@probe.gl/stats/dist/esm/index.js"() {
5018
+ "../../node_modules/probe.gl/node_modules/@probe.gl/stats/dist/esm/index.js"() {
5019
5019
  init_stats();
5020
5020
  init_stat();
5021
5021
  init_hi_res_timestamp2();
@@ -8163,7 +8163,7 @@
8163
8163
  var VERSION7;
8164
8164
  var init_version5 = __esm({
8165
8165
  "../textures/src/lib/utils/version.ts"() {
8166
- VERSION7 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
8166
+ VERSION7 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
8167
8167
  }
8168
8168
  });
8169
8169
 
@@ -8234,7 +8234,7 @@
8234
8234
  var init_basis_module_loader = __esm({
8235
8235
  "../textures/src/lib/parsers/basis-module-loader.ts"() {
8236
8236
  init_src();
8237
- VERSION8 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
8237
+ VERSION8 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
8238
8238
  BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION8}/dist/libs/basis_encoder.wasm`;
8239
8239
  BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION8}/dist/libs/basis_encoder.js`;
8240
8240
  }
@@ -8431,7 +8431,7 @@
8431
8431
  const basisFile = new BasisFile(new Uint8Array(data));
8432
8432
  try {
8433
8433
  if (!basisFile.startTranscoding()) {
8434
- return null;
8434
+ throw new Error("Failed to start basis transcoding");
8435
8435
  }
8436
8436
  const imageCount = basisFile.getNumImages();
8437
8437
  const images = [];
@@ -8457,22 +8457,22 @@
8457
8457
  const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
8458
8458
  const decodedData = new Uint8Array(decodedSize);
8459
8459
  if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
8460
- return null;
8460
+ throw new Error("failed to start Basis transcoding");
8461
8461
  }
8462
8462
  return {
8463
8463
  width,
8464
8464
  height,
8465
8465
  data: decodedData,
8466
8466
  compressed,
8467
- hasAlpha,
8468
- format
8467
+ format,
8468
+ hasAlpha
8469
8469
  };
8470
8470
  }
8471
8471
  function parseKTX2File(KTX2File, data, options) {
8472
8472
  const ktx2File = new KTX2File(new Uint8Array(data));
8473
8473
  try {
8474
8474
  if (!ktx2File.startTranscoding()) {
8475
- return null;
8475
+ throw new Error("failed to start KTX2 transcoding");
8476
8476
  }
8477
8477
  const levelsCount = ktx2File.getLevels();
8478
8478
  const levels = [];
@@ -8480,7 +8480,7 @@
8480
8480
  levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
8481
8481
  break;
8482
8482
  }
8483
- return levels;
8483
+ return [levels];
8484
8484
  } finally {
8485
8485
  ktx2File.close();
8486
8486
  ktx2File.delete();
@@ -8492,14 +8492,14 @@
8492
8492
  const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0, 0, basisFormat);
8493
8493
  const decodedData = new Uint8Array(decodedSize);
8494
8494
  if (!ktx2File.transcodeImage(decodedData, levelIndex, 0, 0, basisFormat, 0, -1, -1)) {
8495
- return null;
8495
+ throw new Error("Failed to transcode KTX2 image");
8496
8496
  }
8497
8497
  return {
8498
8498
  width,
8499
8499
  height,
8500
8500
  data: decodedData,
8501
8501
  compressed,
8502
- alphaFlag,
8502
+ hasAlpha: alphaFlag,
8503
8503
  format
8504
8504
  };
8505
8505
  }
@@ -11037,7 +11037,7 @@
11037
11037
  mipmaps: false,
11038
11038
  width: parsedImage[0].width,
11039
11039
  height: parsedImage[0].height,
11040
- data: parsedImage
11040
+ data: parsedImage[0]
11041
11041
  };
11042
11042
  }
11043
11043
  gltf.images = gltf.images || [];
@@ -11498,18 +11498,25 @@
11498
11498
  });
11499
11499
 
11500
11500
  // src/lib/parsers/helpers/parse-3d-implicit-tiles.ts
11501
- async function parseImplicitTiles(subtree, options, parentData = {
11502
- mortonIndex: 0,
11503
- x: 0,
11504
- y: 0,
11505
- z: 0
11506
- }, childIndex = 0, level = 0, globalData = {
11507
- level: 0,
11508
- mortonIndex: 0,
11509
- x: 0,
11510
- y: 0,
11511
- z: 0
11512
- }) {
11501
+ async function parseImplicitTiles(params) {
11502
+ const {
11503
+ options,
11504
+ parentData = {
11505
+ mortonIndex: 0,
11506
+ x: 0,
11507
+ y: 0,
11508
+ z: 0
11509
+ },
11510
+ childIndex = 0,
11511
+ globalData = {
11512
+ level: 0,
11513
+ mortonIndex: 0,
11514
+ x: 0,
11515
+ y: 0,
11516
+ z: 0
11517
+ }
11518
+ } = params;
11519
+ let { subtree, level = 0 } = params;
11513
11520
  const {
11514
11521
  subdivisionScheme,
11515
11522
  subtreeLevels,
@@ -11565,10 +11572,18 @@
11565
11572
  const childTileLevel = level + 1;
11566
11573
  const pData = { mortonIndex: childTileMortonIndex, x: childTileX, y: childTileY, z: childTileZ };
11567
11574
  for (let index = 0; index < childrenPerTile; index++) {
11568
- const currentTile = await parseImplicitTiles(subtree, options, pData, index, childTileLevel, globalData);
11575
+ const currentTile = await parseImplicitTiles({
11576
+ subtree,
11577
+ options,
11578
+ parentData: pData,
11579
+ childIndex: index,
11580
+ level: childTileLevel,
11581
+ globalData
11582
+ });
11569
11583
  if (currentTile.contentUrl || currentTile.children.length) {
11570
11584
  const globalLevel = lev + 1;
11571
- const formattedTile = formatTileData(currentTile, globalLevel, options);
11585
+ const childCoordinates = { childTileX, childTileY, childTileZ };
11586
+ const formattedTile = formatTileData(currentTile, globalLevel, childCoordinates, options);
11572
11587
  tile.children.push(formattedTile);
11573
11588
  }
11574
11589
  }
@@ -11583,10 +11598,19 @@
11583
11598
  }
11584
11599
  return false;
11585
11600
  }
11586
- function formatTileData(tile, level, options) {
11587
- const { basePath, refine, getRefine: getRefine2, lodMetricType, getTileType: getTileType2, rootLodMetricValue } = options;
11601
+ function formatTileData(tile, level, childCoordinates, options) {
11602
+ const {
11603
+ basePath,
11604
+ refine,
11605
+ getRefine: getRefine2,
11606
+ lodMetricType,
11607
+ getTileType: getTileType2,
11608
+ rootLodMetricValue,
11609
+ rootBoundingVolume
11610
+ } = options;
11588
11611
  const uri = tile.contentUrl && tile.contentUrl.replace(`${basePath}/`, "");
11589
11612
  const lodMetricValue = rootLodMetricValue / 2 ** level;
11613
+ const boundingVolume = calculateBoundingVolumeForChildTile(level, rootBoundingVolume, childCoordinates);
11590
11614
  return {
11591
11615
  children: tile.children,
11592
11616
  contentUrl: tile.contentUrl,
@@ -11595,9 +11619,31 @@
11595
11619
  refine: getRefine2(refine),
11596
11620
  type: getTileType2(tile),
11597
11621
  lodMetricType,
11598
- lodMetricValue
11622
+ lodMetricValue,
11623
+ boundingVolume
11599
11624
  };
11600
11625
  }
11626
+ function calculateBoundingVolumeForChildTile(level, rootBoundingVolume, childCoordinates) {
11627
+ if (rootBoundingVolume.region) {
11628
+ const { childTileX, childTileY, childTileZ } = childCoordinates;
11629
+ const [west, south, east, north, minimumHeight, maximumHeight] = rootBoundingVolume.region;
11630
+ const boundingVolumesCount = 2 ** level;
11631
+ const sizeX = (east - west) / boundingVolumesCount;
11632
+ const sizeY = (north - south) / boundingVolumesCount;
11633
+ const sizeZ = (maximumHeight - minimumHeight) / boundingVolumesCount;
11634
+ const [childWest, childEast] = [west + sizeX * childTileX, west + sizeX * (childTileX + 1)];
11635
+ const [childSouth, childNorth] = [south + sizeY * childTileY, south + sizeY * (childTileY + 1)];
11636
+ const [childMinimumHeight, childMaximumHeight] = [
11637
+ minimumHeight + sizeZ * childTileZ,
11638
+ minimumHeight + sizeZ * (childTileZ + 1)
11639
+ ];
11640
+ return {
11641
+ region: [childWest, childSouth, childEast, childNorth, childMinimumHeight, childMaximumHeight]
11642
+ };
11643
+ }
11644
+ console.warn("Unsupported bounding volume type: ", rootBoundingVolume);
11645
+ return null;
11646
+ }
11601
11647
  function concatBits(first, second) {
11602
11648
  return parseInt(first.toString(2) + second.toString(2), 2);
11603
11649
  }
@@ -11712,6 +11758,7 @@
11712
11758
  const contentUrlTemplate = `${basePath}/${tileset.root.content.uri}`;
11713
11759
  const refine = tileset.root.refine;
11714
11760
  const rootLodMetricValue = tileset.root.geometricError;
11761
+ const rootBoundingVolume = tileset.root.boundingVolume;
11715
11762
  const options = {
11716
11763
  contentUrlTemplate,
11717
11764
  subtreesUriTemplate,
@@ -11722,6 +11769,7 @@
11722
11769
  basePath,
11723
11770
  lodMetricType: LOD_METRIC_TYPE.GEOMETRIC_ERROR,
11724
11771
  rootLodMetricValue,
11772
+ rootBoundingVolume,
11725
11773
  getTileType,
11726
11774
  getRefine
11727
11775
  };
@@ -11734,7 +11782,7 @@
11734
11782
  tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;
11735
11783
  tile.lodMetricValue = tile.geometricError;
11736
11784
  tile.transformMatrix = tile.transform;
11737
- const { children, contentUrl } = await parseImplicitTiles(rootSubtree, options);
11785
+ const { children, contentUrl } = await parseImplicitTiles({ subtree: rootSubtree, options });
11738
11786
  if (contentUrl) {
11739
11787
  tile.contentUrl = contentUrl;
11740
11788
  tile.content = { uri: contentUrl.replace(`${options.basePath}/`, "") };
package/dist/index.js CHANGED
@@ -1,26 +1,9 @@
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._getIonTilesetMetadata = exports.TILE3D_TYPE = exports.Tile3DBatchTable = exports.Tile3DFeatureTable = exports.Tile3DWriter = exports.Tile3DSubtreeLoader = exports.CesiumIonLoader = exports.Tiles3DLoader = void 0;
7
- // LOADERS
8
- var tiles_3d_loader_1 = require("./tiles-3d-loader");
9
- Object.defineProperty(exports, "Tiles3DLoader", { enumerable: true, get: function () { return tiles_3d_loader_1.Tiles3DLoader; } });
10
- var cesium_ion_loader_1 = require("./cesium-ion-loader");
11
- Object.defineProperty(exports, "CesiumIonLoader", { enumerable: true, get: function () { return cesium_ion_loader_1.CesiumIonLoader; } });
12
- var tile_3d_subtree_loader_1 = require("./tile-3d-subtree-loader");
13
- Object.defineProperty(exports, "Tile3DSubtreeLoader", { enumerable: true, get: function () { return tile_3d_subtree_loader_1.Tile3DSubtreeLoader; } });
14
- // WRITERS
15
- var tile_3d_writer_1 = require("./tile-3d-writer");
16
- Object.defineProperty(exports, "Tile3DWriter", { enumerable: true, get: function () { return tile_3d_writer_1.Tile3DWriter; } });
17
- // CLASSES
18
- var tile_3d_feature_table_1 = require("./lib/classes/tile-3d-feature-table");
19
- Object.defineProperty(exports, "Tile3DFeatureTable", { enumerable: true, get: function () { return __importDefault(tile_3d_feature_table_1).default; } });
20
- var tile_3d_batch_table_1 = require("./lib/classes/tile-3d-batch-table");
21
- Object.defineProperty(exports, "Tile3DBatchTable", { enumerable: true, get: function () { return __importDefault(tile_3d_batch_table_1).default; } });
22
- // EXPERIMENTAL
23
- var constants_1 = require("./lib/constants");
24
- Object.defineProperty(exports, "TILE3D_TYPE", { enumerable: true, get: function () { return constants_1.TILE3D_TYPE; } });
25
- var ion_1 = require("./lib/ion/ion");
26
- Object.defineProperty(exports, "_getIonTilesetMetadata", { enumerable: true, get: function () { return ion_1.getIonTilesetMetadata; } });
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"}
@@ -1,113 +1,96 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createTypedArrayFromAccessor = void 0;
4
- const math_1 = require("@loaders.gl/math"); // '@math.gl/geometry';
5
- const loader_utils_1 = require("@loaders.gl/loader-utils");
1
+ import { GLType } from '@loaders.gl/math';
2
+ import { assert } from '@loaders.gl/loader-utils';
6
3
  const COMPONENTS_PER_ATTRIBUTE = {
7
- SCALAR: 1,
8
- VEC2: 2,
9
- VEC3: 3,
10
- VEC4: 4,
11
- MAT2: 4,
12
- MAT3: 9,
13
- MAT4: 16
4
+ SCALAR: 1,
5
+ VEC2: 2,
6
+ VEC3: 3,
7
+ VEC4: 4,
8
+ MAT2: 4,
9
+ MAT3: 9,
10
+ MAT4: 16
14
11
  };
15
- // TODO - could just return typed array views...
16
- // prettier-ignore
17
12
  const UNPACKER = {
18
- SCALAR: (values, i) => values[i],
19
- VEC2: (values, i) => [values[2 * i + 0], values[2 * i + 1]],
20
- VEC3: (values, i) => [values[3 * i + 0], values[3 * i + 1], values[3 * i + 2]],
21
- VEC4: (values, i) => [values[4 * i + 0], values[4 * i + 1], values[4 * i + 2], values[4 * i + 3]],
22
- // TODO: check column major
23
- MAT2: (values, i) => [
24
- values[4 * i + 0], values[4 * i + 1],
25
- values[4 * i + 2], values[4 * i + 3]
26
- ],
27
- MAT3: (values, i) => [
28
- values[9 * i + 0], values[9 * i + 1], values[9 * i + 2],
29
- values[9 * i + 3], values[9 * i + 4], values[9 * i + 5],
30
- values[9 * i + 6], values[9 * i + 7], values[9 * i + 8]
31
- ],
32
- MAT4: (values, i) => [
33
- values[16 * i + 0], values[16 * i + 1], values[16 * i + 2], values[16 * i + 3],
34
- values[16 * i + 4], values[16 * i + 5], values[16 * i + 6], values[16 * i + 7],
35
- values[16 * i + 8], values[16 * i + 9], values[16 * i + 10], values[16 * i + 11],
36
- values[16 * i + 12], values[16 * i + 13], values[16 * i + 14], values[16 * i + 15]
37
- ]
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]]
38
20
  };
39
21
  const PACKER = {
40
- SCALAR: (x, values, i) => {
41
- values[i] = x;
42
- },
43
- VEC2: (x, values, i) => {
44
- values[2 * i + 0] = x[0];
45
- values[2 * i + 1] = x[1];
46
- },
47
- VEC3: (x, values, i) => {
48
- values[3 * i + 0] = x[0];
49
- values[3 * i + 1] = x[1];
50
- values[3 * i + 2] = x[2];
51
- },
52
- VEC4: (x, values, i) => {
53
- values[4 * i + 0] = x[0];
54
- values[4 * i + 1] = x[1];
55
- values[4 * i + 2] = x[2];
56
- values[4 * i + 3] = x[3];
57
- },
58
- // TODO: check column major correctness
59
- MAT2: (x, values, i) => {
60
- values[4 * i + 0] = x[0];
61
- values[4 * i + 1] = x[1];
62
- values[4 * i + 2] = x[2];
63
- values[4 * i + 3] = x[3];
64
- },
65
- MAT3: (x, values, i) => {
66
- values[9 * i + 0] = x[0];
67
- values[9 * i + 1] = x[1];
68
- values[9 * i + 2] = x[2];
69
- values[9 * i + 3] = x[3];
70
- values[9 * i + 4] = x[4];
71
- values[9 * i + 5] = x[5];
72
- values[9 * i + 6] = x[6];
73
- values[9 * i + 7] = x[7];
74
- values[9 * i + 8] = x[8];
75
- values[9 * i + 9] = x[9];
76
- },
77
- MAT4: (x, values, i) => {
78
- values[16 * i + 0] = x[0];
79
- values[16 * i + 1] = x[1];
80
- values[16 * i + 2] = x[2];
81
- values[16 * i + 3] = x[3];
82
- values[16 * i + 4] = x[4];
83
- values[16 * i + 5] = x[5];
84
- values[16 * i + 6] = x[6];
85
- values[16 * i + 7] = x[7];
86
- values[16 * i + 8] = x[8];
87
- values[16 * i + 9] = x[9];
88
- values[16 * i + 10] = x[10];
89
- values[16 * i + 11] = x[11];
90
- values[16 * i + 12] = x[12];
91
- values[16 * i + 13] = x[13];
92
- values[16 * i + 14] = x[14];
93
- values[16 * i + 15] = x[15];
94
- }
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
+ }
95
76
  };
96
- function createTypedArrayFromAccessor(tile3DAccessor, buffer, byteOffset, length) {
97
- const { componentType } = tile3DAccessor;
98
- (0, loader_utils_1.assert)(tile3DAccessor.componentType);
99
- const type = typeof componentType === 'string' ? math_1.GLType.fromName(componentType) : componentType;
100
- const size = COMPONENTS_PER_ATTRIBUTE[tile3DAccessor.type];
101
- const unpacker = UNPACKER[tile3DAccessor.type];
102
- const packer = PACKER[tile3DAccessor.type];
103
- byteOffset += tile3DAccessor.byteOffset;
104
- const values = math_1.GLType.createTypedArray(type, buffer, byteOffset, size * length);
105
- return {
106
- values,
107
- type,
108
- size,
109
- unpacker,
110
- packer
111
- };
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
+ };
112
95
  }
113
- exports.createTypedArrayFromAccessor = createTypedArrayFromAccessor;
96
+ //# sourceMappingURL=tile-3d-accessor-utils.js.map