@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
@@ -1,61 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.parseComposite3DTile = parseComposite3DTile;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _parse3dTileHeader = require("./helpers/parse-3d-tile-header");
15
-
16
- function parseComposite3DTile(_x, _x2, _x3, _x4, _x5, _x6) {
17
- return _parseComposite3DTile.apply(this, arguments);
18
- }
19
-
20
- function _parseComposite3DTile() {
21
- _parseComposite3DTile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tile, arrayBuffer, byteOffset, options, context, parse3DTile) {
22
- var view, subtile;
23
- return _regenerator.default.wrap(function _callee$(_context) {
24
- while (1) {
25
- switch (_context.prev = _context.next) {
26
- case 0:
27
- byteOffset = (0, _parse3dTileHeader.parse3DTileHeaderSync)(tile, arrayBuffer, byteOffset);
28
- view = new DataView(arrayBuffer);
29
- tile.tilesLength = view.getUint32(byteOffset, true);
30
- byteOffset += 4;
31
- tile.tiles = [];
32
-
33
- case 5:
34
- if (!(tile.tiles.length < tile.tilesLength && tile.byteLength - byteOffset > 12)) {
35
- _context.next = 13;
36
- break;
37
- }
38
-
39
- subtile = {};
40
- tile.tiles.push(subtile);
41
- _context.next = 10;
42
- return parse3DTile(arrayBuffer, byteOffset, options, context, subtile);
43
-
44
- case 10:
45
- byteOffset = _context.sent;
46
- _context.next = 5;
47
- break;
48
-
49
- case 13:
50
- return _context.abrupt("return", byteOffset);
51
-
52
- case 14:
53
- case "end":
54
- return _context.stop();
55
- }
56
- }
57
- }, _callee);
58
- }));
59
- return _parseComposite3DTile.apply(this, arguments);
60
- }
61
- //# sourceMappingURL=parse-3d-tile-composite.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/lib/parsers/parse-3d-tile-composite.ts"],"names":["parseComposite3DTile","tile","arrayBuffer","byteOffset","options","context","parse3DTile","view","DataView","tilesLength","getUint32","tiles","length","byteLength","subtile","push"],"mappings":";;;;;;;;;;;;;AAMA;;SAGsBA,oB;;;;;oFAAf,iBACLC,IADK,EAELC,WAFK,EAGLC,UAHK,EAILC,OAJK,EAKLC,OALK,EAMLC,WANK;AAAA;AAAA;AAAA;AAAA;AAAA;AAQLH,YAAAA,UAAU,GAAG,8CAAsBF,IAAtB,EAA4BC,WAA5B,EAAyCC,UAAzC,CAAb;AAEMI,YAAAA,IAVD,GAUQ,IAAIC,QAAJ,CAAaN,WAAb,CAVR;AAaLD,YAAAA,IAAI,CAACQ,WAAL,GAAmBF,IAAI,CAACG,SAAL,CAAeP,UAAf,EAA2B,IAA3B,CAAnB;AACAA,YAAAA,UAAU,IAAI,CAAd;AAGAF,YAAAA,IAAI,CAACU,KAAL,GAAa,EAAb;;AAjBK;AAAA,kBAkBEV,IAAI,CAACU,KAAL,CAAWC,MAAX,GAAoBX,IAAI,CAACQ,WAAzB,IAAwCR,IAAI,CAACY,UAAL,GAAkBV,UAAlB,GAA+B,EAlBzE;AAAA;AAAA;AAAA;;AAmBGW,YAAAA,OAnBH,GAmBa,EAnBb;AAoBHb,YAAAA,IAAI,CAACU,KAAL,CAAWI,IAAX,CAAgBD,OAAhB;AApBG;AAAA,mBAqBgBR,WAAW,CAACJ,WAAD,EAAcC,UAAd,EAA0BC,OAA1B,EAAmCC,OAAnC,EAA4CS,OAA5C,CArB3B;;AAAA;AAqBHX,YAAAA,UArBG;AAAA;AAAA;;AAAA;AAAA,6CAyBEA,UAzBF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","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// Reference code:\n// https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Source/Scene/Composite3DTileContent.js#L182\n\nimport {parse3DTileHeaderSync} from './helpers/parse-3d-tile-header';\n\n// eslint-disable-next-line max-params\nexport async function parseComposite3DTile(\n tile,\n arrayBuffer,\n byteOffset,\n options,\n context,\n parse3DTile\n) {\n byteOffset = parse3DTileHeaderSync(tile, arrayBuffer, byteOffset);\n\n const view = new DataView(arrayBuffer);\n\n // Extract number of tiles\n tile.tilesLength = view.getUint32(byteOffset, true);\n byteOffset += 4;\n\n // extract each tile from the byte stream\n tile.tiles = [];\n while (tile.tiles.length < tile.tilesLength && tile.byteLength - byteOffset > 12) {\n const subtile = {};\n tile.tiles.push(subtile);\n byteOffset = await parse3DTile(arrayBuffer, byteOffset, options, context, subtile);\n // TODO - do we need to add any padding in between tiles?\n }\n\n return byteOffset;\n}\n"],"file":"parse-3d-tile-composite.js"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.parseGltf3DTile = parseGltf3DTile;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _gltf = require("@loaders.gl/gltf");
15
-
16
- function parseGltf3DTile(_x, _x2, _x3, _x4) {
17
- return _parseGltf3DTile.apply(this, arguments);
18
- }
19
-
20
- function _parseGltf3DTile() {
21
- _parseGltf3DTile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tile, arrayBuffer, options, context) {
22
- var parse;
23
- return _regenerator.default.wrap(function _callee$(_context) {
24
- while (1) {
25
- switch (_context.prev = _context.next) {
26
- case 0:
27
- tile.rotateYtoZ = true;
28
- tile.gltfUpAxis = options['3d-tiles'] && options['3d-tiles'].assetGltfUpAxis ? options['3d-tiles'].assetGltfUpAxis : 'Y';
29
- parse = context.parse;
30
- _context.next = 5;
31
- return parse(arrayBuffer, _gltf.GLTFLoader, options, context);
32
-
33
- case 5:
34
- tile.gltf = _context.sent;
35
-
36
- case 6:
37
- case "end":
38
- return _context.stop();
39
- }
40
- }
41
- }, _callee);
42
- }));
43
- return _parseGltf3DTile.apply(this, arguments);
44
- }
45
- //# sourceMappingURL=parse-3d-tile-gltf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/lib/parsers/parse-3d-tile-gltf.js"],"names":["parseGltf3DTile","tile","arrayBuffer","options","context","rotateYtoZ","gltfUpAxis","assetGltfUpAxis","parse","GLTFLoader","gltf"],"mappings":";;;;;;;;;;;;;AAAA;;SAEsBA,e;;;;;+EAAf,iBAA+BC,IAA/B,EAAqCC,WAArC,EAAkDC,OAAlD,EAA2DC,OAA3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAILH,YAAAA,IAAI,CAACI,UAAL,GAAkB,IAAlB;AAEAJ,YAAAA,IAAI,CAACK,UAAL,GACEH,OAAO,CAAC,UAAD,CAAP,IAAuBA,OAAO,CAAC,UAAD,CAAP,CAAoBI,eAA3C,GACIJ,OAAO,CAAC,UAAD,CAAP,CAAoBI,eADxB,GAEI,GAHN;AAKOC,YAAAA,KAXF,GAWWJ,OAXX,CAWEI,KAXF;AAAA;AAAA,mBAYaA,KAAK,CAACN,WAAD,EAAcO,gBAAd,EAA0BN,OAA1B,EAAmCC,OAAnC,CAZlB;;AAAA;AAYLH,YAAAA,IAAI,CAACS,IAZA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["import {GLTFLoader} from '@loaders.gl/gltf';\n\nexport async function parseGltf3DTile(tile, arrayBuffer, options, context) {\n // Set flags\n // glTF models need to be rotated from Y to Z up\n // https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification#y-up-to-z-up\n tile.rotateYtoZ = true;\n // Save gltf up axis\n tile.gltfUpAxis =\n options['3d-tiles'] && options['3d-tiles'].assetGltfUpAxis\n ? options['3d-tiles'].assetGltfUpAxis\n : 'Y';\n\n const {parse} = context;\n tile.gltf = await parse(arrayBuffer, GLTFLoader, options, context);\n}\n"],"file":"parse-3d-tile-gltf.js"}
@@ -1,233 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.normalizeTileData = normalizeTileData;
9
- exports.normalizeTileHeaders = normalizeTileHeaders;
10
- exports.normalizeImplicitTileHeaders = normalizeImplicitTileHeaders;
11
- exports.normalizeImplicitTileData = normalizeImplicitTileData;
12
-
13
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
14
-
15
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
-
17
- var _tile3dSubtreeLoader = require("../../tile-3d-subtree-loader");
18
-
19
- var _core = require("@loaders.gl/core");
20
-
21
- var _tiles = require("@loaders.gl/tiles");
22
-
23
- var _parse3dImplicitTiles = require("./helpers/parse-3d-implicit-tiles");
24
-
25
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
26
-
27
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
28
-
29
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
30
-
31
- function getTileType(tile) {
32
- if (!tile.contentUrl) {
33
- return _tiles.TILE_TYPE.EMPTY;
34
- }
35
-
36
- var contentUrl = tile.contentUrl;
37
- var fileExtension = contentUrl.split('.').pop();
38
-
39
- switch (fileExtension) {
40
- case 'pnts':
41
- return _tiles.TILE_TYPE.POINTCLOUD;
42
-
43
- case 'i3dm':
44
- case 'b3dm':
45
- case 'glb':
46
- case 'gltf':
47
- return _tiles.TILE_TYPE.SCENEGRAPH;
48
-
49
- default:
50
- return fileExtension;
51
- }
52
- }
53
-
54
- function getRefine(refine) {
55
- switch (refine) {
56
- case 'REPLACE':
57
- case 'replace':
58
- return _tiles.TILE_REFINEMENT.REPLACE;
59
-
60
- case 'ADD':
61
- case 'add':
62
- return _tiles.TILE_REFINEMENT.ADD;
63
-
64
- default:
65
- return refine;
66
- }
67
- }
68
-
69
- function normalizeTileData(tile, options) {
70
- if (!tile) {
71
- return null;
72
- }
73
-
74
- if (tile.content) {
75
- var contentUri = tile.content.uri || tile.content.url;
76
- tile.contentUrl = "".concat(options.basePath, "/").concat(contentUri);
77
- }
78
-
79
- tile.id = tile.contentUrl;
80
- tile.lodMetricType = _tiles.LOD_METRIC_TYPE.GEOMETRIC_ERROR;
81
- tile.lodMetricValue = tile.geometricError;
82
- tile.transformMatrix = tile.transform;
83
- tile.type = getTileType(tile);
84
- tile.refine = getRefine(tile.refine);
85
- return tile;
86
- }
87
-
88
- function normalizeTileHeaders(tileset) {
89
- var basePath = tileset.basePath;
90
- var root = normalizeTileData(tileset.root, tileset);
91
- var stack = [];
92
- stack.push(root);
93
-
94
- while (stack.length > 0) {
95
- var tile = stack.pop() || {};
96
- var children = tile.children || [];
97
-
98
- var _iterator = _createForOfIteratorHelper(children),
99
- _step;
100
-
101
- try {
102
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
103
- var childHeader = _step.value;
104
- normalizeTileData(childHeader, {
105
- basePath: basePath
106
- });
107
- stack.push(childHeader);
108
- }
109
- } catch (err) {
110
- _iterator.e(err);
111
- } finally {
112
- _iterator.f();
113
- }
114
- }
115
-
116
- return root;
117
- }
118
-
119
- function normalizeImplicitTileHeaders(_x) {
120
- return _normalizeImplicitTileHeaders.apply(this, arguments);
121
- }
122
-
123
- function _normalizeImplicitTileHeaders() {
124
- _normalizeImplicitTileHeaders = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tileset) {
125
- var basePath, implicitTilingExtension, subdivisionScheme, maximumLevel, subtreeLevels, subtreesUriTemplate, subtreeUrl, rootSubtreeUrl, rootSubtree, contentUrlTemplate, refine, rootLodMetricValue, options;
126
- return _regenerator.default.wrap(function _callee$(_context) {
127
- while (1) {
128
- switch (_context.prev = _context.next) {
129
- case 0:
130
- if (tileset.root) {
131
- _context.next = 2;
132
- break;
133
- }
134
-
135
- return _context.abrupt("return", null);
136
-
137
- case 2:
138
- basePath = tileset.basePath;
139
- implicitTilingExtension = tileset.root.extensions['3DTILES_implicit_tiling'];
140
- subdivisionScheme = implicitTilingExtension.subdivisionScheme, maximumLevel = implicitTilingExtension.maximumLevel, subtreeLevels = implicitTilingExtension.subtreeLevels, subtreesUriTemplate = implicitTilingExtension.subtrees.uri;
141
- subtreeUrl = (0, _parse3dImplicitTiles.replaceContentUrlTemplate)(subtreesUriTemplate, 0, 0, 0, 0);
142
- rootSubtreeUrl = "".concat(basePath, "/").concat(subtreeUrl);
143
- _context.next = 9;
144
- return (0, _core.load)(rootSubtreeUrl, _tile3dSubtreeLoader.Tile3DSubtreeLoader);
145
-
146
- case 9:
147
- rootSubtree = _context.sent;
148
- contentUrlTemplate = "".concat(basePath, "/").concat(tileset.root.content.uri);
149
- refine = tileset.root.refine;
150
- rootLodMetricValue = tileset.root.geometricError;
151
- options = {
152
- contentUrlTemplate: contentUrlTemplate,
153
- subtreesUriTemplate: subtreesUriTemplate,
154
- subdivisionScheme: subdivisionScheme,
155
- subtreeLevels: subtreeLevels,
156
- maximumLevel: maximumLevel,
157
- refine: refine,
158
- basePath: basePath,
159
- lodMetricType: _tiles.LOD_METRIC_TYPE.GEOMETRIC_ERROR,
160
- rootLodMetricValue: rootLodMetricValue,
161
- getTileType: getTileType,
162
- getRefine: getRefine
163
- };
164
- _context.next = 16;
165
- return normalizeImplicitTileData(tileset.root, rootSubtree, options);
166
-
167
- case 16:
168
- return _context.abrupt("return", _context.sent);
169
-
170
- case 17:
171
- case "end":
172
- return _context.stop();
173
- }
174
- }
175
- }, _callee);
176
- }));
177
- return _normalizeImplicitTileHeaders.apply(this, arguments);
178
- }
179
-
180
- function normalizeImplicitTileData(_x2, _x3, _x4) {
181
- return _normalizeImplicitTileData.apply(this, arguments);
182
- }
183
-
184
- function _normalizeImplicitTileData() {
185
- _normalizeImplicitTileData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(tile, rootSubtree, options) {
186
- var _yield$parseImplicitT, children, contentUrl;
187
-
188
- return _regenerator.default.wrap(function _callee2$(_context2) {
189
- while (1) {
190
- switch (_context2.prev = _context2.next) {
191
- case 0:
192
- if (tile) {
193
- _context2.next = 2;
194
- break;
195
- }
196
-
197
- return _context2.abrupt("return", null);
198
-
199
- case 2:
200
- tile.lodMetricType = _tiles.LOD_METRIC_TYPE.GEOMETRIC_ERROR;
201
- tile.lodMetricValue = tile.geometricError;
202
- tile.transformMatrix = tile.transform;
203
- _context2.next = 7;
204
- return (0, _parse3dImplicitTiles.parseImplicitTiles)(rootSubtree, options);
205
-
206
- case 7:
207
- _yield$parseImplicitT = _context2.sent;
208
- children = _yield$parseImplicitT.children;
209
- contentUrl = _yield$parseImplicitT.contentUrl;
210
-
211
- if (contentUrl) {
212
- tile.contentUrl = contentUrl;
213
- tile.content = {
214
- uri: contentUrl.replace("".concat(options.basePath, "/"), '')
215
- };
216
- }
217
-
218
- tile.refine = getRefine(tile.refine);
219
- tile.type = getTileType(tile);
220
- tile.children = children;
221
- tile.id = tile.contentUrl;
222
- return _context2.abrupt("return", tile);
223
-
224
- case 16:
225
- case "end":
226
- return _context2.stop();
227
- }
228
- }
229
- }, _callee2);
230
- }));
231
- return _normalizeImplicitTileData.apply(this, arguments);
232
- }
233
- //# sourceMappingURL=parse-3d-tile-header.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/lib/parsers/parse-3d-tile-header.ts"],"names":["getTileType","tile","contentUrl","TILE_TYPE","EMPTY","fileExtension","split","pop","POINTCLOUD","SCENEGRAPH","getRefine","refine","TILE_REFINEMENT","REPLACE","ADD","normalizeTileData","options","content","contentUri","uri","url","basePath","id","lodMetricType","LOD_METRIC_TYPE","GEOMETRIC_ERROR","lodMetricValue","geometricError","transformMatrix","transform","type","normalizeTileHeaders","tileset","root","stack","push","length","children","childHeader","normalizeImplicitTileHeaders","implicitTilingExtension","extensions","subdivisionScheme","maximumLevel","subtreeLevels","subtreesUriTemplate","subtrees","subtreeUrl","rootSubtreeUrl","Tile3DSubtreeLoader","rootSubtree","contentUrlTemplate","rootLodMetricValue","normalizeImplicitTileData","replace"],"mappings":"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","sourcesContent":["import {Tile3DSubtreeLoader} from '../../tile-3d-subtree-loader';\nimport {load} from '@loaders.gl/core';\nimport {Tileset3D, LOD_METRIC_TYPE, TILE_REFINEMENT, TILE_TYPE} from '@loaders.gl/tiles';\nimport {Subtree} from '../../types';\nimport {parseImplicitTiles, replaceContentUrlTemplate} from './helpers/parse-3d-implicit-tiles';\n\nfunction getTileType(tile) {\n if (!tile.contentUrl) {\n return TILE_TYPE.EMPTY;\n }\n\n const contentUrl = tile.contentUrl;\n const fileExtension = contentUrl.split('.').pop();\n switch (fileExtension) {\n case 'pnts':\n return TILE_TYPE.POINTCLOUD;\n case 'i3dm':\n case 'b3dm':\n case 'glb':\n case 'gltf':\n return TILE_TYPE.SCENEGRAPH;\n default:\n return fileExtension;\n }\n}\n\nfunction getRefine(refine) {\n switch (refine) {\n case 'REPLACE':\n case 'replace':\n return TILE_REFINEMENT.REPLACE;\n case 'ADD':\n case 'add':\n return TILE_REFINEMENT.ADD;\n default:\n return refine;\n }\n}\n\nexport function normalizeTileData(tile, options) {\n if (!tile) {\n return null;\n }\n if (tile.content) {\n const contentUri = tile.content.uri || tile.content.url;\n tile.contentUrl = `${options.basePath}/${contentUri}`;\n }\n tile.id = tile.contentUrl;\n tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;\n tile.lodMetricValue = tile.geometricError;\n tile.transformMatrix = tile.transform;\n tile.type = getTileType(tile);\n tile.refine = getRefine(tile.refine);\n\n return tile;\n}\n\n// normalize tile headers\nexport function normalizeTileHeaders(tileset) {\n const basePath = tileset.basePath;\n const root = normalizeTileData(tileset.root, tileset);\n\n const stack: any[] = [];\n stack.push(root);\n\n while (stack.length > 0) {\n const tile = stack.pop() || {};\n const children = tile.children || [];\n for (const childHeader of children) {\n normalizeTileData(childHeader, {basePath});\n stack.push(childHeader);\n }\n }\n\n return root;\n}\n\n/**\n * Do normalisation of implicit tile headers\n * TODO Check if Tile3D class can be a return type here.\n * @param tileset\n */\nexport async function normalizeImplicitTileHeaders(tileset: Tileset3D) {\n if (!tileset.root) {\n return null;\n }\n\n const basePath = tileset.basePath;\n const implicitTilingExtension = tileset.root.extensions['3DTILES_implicit_tiling'];\n const {\n subdivisionScheme,\n maximumLevel,\n subtreeLevels,\n subtrees: {uri: subtreesUriTemplate}\n } = implicitTilingExtension;\n const subtreeUrl = replaceContentUrlTemplate(subtreesUriTemplate, 0, 0, 0, 0);\n const rootSubtreeUrl = `${basePath}/${subtreeUrl}`;\n const rootSubtree = await load(rootSubtreeUrl, Tile3DSubtreeLoader);\n const contentUrlTemplate = `${basePath}/${tileset.root.content.uri}`;\n const refine = tileset.root.refine;\n // @ts-ignore\n const rootLodMetricValue = tileset.root.geometricError;\n\n const options = {\n contentUrlTemplate,\n subtreesUriTemplate,\n subdivisionScheme,\n subtreeLevels,\n maximumLevel,\n refine,\n basePath,\n lodMetricType: LOD_METRIC_TYPE.GEOMETRIC_ERROR,\n rootLodMetricValue,\n getTileType,\n getRefine\n };\n\n return await normalizeImplicitTileData(tileset.root, rootSubtree, options);\n}\n\n/**\n * Do implicit data normalisation to create hierarchical tile structure\n * @param tile\n * @param rootSubtree\n * @param options\n * @returns\n */\nexport async function normalizeImplicitTileData(tile, rootSubtree: Subtree, options: any) {\n if (!tile) {\n return null;\n }\n\n tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;\n tile.lodMetricValue = tile.geometricError;\n tile.transformMatrix = tile.transform;\n\n const {children, contentUrl} = await parseImplicitTiles(rootSubtree, options);\n\n if (contentUrl) {\n tile.contentUrl = contentUrl;\n tile.content = {uri: contentUrl.replace(`${options.basePath}/`, '')};\n }\n\n tile.refine = getRefine(tile.refine);\n tile.type = getTileType(tile);\n tile.children = children;\n tile.id = tile.contentUrl;\n\n return tile;\n}\n"],"file":"parse-3d-tile-header.js"}
@@ -1,220 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.parseInstancedModel3DTile = parseInstancedModel3DTile;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _core = require("@math.gl/core");
15
-
16
- var _geospatial = require("@math.gl/geospatial");
17
-
18
- var _math = require("@loaders.gl/math");
19
-
20
- var _tile3dFeatureTable = _interopRequireDefault(require("../classes/tile-3d-feature-table"));
21
-
22
- var _tile3dBatchTable = _interopRequireDefault(require("../classes/tile-3d-batch-table"));
23
-
24
- var _parse3dTileHeader = require("./helpers/parse-3d-tile-header");
25
-
26
- var _parse3dTileTables = require("./helpers/parse-3d-tile-tables");
27
-
28
- var _parse3dTileGltfView = require("./helpers/parse-3d-tile-gltf-view");
29
-
30
- function parseInstancedModel3DTile(_x, _x2, _x3, _x4, _x5) {
31
- return _parseInstancedModel3DTile.apply(this, arguments);
32
- }
33
-
34
- function _parseInstancedModel3DTile() {
35
- _parseInstancedModel3DTile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tile, arrayBuffer, byteOffset, options, context) {
36
- return _regenerator.default.wrap(function _callee$(_context) {
37
- while (1) {
38
- switch (_context.prev = _context.next) {
39
- case 0:
40
- byteOffset = parseInstancedModel(tile, arrayBuffer, byteOffset, options, context);
41
- _context.next = 3;
42
- return (0, _parse3dTileGltfView.extractGLTF)(tile, tile.gltfFormat, options, context);
43
-
44
- case 3:
45
- return _context.abrupt("return", byteOffset);
46
-
47
- case 4:
48
- case "end":
49
- return _context.stop();
50
- }
51
- }
52
- }, _callee);
53
- }));
54
- return _parseInstancedModel3DTile.apply(this, arguments);
55
- }
56
-
57
- function parseInstancedModel(tile, arrayBuffer, byteOffset, options, context) {
58
- byteOffset = (0, _parse3dTileHeader.parse3DTileHeaderSync)(tile, arrayBuffer, byteOffset);
59
-
60
- if (tile.version !== 1) {
61
- throw new Error("Instanced 3D Model version ".concat(tile.version, " is not supported"));
62
- }
63
-
64
- byteOffset = (0, _parse3dTileTables.parse3DTileTablesHeaderSync)(tile, arrayBuffer, byteOffset);
65
- var view = new DataView(arrayBuffer);
66
- tile.gltfFormat = view.getUint32(byteOffset, true);
67
- byteOffset += 4;
68
- byteOffset = (0, _parse3dTileTables.parse3DTileTablesSync)(tile, arrayBuffer, byteOffset, options);
69
- byteOffset = (0, _parse3dTileGltfView.parse3DTileGLTFViewSync)(tile, arrayBuffer, byteOffset, options);
70
-
71
- if (tile.featureTableJsonByteLength === 0) {
72
- throw new Error('i3dm parser: featureTableJsonByteLength is zero.');
73
- }
74
-
75
- var featureTable = new _tile3dFeatureTable.default(tile.featureTableJson, tile.featureTableBinary);
76
- var instancesLength = featureTable.getGlobalProperty('INSTANCES_LENGTH');
77
- featureTable.featuresLength = instancesLength;
78
-
79
- if (!Number.isFinite(instancesLength)) {
80
- throw new Error('i3dm parser: INSTANCES_LENGTH must be defined');
81
- }
82
-
83
- tile.eastNorthUp = featureTable.getGlobalProperty('EAST_NORTH_UP');
84
- tile.rtcCenter = featureTable.getGlobalProperty('RTC_CENTER', _math.GL.FLOAT, 3);
85
- var batchTable = new _tile3dBatchTable.default(tile.batchTableJson, tile.batchTableBinary, instancesLength);
86
- extractInstancedAttributes(tile, featureTable, batchTable, instancesLength);
87
- return byteOffset;
88
- }
89
-
90
- function extractInstancedAttributes(tile, featureTable, batchTable, instancesLength) {
91
- var collectionOptions = {
92
- instances: new Array(instancesLength),
93
- batchTable: tile._batchTable,
94
- cull: false,
95
- url: undefined,
96
- gltf: undefined,
97
- basePath: undefined,
98
- incrementallyLoadTextures: false,
99
- forwardAxis: [1, 0, 0]
100
- };
101
- var instances = collectionOptions.instances;
102
- var instancePosition = new _core.Vector3();
103
- var instanceNormalRight = new _core.Vector3();
104
- var instanceNormalUp = new _core.Vector3();
105
- var instanceNormalForward = new _core.Vector3();
106
- var instanceRotation = new _core.Matrix3();
107
- var instanceQuaternion = new _core.Quaternion();
108
- var instanceScale = new _core.Vector3();
109
- var instanceTranslationRotationScale = {};
110
- var instanceTransform = new _core.Matrix4();
111
- var scratch1 = [];
112
- var scratch2 = [];
113
- var scratchVector1 = new _core.Vector3();
114
- var scratchVector2 = new _core.Vector3();
115
-
116
- for (var i = 0; i < instancesLength; i++) {
117
- var position = void 0;
118
-
119
- if (featureTable.hasProperty('POSITION')) {
120
- position = featureTable.getProperty('POSITION', _math.GL.FLOAT, 3, i, instancePosition);
121
- } else if (featureTable.hasProperty('POSITION_QUANTIZED')) {
122
- position = featureTable.getProperty('POSITION_QUANTIZED', _math.GL.UNSIGNED_SHORT, 3, i, instancePosition);
123
- var quantizedVolumeOffset = featureTable.getGlobalProperty('QUANTIZED_VOLUME_OFFSET', _math.GL.FLOAT, 3, scratchVector1);
124
-
125
- if (!quantizedVolumeOffset) {
126
- throw new Error('i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.');
127
- }
128
-
129
- var quantizedVolumeScale = featureTable.getGlobalProperty('QUANTIZED_VOLUME_SCALE', _math.GL.FLOAT, 3, scratchVector2);
130
-
131
- if (!quantizedVolumeScale) {
132
- throw new Error('i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.');
133
- }
134
-
135
- var MAX_UNSIGNED_SHORT = 65535.0;
136
-
137
- for (var j = 0; j < 3; j++) {
138
- position[j] = position[j] / MAX_UNSIGNED_SHORT * quantizedVolumeScale[j] + quantizedVolumeOffset[j];
139
- }
140
- }
141
-
142
- if (!position) {
143
- throw new Error('i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.');
144
- }
145
-
146
- instancePosition.copy(position);
147
- instanceTranslationRotationScale.translation = instancePosition;
148
- tile.normalUp = featureTable.getProperty('NORMAL_UP', _math.GL.FLOAT, 3, i, scratch1);
149
- tile.normalRight = featureTable.getProperty('NORMAL_RIGHT', _math.GL.FLOAT, 3, i, scratch2);
150
- var hasCustomOrientation = false;
151
-
152
- if (tile.normalUp) {
153
- if (!tile.normalRight) {
154
- throw new Error('i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.');
155
- }
156
-
157
- tile.hasCustomOrientation = true;
158
- } else {
159
- tile.octNormalUp = featureTable.getProperty('NORMAL_UP_OCT32P', _math.GL.UNSIGNED_SHORT, 2, scratch1);
160
- tile.octNormalRight = featureTable.getProperty('NORMAL_RIGHT_OCT32P', _math.GL.UNSIGNED_SHORT, 2, scratch2);
161
-
162
- if (tile.octNormalUp) {
163
- if (!tile.octNormalRight) {
164
- throw new Error('i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P');
165
- }
166
-
167
- throw new Error('i3dm: oct-encoded orientation not implemented');
168
- } else if (tile.eastNorthUp) {
169
- _geospatial.Ellipsoid.WGS84.eastNorthUpToFixedFrame(instancePosition, instanceTransform);
170
-
171
- instanceTransform.getRotationMatrix3(instanceRotation);
172
- } else {
173
- instanceRotation.identity();
174
- }
175
- }
176
-
177
- if (hasCustomOrientation) {
178
- instanceNormalForward.copy(instanceNormalRight).cross(instanceNormalUp).normalize();
179
- instanceRotation.setColumn(0, instanceNormalRight);
180
- instanceRotation.setColumn(1, instanceNormalUp);
181
- instanceRotation.setColumn(2, instanceNormalForward);
182
- }
183
-
184
- instanceQuaternion.fromMatrix3(instanceRotation);
185
- instanceTranslationRotationScale.rotation = instanceQuaternion;
186
- instanceScale.set(1.0, 1.0, 1.0);
187
- var scale = featureTable.getProperty('SCALE', _math.GL.FLOAT, 1, i);
188
-
189
- if (Number.isFinite(scale)) {
190
- instanceScale.multiplyByScalar(scale);
191
- }
192
-
193
- var nonUniformScale = featureTable.getProperty('SCALE_NON_UNIFORM', _math.GL.FLOAT, 3, i, scratch1);
194
-
195
- if (nonUniformScale) {
196
- instanceScale.scale(nonUniformScale);
197
- }
198
-
199
- instanceTranslationRotationScale.scale = instanceScale;
200
- var batchId = featureTable.getProperty('BATCH_ID', _math.GL.UNSIGNED_SHORT, 1, i);
201
-
202
- if (batchId === undefined) {
203
- batchId = i;
204
- }
205
-
206
- var rotationMatrix = new _core.Matrix4().fromQuaternion(instanceTranslationRotationScale.rotation);
207
- instanceTransform.identity();
208
- instanceTransform.translate(instanceTranslationRotationScale.translation);
209
- instanceTransform.multiplyRight(rotationMatrix);
210
- instanceTransform.scale(instanceTranslationRotationScale.scale);
211
- var modelMatrix = instanceTransform.clone();
212
- instances[i] = {
213
- modelMatrix: modelMatrix,
214
- batchId: batchId
215
- };
216
- }
217
-
218
- tile.instances = instances;
219
- }
220
- //# sourceMappingURL=parse-3d-tile-instanced-model.js.map