@loaders.gl/tile-converter 3.3.0-alpha.1 → 3.3.0-alpha.11

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 (252) hide show
  1. package/dist/3d-tiles-attributes-worker.d.ts +3 -3
  2. package/dist/3d-tiles-attributes-worker.d.ts.map +1 -1
  3. package/dist/3d-tiles-attributes-worker.js +2 -3
  4. package/dist/3d-tiles-attributes-worker.js.map +3 -3
  5. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +8 -0
  6. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
  7. package/dist/3d-tiles-converter/3d-tiles-converter.js +57 -43
  8. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +5 -5
  9. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -1
  10. package/dist/3d-tiles-converter/helpers/b3dm-converter.js +21 -17
  11. package/dist/converter-cli.js +29 -4
  12. package/dist/converter.min.js +24 -21
  13. package/dist/deps-installer/deps-installer.d.ts +5 -1
  14. package/dist/deps-installer/deps-installer.d.ts.map +1 -1
  15. package/dist/deps-installer/deps-installer.js +29 -1
  16. package/dist/dist.min.js +42714 -45782
  17. package/dist/es5/3d-tiles-attributes-worker.js +4 -7
  18. package/dist/es5/3d-tiles-attributes-worker.js.map +1 -1
  19. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +125 -210
  20. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  21. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +53 -85
  22. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  23. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +0 -8
  24. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
  25. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +0 -5
  26. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
  27. package/dist/es5/3d-tiles-converter/json-templates/tileset.js +0 -6
  28. package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +1 -1
  29. package/dist/es5/bundle.js +0 -1
  30. package/dist/es5/bundle.js.map +1 -1
  31. package/dist/es5/constants.js.map +1 -1
  32. package/dist/es5/converter-cli.js +25 -58
  33. package/dist/es5/converter-cli.js.map +1 -1
  34. package/dist/es5/deps-installer/deps-installer.js +73 -28
  35. package/dist/es5/deps-installer/deps-installer.js.map +1 -1
  36. package/dist/es5/i3s-attributes-worker.js +3 -6
  37. package/dist/es5/i3s-attributes-worker.js.map +1 -1
  38. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +18 -29
  39. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  40. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +8 -25
  41. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  42. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +0 -11
  43. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
  44. package/dist/es5/i3s-converter/helpers/feature-attributes.js +184 -0
  45. package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -0
  46. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +60 -51
  47. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  48. package/dist/es5/i3s-converter/helpers/geometry-converter.js +504 -350
  49. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  50. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +57 -57
  51. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -1
  52. package/dist/es5/i3s-converter/helpers/node-debug.js +4 -23
  53. package/dist/es5/i3s-converter/helpers/node-debug.js.map +1 -1
  54. package/dist/es5/i3s-converter/helpers/node-index-document.js +517 -0
  55. package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -0
  56. package/dist/es5/i3s-converter/helpers/node-pages.js +478 -168
  57. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
  58. package/dist/es5/i3s-converter/i3s-converter.js +770 -1131
  59. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  60. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js +107 -0
  61. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  62. package/dist/es5/i3s-converter/json-templates/layers.js +2 -107
  63. package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -1
  64. package/dist/es5/i3s-converter/json-templates/metadata.js +0 -2
  65. package/dist/es5/i3s-converter/json-templates/metadata.js.map +1 -1
  66. package/dist/es5/i3s-converter/json-templates/node.js +2 -12
  67. package/dist/es5/i3s-converter/json-templates/node.js.map +1 -1
  68. package/dist/es5/i3s-converter/json-templates/scene-server.js +0 -2
  69. package/dist/es5/i3s-converter/json-templates/scene-server.js.map +1 -1
  70. package/dist/es5/i3s-converter/json-templates/shared-resources.js +9 -32
  71. package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -1
  72. package/dist/es5/i3s-converter/json-templates/store.js.map +1 -1
  73. package/dist/es5/i3s-converter/types.js.map +1 -1
  74. package/dist/es5/i3s-server/app.js +0 -5
  75. package/dist/es5/i3s-server/app.js.map +1 -1
  76. package/dist/es5/i3s-server/controllers/index-controller.js +0 -16
  77. package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -1
  78. package/dist/es5/i3s-server/routes/index.js +1 -10
  79. package/dist/es5/i3s-server/routes/index.js.map +1 -1
  80. package/dist/es5/index.js +0 -3
  81. package/dist/es5/index.js.map +1 -1
  82. package/dist/es5/lib/utils/compress-util.js +19 -74
  83. package/dist/es5/lib/utils/compress-util.js.map +1 -1
  84. package/dist/es5/lib/utils/file-utils.js +103 -47
  85. package/dist/es5/lib/utils/file-utils.js.map +1 -1
  86. package/dist/es5/lib/utils/lod-conversion-utils.js +0 -7
  87. package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
  88. package/dist/es5/lib/utils/queue.js +0 -14
  89. package/dist/es5/lib/utils/queue.js.map +1 -1
  90. package/dist/es5/lib/utils/statistic-utills.js +1 -46
  91. package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
  92. package/dist/es5/lib/utils/write-queue.js +86 -87
  93. package/dist/es5/lib/utils/write-queue.js.map +1 -1
  94. package/dist/es5/pgm-loader.js +1 -8
  95. package/dist/es5/pgm-loader.js.map +1 -1
  96. package/dist/es5/workers/3d-tiles-attributes-worker.js +2 -9
  97. package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -1
  98. package/dist/es5/workers/i3s-attributes-worker.js +2 -10
  99. package/dist/es5/workers/i3s-attributes-worker.js.map +1 -1
  100. package/dist/esm/3d-tiles-attributes-worker.js +4 -2
  101. package/dist/esm/3d-tiles-attributes-worker.js.map +1 -1
  102. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +60 -77
  103. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  104. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +29 -50
  105. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  106. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +1 -0
  107. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
  108. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js +1 -4
  109. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
  110. package/dist/esm/3d-tiles-converter/json-templates/tileset.js +0 -3
  111. package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +1 -1
  112. package/dist/esm/bundle.js +1 -1
  113. package/dist/esm/bundle.js.map +1 -1
  114. package/dist/esm/constants.js.map +1 -1
  115. package/dist/esm/converter-cli.js +26 -43
  116. package/dist/esm/converter-cli.js.map +1 -1
  117. package/dist/esm/deps-installer/deps-installer.js +30 -4
  118. package/dist/esm/deps-installer/deps-installer.js.map +1 -1
  119. package/dist/esm/i3s-attributes-worker.js +3 -1
  120. package/dist/esm/i3s-attributes-worker.js.map +1 -1
  121. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +20 -24
  122. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  123. package/dist/esm/i3s-converter/helpers/coordinate-converter.js +11 -12
  124. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  125. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js +1 -0
  126. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
  127. package/dist/esm/i3s-converter/helpers/feature-attributes.js +158 -0
  128. package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -0
  129. package/dist/esm/i3s-converter/helpers/geometry-attributes.js +39 -33
  130. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  131. package/dist/esm/i3s-converter/helpers/geometry-converter.js +286 -192
  132. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  133. package/dist/esm/i3s-converter/helpers/gltf-attributes.js +59 -48
  134. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -1
  135. package/dist/esm/i3s-converter/helpers/node-debug.js +3 -13
  136. package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -1
  137. package/dist/esm/i3s-converter/helpers/node-index-document.js +202 -0
  138. package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -0
  139. package/dist/esm/i3s-converter/helpers/node-pages.js +161 -87
  140. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
  141. package/dist/esm/i3s-converter/i3s-converter.js +217 -509
  142. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  143. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js +89 -0
  144. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  145. package/dist/esm/i3s-converter/json-templates/layers.js +2 -95
  146. package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -1
  147. package/dist/esm/i3s-converter/json-templates/metadata.js.map +1 -1
  148. package/dist/esm/i3s-converter/json-templates/node.js +0 -4
  149. package/dist/esm/i3s-converter/json-templates/node.js.map +1 -1
  150. package/dist/esm/i3s-converter/json-templates/scene-server.js.map +1 -1
  151. package/dist/esm/i3s-converter/json-templates/shared-resources.js +3 -15
  152. package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -1
  153. package/dist/esm/i3s-converter/json-templates/store.js.map +1 -1
  154. package/dist/esm/i3s-converter/types.js.map +1 -1
  155. package/dist/esm/i3s-server/app.js +0 -5
  156. package/dist/esm/i3s-server/app.js.map +1 -1
  157. package/dist/esm/i3s-server/controllers/index-controller.js +0 -5
  158. package/dist/esm/i3s-server/controllers/index-controller.js.map +1 -1
  159. package/dist/esm/i3s-server/routes/index.js +0 -3
  160. package/dist/esm/i3s-server/routes/index.js.map +1 -1
  161. package/dist/esm/index.js.map +1 -1
  162. package/dist/esm/lib/utils/compress-util.js +19 -12
  163. package/dist/esm/lib/utils/compress-util.js.map +1 -1
  164. package/dist/esm/lib/utils/file-utils.js +54 -11
  165. package/dist/esm/lib/utils/file-utils.js.map +1 -1
  166. package/dist/esm/lib/utils/lod-conversion-utils.js +2 -6
  167. package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
  168. package/dist/esm/lib/utils/queue.js +0 -4
  169. package/dist/esm/lib/utils/queue.js.map +1 -1
  170. package/dist/esm/lib/utils/statistic-utills.js +0 -11
  171. package/dist/esm/lib/utils/statistic-utills.js.map +1 -1
  172. package/dist/esm/lib/utils/write-queue.js +29 -28
  173. package/dist/esm/lib/utils/write-queue.js.map +1 -1
  174. package/dist/esm/pgm-loader.js +3 -1
  175. package/dist/esm/pgm-loader.js.map +1 -1
  176. package/dist/esm/workers/3d-tiles-attributes-worker.js +4 -1
  177. package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -1
  178. package/dist/esm/workers/i3s-attributes-worker.js +4 -1
  179. package/dist/esm/workers/i3s-attributes-worker.js.map +1 -1
  180. package/dist/i3s-attributes-worker.d.ts +7 -3
  181. package/dist/i3s-attributes-worker.d.ts.map +1 -1
  182. package/dist/i3s-attributes-worker.js +2 -3
  183. package/dist/i3s-attributes-worker.js.map +3 -3
  184. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +5 -6
  185. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -1
  186. package/dist/i3s-converter/helpers/batch-ids-extensions.js +18 -4
  187. package/dist/i3s-converter/helpers/coordinate-converter.d.ts +2 -2
  188. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -1
  189. package/dist/i3s-converter/helpers/coordinate-converter.js +8 -6
  190. package/dist/i3s-converter/helpers/feature-attributes.d.ts +56 -0
  191. package/dist/i3s-converter/helpers/feature-attributes.d.ts.map +1 -0
  192. package/dist/i3s-converter/helpers/feature-attributes.js +216 -0
  193. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -1
  194. package/dist/i3s-converter/helpers/geometry-attributes.js +42 -17
  195. package/dist/i3s-converter/helpers/geometry-converter.d.ts +18 -6
  196. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
  197. package/dist/i3s-converter/helpers/geometry-converter.js +337 -92
  198. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -1
  199. package/dist/i3s-converter/helpers/gltf-attributes.js +51 -32
  200. package/dist/i3s-converter/helpers/node-index-document.d.ts +95 -0
  201. package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -0
  202. package/dist/i3s-converter/helpers/node-index-document.js +250 -0
  203. package/dist/i3s-converter/helpers/node-pages.d.ts +81 -42
  204. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -1
  205. package/dist/i3s-converter/helpers/node-pages.js +201 -93
  206. package/dist/i3s-converter/i3s-converter.d.ts +52 -108
  207. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  208. package/dist/i3s-converter/i3s-converter.js +223 -421
  209. package/dist/i3s-converter/json-templates/geometry-definitions.d.ts +7 -0
  210. package/dist/i3s-converter/json-templates/geometry-definitions.d.ts.map +1 -0
  211. package/dist/i3s-converter/json-templates/geometry-definitions.js +87 -0
  212. package/dist/i3s-converter/json-templates/layers.d.ts +1 -30
  213. package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -1
  214. package/dist/i3s-converter/json-templates/layers.js +2 -86
  215. package/dist/i3s-converter/json-templates/shared-resources.js +3 -3
  216. package/dist/i3s-converter/types.d.ts +37 -55
  217. package/dist/i3s-converter/types.d.ts.map +1 -1
  218. package/dist/lib/utils/file-utils.d.ts +17 -1
  219. package/dist/lib/utils/file-utils.d.ts.map +1 -1
  220. package/dist/lib/utils/file-utils.js +64 -7
  221. package/dist/lib/utils/write-queue.d.ts +19 -2
  222. package/dist/lib/utils/write-queue.d.ts.map +1 -1
  223. package/dist/lib/utils/write-queue.js +26 -7
  224. package/dist/pgm-loader.d.ts.map +1 -1
  225. package/dist/pgm-loader.js +2 -1
  226. package/dist/workers/3d-tiles-attributes-worker.js +1 -1
  227. package/dist/workers/i3s-attributes-worker.js +1 -1
  228. package/package.json +18 -16
  229. package/src/3d-tiles-attributes-worker.ts +1 -1
  230. package/src/3d-tiles-converter/3d-tiles-converter.ts +71 -55
  231. package/src/3d-tiles-converter/helpers/b3dm-converter.ts +25 -18
  232. package/src/converter-cli.ts +38 -4
  233. package/src/deps-installer/deps-installer.ts +38 -2
  234. package/src/i3s-attributes-worker.ts +5 -1
  235. package/src/i3s-converter/helpers/batch-ids-extensions.ts +38 -14
  236. package/src/i3s-converter/helpers/coordinate-converter.ts +10 -8
  237. package/src/i3s-converter/helpers/feature-attributes.ts +247 -0
  238. package/src/i3s-converter/helpers/geometry-attributes.ts +46 -18
  239. package/src/i3s-converter/helpers/geometry-converter.ts +405 -108
  240. package/src/i3s-converter/helpers/gltf-attributes.ts +55 -35
  241. package/src/i3s-converter/helpers/node-index-document.ts +315 -0
  242. package/src/i3s-converter/helpers/node-pages.ts +222 -109
  243. package/src/i3s-converter/i3s-converter.ts +269 -500
  244. package/src/i3s-converter/json-templates/geometry-definitions.ts +83 -0
  245. package/src/i3s-converter/json-templates/layers.ts +2 -91
  246. package/src/i3s-converter/json-templates/shared-resources.ts +3 -3
  247. package/src/i3s-converter/types.ts +31 -51
  248. package/src/lib/utils/file-utils.ts +62 -7
  249. package/src/lib/utils/write-queue.ts +43 -10
  250. package/src/pgm-loader.ts +2 -2
  251. package/src/workers/3d-tiles-attributes-worker.ts +1 -1
  252. package/src/workers/i3s-attributes-worker.ts +2 -1
@@ -1,104 +1,60 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
-
10
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
-
14
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
-
16
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
19
-
20
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
21
-
22
13
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
23
-
24
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
15
  var _core = require("@loaders.gl/core");
27
-
28
16
  var _tiles = require("@loaders.gl/tiles");
29
-
30
17
  var _dTiles = require("@loaders.gl/3d-tiles");
31
-
32
18
  var _path = require("path");
33
-
34
19
  var _uuid = require("uuid");
35
-
36
20
  var _process = _interopRequireDefault(require("process"));
37
-
38
21
  var _jsonMapTransform = _interopRequireDefault(require("json-map-transform"));
39
-
40
22
  var _md = _interopRequireDefault(require("md5"));
41
-
42
23
  var _nodePages = _interopRequireDefault(require("./helpers/node-pages"));
43
-
44
24
  var _fileUtils = require("../lib/utils/file-utils");
45
-
46
25
  var _compressUtil = require("../lib/utils/compress-util");
47
-
48
26
  var _statisticUtills = require("../lib/utils/statistic-utills");
49
-
50
- var _geometryConverter = _interopRequireDefault(require("./helpers/geometry-converter"));
51
-
27
+ var _geometryConverter = _interopRequireWildcard(require("./helpers/geometry-converter"));
52
28
  var _coordinateConverter = require("./helpers/coordinate-converter");
53
-
54
29
  var _createSceneServerPath = require("./helpers/create-scene-server-path");
55
-
56
30
  var _lodConversionUtils = require("../lib/utils/lod-conversion-utils");
57
-
58
31
  var _pgmLoader = require("../pgm-loader");
59
-
60
32
  var _layers = require("./json-templates/layers");
61
-
62
- var _node = require("./json-templates/node");
63
-
33
+ var _geometryDefinitions = require("./json-templates/geometry-definitions");
64
34
  var _sharedResources = require("./json-templates/shared-resources");
65
-
66
35
  var _nodeDebug = require("./helpers/node-debug");
67
-
68
36
  var _textures = require("@loaders.gl/textures");
69
-
70
37
  var _images = require("@loaders.gl/images");
71
-
72
38
  var _workerUtils = require("@loaders.gl/worker-utils");
73
-
74
39
  var _draco = require("@loaders.gl/draco");
75
-
76
40
  var _writeQueue = _interopRequireDefault(require("../lib/utils/write-queue"));
77
-
78
41
  var _i3sAttributesWorker = require("../i3s-attributes-worker");
79
-
80
42
  var _constants = require("../constants");
81
-
43
+ var _featureAttributes = require("./helpers/feature-attributes");
44
+ var _nodeIndexDocument = require("./helpers/node-index-document");
82
45
  var _process$env;
83
-
46
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
47
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
84
48
  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; } } }; }
85
-
86
49
  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); }
87
-
88
50
  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; }
89
-
90
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
91
-
92
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
93
-
94
- var ION_DEFAULT_TOKEN = ((_process$env = _process.default.env) === null || _process$env === void 0 ? void 0 : _process$env.IonToken) || 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ';
51
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
52
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
53
+ var ION_DEFAULT_TOKEN = ((_process$env = _process.default.env) === null || _process$env === void 0 ? void 0 : _process$env.IonToken) ||
54
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ';
95
55
  var HARDCODED_NODES_PER_PAGE = 64;
96
56
  var _3D_TILES = '3DTILES';
97
57
  var _3D_OBJECT_LAYER_TYPE = '3DObject';
98
- var STRING_TYPE = 'string';
99
- var SHORT_INT_TYPE = 'Int32';
100
- var DOUBLE_TYPE = 'double';
101
- var OBJECT_ID_TYPE = 'OBJECTID';
102
58
  var REFRESH_TOKEN_TIMEOUT = 1800;
103
59
  var CESIUM_DATASET_PREFIX = 'https://';
104
60
 
@@ -110,6 +66,8 @@ var I3SConverter = function () {
110
66
  (0, _defineProperty2.default)(this, "layers0Path", void 0);
111
67
  (0, _defineProperty2.default)(this, "materialMap", void 0);
112
68
  (0, _defineProperty2.default)(this, "materialDefinitions", void 0);
69
+ (0, _defineProperty2.default)(this, "geometryMap", void 0);
70
+ (0, _defineProperty2.default)(this, "geometryConfigs", void 0);
113
71
  (0, _defineProperty2.default)(this, "vertexCounter", void 0);
114
72
  (0, _defineProperty2.default)(this, "layers0", void 0);
115
73
  (0, _defineProperty2.default)(this, "featuresHashArray", void 0);
@@ -126,11 +84,14 @@ var I3SConverter = function () {
126
84
  (0, _defineProperty2.default)(this, "layersHasTexture", void 0);
127
85
  (0, _defineProperty2.default)(this, "workerSource", {});
128
86
  (0, _defineProperty2.default)(this, "writeQueue", new _writeQueue.default());
129
- this.nodePages = new _nodePages.default(_fileUtils.writeFile, HARDCODED_NODES_PER_PAGE);
87
+ (0, _defineProperty2.default)(this, "compressList", null);
88
+ this.nodePages = new _nodePages.default(_fileUtils.writeFile, HARDCODED_NODES_PER_PAGE, this);
130
89
  this.options = {};
131
90
  this.layers0Path = '';
132
91
  this.materialMap = new Map();
133
92
  this.materialDefinitions = [];
93
+ this.geometryMap = new Map();
94
+ this.geometryConfigs = [];
134
95
  this.vertexCounter = 0;
135
96
  this.layers0 = null;
136
97
  this.featuresHashArray = [];
@@ -142,13 +103,14 @@ var I3SConverter = function () {
142
103
  this.generateTextures = false;
143
104
  this.generateBoundingVolumes = false;
144
105
  this.layersHasTexture = false;
106
+ this.compressList = null;
145
107
  }
146
108
 
147
109
  (0, _createClass2.default)(I3SConverter, [{
148
110
  key: "convert",
149
111
  value: function () {
150
112
  var _convert = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
151
- var tilesetName, slpk, egmFilePath, inputUrl, validate, outputPath, draco, sevenZipExe, maxDepth, token, generateTextures, generateBoundingVolumes, preloadOptions, tilesetOptions, sourceTilesetJson, workerFarm;
113
+ var tilesetName, slpk, egmFilePath, inputUrl, validate, outputPath, _options$draco, draco, sevenZipExe, maxDepth, token, generateTextures, generateBoundingVolumes, _options$instantNodeW, instantNodeWriting, _options$mergeMateria, mergeMaterials, _sourceTilesetJson$ro, _sourceTilesetJson$ro2, preloadOptions, tilesetOptions, sourceTilesetJson, workerFarm;
152
114
  return _regenerator.default.wrap(function _callee$(_context) {
153
115
  while (1) {
154
116
  switch (_context.prev = _context.next) {
@@ -157,13 +119,11 @@ var I3SConverter = function () {
157
119
  _context.next = 3;
158
120
  break;
159
121
  }
160
-
161
122
  console.log(_constants.BROWSER_ERROR_MESSAGE);
162
123
  return _context.abrupt("return", _constants.BROWSER_ERROR_MESSAGE);
163
-
164
124
  case 3:
165
125
  this.conversionStartTime = _process.default.hrtime();
166
- tilesetName = options.tilesetName, slpk = options.slpk, egmFilePath = options.egmFilePath, inputUrl = options.inputUrl, validate = options.validate, outputPath = options.outputPath, draco = options.draco, sevenZipExe = options.sevenZipExe, maxDepth = options.maxDepth, token = options.token, generateTextures = options.generateTextures, generateBoundingVolumes = options.generateBoundingVolumes;
126
+ tilesetName = options.tilesetName, slpk = options.slpk, egmFilePath = options.egmFilePath, inputUrl = options.inputUrl, validate = options.validate, outputPath = options.outputPath, _options$draco = options.draco, draco = _options$draco === void 0 ? true : _options$draco, sevenZipExe = options.sevenZipExe, maxDepth = options.maxDepth, token = options.token, generateTextures = options.generateTextures, generateBoundingVolumes = options.generateBoundingVolumes, _options$instantNodeW = options.instantNodeWriting, instantNodeWriting = _options$instantNodeW === void 0 ? false : _options$instantNodeW, _options$mergeMateria = options.mergeMaterials, mergeMaterials = _options$mergeMateria === void 0 ? true : _options$mergeMateria;
167
127
  this.options = {
168
128
  maxDepth: maxDepth,
169
129
  slpk: slpk,
@@ -171,8 +131,11 @@ var I3SConverter = function () {
171
131
  egmFilePath: egmFilePath,
172
132
  draco: draco,
173
133
  token: token,
174
- inputUrl: inputUrl
134
+ inputUrl: inputUrl,
135
+ instantNodeWriting: instantNodeWriting,
136
+ mergeMaterials: mergeMaterials
175
137
  };
138
+ this.compressList = this.options.instantNodeWriting && [] || null;
176
139
  this.validate = Boolean(validate);
177
140
  this.Loader = inputUrl.indexOf(CESIUM_DATASET_PREFIX) !== -1 ? _dTiles.CesiumIonLoader : _dTiles.Tiles3DLoader;
178
141
  this.generateTextures = Boolean(generateTextures);
@@ -180,92 +143,88 @@ var I3SConverter = function () {
180
143
  this.writeQueue = new _writeQueue.default();
181
144
  this.writeQueue.startListening();
182
145
  console.log('Loading egm file...');
183
- _context.next = 15;
146
+ _context.next = 16;
184
147
  return (0, _core.load)(egmFilePath, _pgmLoader.PGMLoader);
185
-
186
- case 15:
148
+ case 16:
187
149
  this.geoidHeightModel = _context.sent;
188
150
  console.log('Loading egm file completed!');
189
151
 
190
152
  if (slpk) {
191
153
  this.nodePages.useWriteFunction(_fileUtils.writeFileForSlpk);
192
154
  }
193
-
194
- _context.next = 20;
155
+ _context.next = 21;
195
156
  return this.loadWorkers();
196
-
197
- case 20:
198
- _context.prev = 20;
199
- _context.next = 23;
157
+ case 21:
158
+ _context.prev = 21;
159
+ _context.next = 24;
200
160
  return this._fetchPreloadOptions();
201
-
202
- case 23:
161
+ case 24:
203
162
  preloadOptions = _context.sent;
204
163
  tilesetOptions = {
205
164
  loadOptions: {
165
+ _nodeWorkers: true,
166
+ reuseWorkers: true,
206
167
  basis: {
207
168
  format: 'rgba32'
169
+ },
170
+ 'basis-nodejs': {
171
+ format: 'rgba32',
172
+ workerUrl: './modules/textures/dist/basis-nodejs-worker.js'
173
+ },
174
+ 'draco-nodejs': {
175
+ workerUrl: './modules/draco/dist/draco-nodejs-worker.js'
208
176
  }
209
177
  }
210
178
  };
211
-
212
179
  if (preloadOptions.headers) {
213
180
  tilesetOptions.loadOptions.fetch = {
214
181
  headers: preloadOptions.headers
215
182
  };
216
183
  }
217
-
218
184
  Object.assign(tilesetOptions, preloadOptions);
219
- _context.next = 29;
185
+ _context.next = 30;
220
186
  return (0, _core.load)(inputUrl, this.Loader, tilesetOptions.loadOptions);
221
-
222
- case 29:
187
+ case 30:
223
188
  sourceTilesetJson = _context.sent;
224
189
  this.sourceTileset = new _tiles.Tileset3D(sourceTilesetJson, tilesetOptions);
225
- _context.next = 33;
226
- return this._createAndSaveTileset(outputPath, tilesetName);
227
-
228
- case 33:
229
- _context.next = 35;
190
+ _context.next = 34;
191
+ return this._createAndSaveTileset(outputPath, tilesetName, sourceTilesetJson === null || sourceTilesetJson === void 0 ? void 0 : (_sourceTilesetJson$ro = sourceTilesetJson.root) === null || _sourceTilesetJson$ro === void 0 ? void 0 : (_sourceTilesetJson$ro2 = _sourceTilesetJson$ro.boundingVolume) === null || _sourceTilesetJson$ro2 === void 0 ? void 0 : _sourceTilesetJson$ro2.region);
192
+ case 34:
193
+ _context.next = 36;
230
194
  return this._finishConversion({
231
195
  slpk: Boolean(slpk),
232
196
  outputPath: outputPath,
233
197
  tilesetName: tilesetName
234
198
  });
235
-
236
- case 35:
199
+ case 36:
237
200
  return _context.abrupt("return", sourceTilesetJson);
238
-
239
- case 38:
240
- _context.prev = 38;
241
- _context.t0 = _context["catch"](20);
201
+ case 39:
202
+ _context.prev = 39;
203
+ _context.t0 = _context["catch"](21);
242
204
  throw _context.t0;
243
-
244
- case 41:
245
- _context.prev = 41;
205
+ case 42:
206
+ _context.prev = 42;
246
207
  workerFarm = _workerUtils.WorkerFarm.getWorkerFarm({});
247
208
  workerFarm.destroy();
248
- return _context.finish(41);
249
-
250
- case 45:
209
+ return _context.finish(42);
210
+ case 46:
251
211
  case "end":
252
212
  return _context.stop();
253
213
  }
254
214
  }
255
- }, _callee, this, [[20, 38, 41, 45]]);
215
+ }, _callee, this, [[21, 39, 42, 46]]);
256
216
  }));
257
-
258
217
  function convert(_x) {
259
218
  return _convert.apply(this, arguments);
260
219
  }
261
-
262
220
  return convert;
263
221
  }()
264
222
  }, {
265
223
  key: "_createAndSaveTileset",
266
224
  value: function () {
267
- var _createAndSaveTileset2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(outputPath, tilesetName) {
268
- var tilesetPath, sourceRootTile, boundingVolumes, parentId, isCreateSlpk, root0;
225
+ var _createAndSaveTileset2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(outputPath, tilesetName, boundingVolumeRegion) {
226
+ var _this = this;
227
+ var tilesetPath, sourceRootTile, boundingVolumes, rootNode, _iterator, _step, filePath;
269
228
  return _regenerator.default.wrap(function _callee2$(_context2) {
270
229
  while (1) {
271
230
  switch (_context2.prev = _context2.next) {
@@ -274,84 +233,110 @@ var I3SConverter = function () {
274
233
  _context2.prev = 1;
275
234
  _context2.next = 4;
276
235
  return (0, _fileUtils.removeDir)(tilesetPath);
277
-
278
236
  case 4:
279
237
  _context2.next = 8;
280
238
  break;
281
-
282
239
  case 6:
283
240
  _context2.prev = 6;
284
241
  _context2.t0 = _context2["catch"](1);
285
-
286
242
  case 8:
287
243
  this.layers0Path = (0, _path.join)(tilesetPath, 'SceneServer', 'layers', '0');
288
-
289
- this._formLayers0(tilesetName);
290
-
244
+ this._formLayers0(tilesetName, boundingVolumeRegion);
291
245
  this.materialDefinitions = [];
292
246
  this.materialMap = new Map();
293
247
  sourceRootTile = this.sourceTileset.root;
294
248
  boundingVolumes = (0, _coordinateConverter.createBoundingVolumes)(sourceRootTile, this.geoidHeightModel);
295
- parentId = this.nodePages.push({
249
+ _context2.next = 16;
250
+ return this.nodePages.push({
296
251
  index: 0,
297
252
  lodThreshold: 0,
298
253
  obb: boundingVolumes.obb,
299
254
  children: []
300
255
  });
301
- isCreateSlpk = this.options.slpk;
302
- root0 = this._formRootNodeIndexDocument(boundingVolumes);
303
- _context2.next = 19;
304
- return this._convertNodesTree(root0, sourceRootTile, parentId, boundingVolumes);
305
-
306
- case 19:
256
+ case 16:
257
+ _context2.next = 18;
258
+ return _nodeIndexDocument.NodeIndexDocument.createRootNode(boundingVolumes, this);
259
+ case 18:
260
+ rootNode = _context2.sent;
261
+ _context2.next = 21;
262
+ return this._convertNodesTree(rootNode, sourceRootTile);
263
+ case 21:
307
264
  this.layers0.materialDefinitions = this.materialDefinitions;
308
-
265
+ this.layers0.geometryDefinitions = (0, _jsonMapTransform.default)(this.geometryConfigs.map(function (config) {
266
+ return {
267
+ geometryConfig: _objectSpread(_objectSpread({}, config), {}, {
268
+ draco: _this.options.draco
269
+ })
270
+ };
271
+ }), (0, _geometryDefinitions.GEOMETRY_DEFINITION)());
309
272
  if (this.layersHasTexture === false) {
310
273
  this.layers0.store.defaultGeometrySchema.ordering = this.layers0.store.defaultGeometrySchema.ordering.filter(function (attribute) {
311
274
  return attribute !== 'uv0';
312
275
  });
313
276
  }
314
-
315
- _context2.next = 23;
316
- return this._writeLayers0();
317
-
318
- case 23:
319
- (0, _createSceneServerPath.createSceneServerPath)(tilesetName, this.layers0, tilesetPath);
320
277
  _context2.next = 26;
321
- return this._writeNodeIndexDocument(root0, 'root', (0, _path.join)(this.layers0Path, 'nodes', 'root'));
322
-
278
+ return this._writeLayers0();
323
279
  case 26:
324
- _context2.next = 28;
325
- return this.nodePages.save(this.layers0Path, this.writeQueue, isCreateSlpk);
326
-
327
- case 28:
280
+ (0, _createSceneServerPath.createSceneServerPath)(tilesetName, this.layers0, tilesetPath);
281
+ _iterator = _createForOfIteratorHelper(this.compressList || []);
282
+ _context2.prev = 28;
283
+ _iterator.s();
284
+ case 30:
285
+ if ((_step = _iterator.n()).done) {
286
+ _context2.next = 38;
287
+ break;
288
+ }
289
+ filePath = _step.value;
290
+ _context2.next = 34;
291
+ return (0, _compressUtil.compressFileWithGzip)(filePath);
292
+ case 34:
293
+ _context2.next = 36;
294
+ return (0, _fileUtils.removeFile)(filePath);
295
+ case 36:
328
296
  _context2.next = 30;
297
+ break;
298
+ case 38:
299
+ _context2.next = 43;
300
+ break;
301
+ case 40:
302
+ _context2.prev = 40;
303
+ _context2.t1 = _context2["catch"](28);
304
+ _iterator.e(_context2.t1);
305
+ case 43:
306
+ _context2.prev = 43;
307
+ _iterator.f();
308
+ return _context2.finish(43);
309
+ case 46:
310
+ _context2.next = 48;
311
+ return this.nodePages.save();
312
+ case 48:
313
+ _context2.next = 50;
329
314
  return this.writeQueue.finalize();
330
-
331
- case 30:
332
- _context2.next = 32;
315
+ case 50:
316
+ _context2.next = 52;
333
317
  return this._createSlpk(tilesetPath);
334
-
335
- case 32:
318
+ case 52:
336
319
  case "end":
337
320
  return _context2.stop();
338
321
  }
339
322
  }
340
- }, _callee2, this, [[1, 6]]);
323
+ }, _callee2, this, [[1, 6], [28, 40, 43, 46]]);
341
324
  }));
342
-
343
- function _createAndSaveTileset(_x2, _x3) {
325
+ function _createAndSaveTileset(_x2, _x3, _x4) {
344
326
  return _createAndSaveTileset2.apply(this, arguments);
345
327
  }
346
-
347
328
  return _createAndSaveTileset;
348
329
  }()
349
330
  }, {
350
331
  key: "_formLayers0",
351
- value: function _formLayers0(tilesetName) {
332
+ value:
333
+ function _formLayers0(tilesetName, boundingVolumeRegion) {
352
334
  var _this$sourceTileset, _this$sourceTileset2, _this$sourceTileset2$;
353
-
354
335
  var fullExtent = (0, _coordinateConverter.convertBoundingVolumeToI3SFullExtent)(((_this$sourceTileset = this.sourceTileset) === null || _this$sourceTileset === void 0 ? void 0 : _this$sourceTileset.boundingVolume) || ((_this$sourceTileset2 = this.sourceTileset) === null || _this$sourceTileset2 === void 0 ? void 0 : (_this$sourceTileset2$ = _this$sourceTileset2.root) === null || _this$sourceTileset2$ === void 0 ? void 0 : _this$sourceTileset2$.boundingVolume));
336
+ if (boundingVolumeRegion) {
337
+ fullExtent.zmin = boundingVolumeRegion[4];
338
+ fullExtent.zmax = boundingVolumeRegion[5];
339
+ }
355
340
  var extent = [fullExtent.xmin, fullExtent.ymin, fullExtent.xmax, fullExtent.ymax];
356
341
  var layers0data = {
357
342
  version: "{".concat((0, _uuid.v4)().toUpperCase(), "}"),
@@ -370,539 +355,360 @@ var I3SConverter = function () {
370
355
  };
371
356
  this.layers0 = (0, _jsonMapTransform.default)(layers0data, (0, _layers.LAYERS)());
372
357
  }
373
- }, {
374
- key: "_formRootNodeIndexDocument",
375
- value: function _formRootNodeIndexDocument(boundingVolumes) {
376
- var root0data = _objectSpread(_objectSpread({
377
- version: "{".concat((0, _uuid.v4)().toUpperCase(), "}"),
378
- id: 'root',
379
- level: 0,
380
- lodSelection: [{
381
- metricType: 'maxScreenThresholdSQ',
382
- maxError: 0
383
- }, {
384
- metricType: 'maxScreenThreshold',
385
- maxError: 0
386
- }]
387
- }, boundingVolumes), {}, {
388
- children: []
389
- });
390
358
 
391
- return (0, _jsonMapTransform.default)(root0data, (0, _node.NODE)());
392
- }
393
359
  }, {
394
360
  key: "_convertNodesTree",
395
361
  value: function () {
396
- var _convertNodesTree2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(root0, sourceRootTile, parentId, boundingVolumes) {
397
- var _yield$this$_createNo, _yield$this$_createNo2, child, childPath;
398
-
362
+ var _convertNodesTree2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(rootNode, sourceRootTile) {
363
+ var childNodes, _iterator2, _step2, childNode;
399
364
  return _regenerator.default.wrap(function _callee3$(_context3) {
400
365
  while (1) {
401
366
  switch (_context3.prev = _context3.next) {
402
367
  case 0:
403
368
  _context3.next = 2;
404
369
  return this.sourceTileset._loadTile(sourceRootTile);
405
-
406
370
  case 2:
407
371
  if (!this.isContentSupported(sourceRootTile)) {
408
- _context3.next = 14;
372
+ _context3.next = 27;
409
373
  break;
410
374
  }
411
-
412
- root0.children = root0.children || [];
413
- root0.children.push(_objectSpread({
414
- id: '1',
415
- href: './1'
416
- }, boundingVolumes));
417
- _context3.next = 7;
418
- return this._createNode(root0, sourceRootTile, parentId, 0);
419
-
420
- case 7:
421
- _yield$this$_createNo = _context3.sent;
422
- _yield$this$_createNo2 = (0, _slicedToArray2.default)(_yield$this$_createNo, 1);
423
- child = _yield$this$_createNo2[0];
424
- childPath = (0, _path.join)(this.layers0Path, 'nodes', child.path);
425
-
426
- if (this.options.slpk) {
427
- this.writeQueue.enqueue({
428
- archiveKey: 'nodes/1/3dNodeIndexDocument.json.gz',
429
- writePromise: (0, _fileUtils.writeFileForSlpk)(childPath, JSON.stringify(child), '3dNodeIndexDocument.json')
430
- });
431
- } else {
432
- this.writeQueue.enqueue({
433
- writePromise: (0, _fileUtils.writeFile)(childPath, JSON.stringify(child))
434
- });
375
+ _context3.next = 5;
376
+ return this._createNode(rootNode, sourceRootTile, 0);
377
+ case 5:
378
+ childNodes = _context3.sent;
379
+ _iterator2 = _createForOfIteratorHelper(childNodes);
380
+ _context3.prev = 7;
381
+ _iterator2.s();
382
+ case 9:
383
+ if ((_step2 = _iterator2.n()).done) {
384
+ _context3.next = 15;
385
+ break;
435
386
  }
436
-
437
- _context3.next = 16;
387
+ childNode = _step2.value;
388
+ _context3.next = 13;
389
+ return childNode.save();
390
+ case 13:
391
+ _context3.next = 9;
438
392
  break;
439
-
440
- case 14:
441
- _context3.next = 16;
393
+ case 15:
394
+ _context3.next = 20;
395
+ break;
396
+ case 17:
397
+ _context3.prev = 17;
398
+ _context3.t0 = _context3["catch"](7);
399
+ _iterator2.e(_context3.t0);
400
+ case 20:
401
+ _context3.prev = 20;
402
+ _iterator2.f();
403
+ return _context3.finish(20);
404
+ case 23:
405
+ _context3.next = 25;
406
+ return rootNode.addChildren(childNodes);
407
+ case 25:
408
+ _context3.next = 29;
409
+ break;
410
+ case 27:
411
+ _context3.next = 29;
442
412
  return this._addChildrenWithNeighborsAndWriteFile({
443
- parentNode: root0,
413
+ parentNode: rootNode,
444
414
  sourceTiles: sourceRootTile.children,
445
- parentId: parentId,
446
415
  level: 1
447
416
  });
448
-
449
- case 16:
450
- _context3.next = 18;
417
+ case 29:
418
+ _context3.next = 31;
451
419
  return sourceRootTile.unloadContent();
452
-
453
- case 18:
420
+ case 31:
421
+ _context3.next = 33;
422
+ return rootNode.save();
423
+ case 33:
454
424
  case "end":
455
425
  return _context3.stop();
456
426
  }
457
427
  }
458
- }, _callee3, this);
428
+ }, _callee3, this, [[7, 17, 20, 23]]);
459
429
  }));
460
-
461
- function _convertNodesTree(_x4, _x5, _x6, _x7) {
430
+ function _convertNodesTree(_x5, _x6) {
462
431
  return _convertNodesTree2.apply(this, arguments);
463
432
  }
464
-
465
433
  return _convertNodesTree;
466
434
  }()
467
435
  }, {
468
436
  key: "_writeLayers0",
469
437
  value: function () {
470
438
  var _writeLayers = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4() {
439
+ var _this2 = this;
471
440
  return _regenerator.default.wrap(function _callee4$(_context4) {
472
441
  while (1) {
473
442
  switch (_context4.prev = _context4.next) {
474
443
  case 0:
475
- if (this.options.slpk) {
476
- this.writeQueue.enqueue({
477
- archiveKey: '3dSceneLayer.json.gz',
478
- writePromise: (0, _fileUtils.writeFileForSlpk)(this.layers0Path, JSON.stringify(this.layers0), '3dSceneLayer.json')
479
- });
480
- } else {
481
- this.writeQueue.enqueue({
482
- writePromise: (0, _fileUtils.writeFile)(this.layers0Path, JSON.stringify(this.layers0))
483
- });
444
+ if (!this.options.slpk) {
445
+ _context4.next = 5;
446
+ break;
484
447
  }
485
-
486
- case 1:
448
+ _context4.next = 3;
449
+ return this.writeQueue.enqueue({
450
+ archiveKey: '3dSceneLayer.json.gz',
451
+ writePromise: function writePromise() {
452
+ return (0, _fileUtils.writeFileForSlpk)(_this2.layers0Path, JSON.stringify(_this2.layers0), '3dSceneLayer.json');
453
+ }
454
+ });
455
+ case 3:
456
+ _context4.next = 7;
457
+ break;
458
+ case 5:
459
+ _context4.next = 7;
460
+ return this.writeQueue.enqueue({
461
+ writePromise: function writePromise() {
462
+ return (0, _fileUtils.writeFile)(_this2.layers0Path, JSON.stringify(_this2.layers0));
463
+ }
464
+ });
465
+ case 7:
487
466
  case "end":
488
467
  return _context4.stop();
489
468
  }
490
469
  }
491
470
  }, _callee4, this);
492
471
  }));
493
-
494
472
  function _writeLayers0() {
495
473
  return _writeLayers.apply(this, arguments);
496
474
  }
497
-
498
475
  return _writeLayers0;
499
476
  }()
500
- }, {
501
- key: "_writeNodeIndexDocument",
502
- value: function () {
503
- var _writeNodeIndexDocument2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(root0, nodePath, rootPath) {
504
- return _regenerator.default.wrap(function _callee5$(_context5) {
505
- while (1) {
506
- switch (_context5.prev = _context5.next) {
507
- case 0:
508
- if (this.options.slpk) {
509
- this.writeQueue.enqueue({
510
- archiveKey: "nodes/".concat(nodePath, "/3dNodeIndexDocument.json.gz"),
511
- writePromise: (0, _fileUtils.writeFileForSlpk)(rootPath, JSON.stringify(root0), '3dNodeIndexDocument.json')
512
- });
513
- } else {
514
- this.writeQueue.enqueue({
515
- writePromise: (0, _fileUtils.writeFile)(rootPath, JSON.stringify(root0))
516
- });
517
- }
518
-
519
- case 1:
520
- case "end":
521
- return _context5.stop();
522
- }
523
- }
524
- }, _callee5, this);
525
- }));
526
-
527
- function _writeNodeIndexDocument(_x8, _x9, _x10) {
528
- return _writeNodeIndexDocument2.apply(this, arguments);
529
- }
530
-
531
- return _writeNodeIndexDocument;
532
- }()
533
477
  }, {
534
478
  key: "_createSlpk",
535
479
  value: function () {
536
- var _createSlpk2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(tilesetPath) {
480
+ var _createSlpk2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(tilesetPath) {
537
481
  var slpkTilesetPath, slpkFileName;
538
- return _regenerator.default.wrap(function _callee6$(_context6) {
482
+ return _regenerator.default.wrap(function _callee5$(_context5) {
539
483
  while (1) {
540
- switch (_context6.prev = _context6.next) {
484
+ switch (_context5.prev = _context5.next) {
541
485
  case 0:
542
486
  if (!this.options.slpk) {
543
- _context6.next = 12;
487
+ _context5.next = 12;
544
488
  break;
545
489
  }
546
-
547
490
  slpkTilesetPath = (0, _path.join)(tilesetPath, 'SceneServer', 'layers', '0');
548
491
  slpkFileName = "".concat(tilesetPath, ".slpk");
549
- _context6.next = 5;
492
+ _context5.next = 5;
550
493
  return (0, _compressUtil.compressWithChildProcess)(slpkTilesetPath, slpkFileName, 0, '.', this.options.sevenZipExe);
551
-
552
494
  case 5:
553
- _context6.prev = 5;
554
- _context6.next = 8;
495
+ _context5.prev = 5;
496
+ _context5.next = 8;
555
497
  return (0, _fileUtils.removeDir)(tilesetPath);
556
-
557
498
  case 8:
558
- _context6.next = 12;
499
+ _context5.next = 12;
559
500
  break;
560
-
561
501
  case 10:
562
- _context6.prev = 10;
563
- _context6.t0 = _context6["catch"](5);
564
-
502
+ _context5.prev = 10;
503
+ _context5.t0 = _context5["catch"](5);
565
504
  case 12:
566
505
  case "end":
567
- return _context6.stop();
506
+ return _context5.stop();
568
507
  }
569
508
  }
570
- }, _callee6, this, [[5, 10]]);
509
+ }, _callee5, this, [[5, 10]]);
571
510
  }));
572
-
573
- function _createSlpk(_x11) {
511
+ function _createSlpk(_x7) {
574
512
  return _createSlpk2.apply(this, arguments);
575
513
  }
576
-
577
514
  return _createSlpk;
578
515
  }()
579
516
  }, {
580
517
  key: "_addChildrenWithNeighborsAndWriteFile",
581
518
  value: function () {
582
- var _addChildrenWithNeighborsAndWriteFile2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(data) {
583
- var childNodes;
519
+ var _addChildrenWithNeighborsAndWriteFile2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(data) {
520
+ return _regenerator.default.wrap(function _callee6$(_context6) {
521
+ while (1) {
522
+ switch (_context6.prev = _context6.next) {
523
+ case 0:
524
+ _context6.next = 2;
525
+ return this._addChildren(data);
526
+ case 2:
527
+ _context6.next = 4;
528
+ return data.parentNode.addNeighbors();
529
+ case 4:
530
+ case "end":
531
+ return _context6.stop();
532
+ }
533
+ }
534
+ }, _callee6, this);
535
+ }));
536
+ function _addChildrenWithNeighborsAndWriteFile(_x8) {
537
+ return _addChildrenWithNeighborsAndWriteFile2.apply(this, arguments);
538
+ }
539
+ return _addChildrenWithNeighborsAndWriteFile;
540
+ }()
541
+ }, {
542
+ key: "convertNestedTileset",
543
+ value: function () {
544
+ var _convertNestedTileset = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(_ref) {
545
+ var parentNode, sourceTile, level;
584
546
  return _regenerator.default.wrap(function _callee7$(_context7) {
585
547
  while (1) {
586
548
  switch (_context7.prev = _context7.next) {
587
549
  case 0:
588
- childNodes = [];
550
+ parentNode = _ref.parentNode, sourceTile = _ref.sourceTile, level = _ref.level;
589
551
  _context7.next = 3;
590
- return this._addChildren(_objectSpread(_objectSpread({}, data), {}, {
591
- childNodes: childNodes
592
- }));
593
-
552
+ return this.sourceTileset._loadTile(sourceTile);
594
553
  case 3:
595
554
  _context7.next = 5;
596
- return this._addNeighborsAndWriteFile(data.parentNode, childNodes);
597
-
555
+ return this._addChildren({
556
+ parentNode: parentNode,
557
+ sourceTiles: sourceTile.children,
558
+ level: level + 1
559
+ });
598
560
  case 5:
561
+ _context7.next = 7;
562
+ return sourceTile.unloadContent();
563
+ case 7:
599
564
  case "end":
600
565
  return _context7.stop();
601
566
  }
602
567
  }
603
568
  }, _callee7, this);
604
569
  }));
605
-
606
- function _addChildrenWithNeighborsAndWriteFile(_x12) {
607
- return _addChildrenWithNeighborsAndWriteFile2.apply(this, arguments);
570
+ function convertNestedTileset(_x9) {
571
+ return _convertNestedTileset.apply(this, arguments);
608
572
  }
609
-
610
- return _addChildrenWithNeighborsAndWriteFile;
573
+ return convertNestedTileset;
611
574
  }()
612
575
  }, {
613
- key: "_addChildren",
576
+ key: "convertNode",
614
577
  value: function () {
615
- var _addChildren2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee8(data) {
616
- var childNodes, sourceTiles, parentNode, parentId, level, _iterator, _step, sourceTile, children, _iterator2, _step2, child;
617
-
578
+ var _convertNode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee8(_ref2) {
579
+ var parentNode, sourceTile, level, childNodes;
618
580
  return _regenerator.default.wrap(function _callee8$(_context8) {
619
581
  while (1) {
620
582
  switch (_context8.prev = _context8.next) {
621
583
  case 0:
622
- childNodes = data.childNodes, sourceTiles = data.sourceTiles, parentNode = data.parentNode, parentId = data.parentId, level = data.level;
623
-
624
- if (!(this.options.maxDepth && level > this.options.maxDepth)) {
625
- _context8.next = 3;
626
- break;
627
- }
628
-
629
- return _context8.abrupt("return");
630
-
584
+ parentNode = _ref2.parentNode, sourceTile = _ref2.sourceTile, level = _ref2.level;
585
+ _context8.next = 3;
586
+ return this._createNode(parentNode, sourceTile, level);
631
587
  case 3:
632
- _iterator = _createForOfIteratorHelper(sourceTiles);
633
- _context8.prev = 4;
634
-
635
- _iterator.s();
636
-
637
- case 6:
638
- if ((_step = _iterator.n()).done) {
639
- _context8.next = 26;
640
- break;
641
- }
642
-
643
- sourceTile = _step.value;
644
-
645
- if (!(sourceTile.type === 'json')) {
646
- _context8.next = 17;
647
- break;
648
- }
649
-
650
- _context8.next = 11;
651
- return this.sourceTileset._loadTile(sourceTile);
652
-
653
- case 11:
654
- _context8.next = 13;
655
- return this._addChildren({
656
- parentNode: parentNode,
657
- sourceTiles: sourceTile.children,
658
- childNodes: childNodes,
659
- parentId: parentId,
660
- level: level + 1
661
- });
662
-
663
- case 13:
664
- _context8.next = 15;
665
- return sourceTile.unloadContent();
666
-
667
- case 15:
668
- _context8.next = 23;
669
- break;
670
-
671
- case 17:
672
- _context8.next = 19;
673
- return this._createNode(parentNode, sourceTile, parentId, level);
674
-
675
- case 19:
676
- children = _context8.sent;
677
- parentNode.children = parentNode.children || [];
678
- _iterator2 = _createForOfIteratorHelper(children);
679
-
680
- try {
681
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
682
- child = _step2.value;
683
- parentNode.children.push({
684
- id: child.id,
685
- href: "../".concat(child.path),
686
- obb: child.obb,
687
- mbs: child.mbs
688
- });
689
- childNodes.push(child);
690
- }
691
- } catch (err) {
692
- _iterator2.e(err);
693
- } finally {
694
- _iterator2.f();
695
- }
696
-
697
- case 23:
698
- if (sourceTile.id) {
699
- console.log(sourceTile.id);
700
- }
701
-
702
- case 24:
588
+ childNodes = _context8.sent;
703
589
  _context8.next = 6;
704
- break;
705
-
706
- case 26:
707
- _context8.next = 31;
708
- break;
709
-
710
- case 28:
711
- _context8.prev = 28;
712
- _context8.t0 = _context8["catch"](4);
713
-
714
- _iterator.e(_context8.t0);
715
-
716
- case 31:
717
- _context8.prev = 31;
718
-
719
- _iterator.f();
720
-
721
- return _context8.finish(31);
722
-
723
- case 34:
590
+ return parentNode.addChildren(childNodes);
591
+ case 6:
724
592
  case "end":
725
593
  return _context8.stop();
726
594
  }
727
595
  }
728
- }, _callee8, this, [[4, 28, 31, 34]]);
596
+ }, _callee8, this);
729
597
  }));
730
-
731
- function _addChildren(_x13) {
732
- return _addChildren2.apply(this, arguments);
598
+ function convertNode(_x10) {
599
+ return _convertNode.apply(this, arguments);
733
600
  }
734
-
735
- return _addChildren;
601
+ return convertNode;
736
602
  }()
737
603
  }, {
738
- key: "_addNeighborsAndWriteFile",
604
+ key: "_addChildren",
739
605
  value: function () {
740
- var _addNeighborsAndWriteFile2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee9(parentNode, childNodes) {
741
- var _iterator3, _step3, _parentNode$children, node, childPath, nodePath, _iterator4, _step4, neighbor;
742
-
606
+ var _addChildren2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee9(data) {
607
+ var sourceTiles, parentNode, level, _iterator3, _step3, sourceTile;
743
608
  return _regenerator.default.wrap(function _callee9$(_context9) {
744
609
  while (1) {
745
610
  switch (_context9.prev = _context9.next) {
746
611
  case 0:
747
- _iterator3 = _createForOfIteratorHelper(childNodes);
748
- _context9.prev = 1;
749
-
750
- _iterator3.s();
751
-
752
- case 3:
753
- if ((_step3 = _iterator3.n()).done) {
754
- _context9.next = 36;
612
+ sourceTiles = data.sourceTiles, parentNode = data.parentNode, level = data.level;
613
+ if (!(this.options.maxDepth && level > this.options.maxDepth)) {
614
+ _context9.next = 3;
755
615
  break;
756
616
  }
757
-
758
- node = _step3.value;
759
- childPath = (0, _path.join)(this.layers0Path, 'nodes', node.path);
760
- nodePath = node.path;
761
- delete node.path;
762
-
763
- if (!(Number(parentNode === null || parentNode === void 0 ? void 0 : (_parentNode$children = parentNode.children) === null || _parentNode$children === void 0 ? void 0 : _parentNode$children.length) < 1000)) {
764
- _context9.next = 29;
617
+ return _context9.abrupt("return");
618
+ case 3:
619
+ _iterator3 = _createForOfIteratorHelper(sourceTiles);
620
+ _context9.prev = 4;
621
+ _iterator3.s();
622
+ case 6:
623
+ if ((_step3 = _iterator3.n()).done) {
624
+ _context9.next = 18;
765
625
  break;
766
626
  }
767
-
768
- _iterator4 = _createForOfIteratorHelper(parentNode.children || []);
769
- _context9.prev = 10;
770
-
771
- _iterator4.s();
772
-
773
- case 12:
774
- if ((_step4 = _iterator4.n()).done) {
775
- _context9.next = 19;
627
+ sourceTile = _step3.value;
628
+ if (!(sourceTile.type === 'json')) {
629
+ _context9.next = 13;
776
630
  break;
777
631
  }
778
-
779
- neighbor = _step4.value;
780
-
781
- if (!(node.id === neighbor.id)) {
782
- _context9.next = 16;
783
- break;
632
+ _context9.next = 11;
633
+ return this.convertNestedTileset({
634
+ parentNode: parentNode,
635
+ sourceTile: sourceTile,
636
+ level: level
637
+ });
638
+ case 11:
639
+ _context9.next = 15;
640
+ break;
641
+ case 13:
642
+ _context9.next = 15;
643
+ return this.convertNode({
644
+ parentNode: parentNode,
645
+ sourceTile: sourceTile,
646
+ level: level
647
+ });
648
+ case 15:
649
+ if (sourceTile.id) {
650
+ console.log(sourceTile.id);
784
651
  }
785
-
786
- return _context9.abrupt("continue", 17);
787
-
788
652
  case 16:
789
- if (node.neighbors) {
790
- node.neighbors.push(_objectSpread({}, neighbor));
791
- }
792
-
793
- case 17:
794
- _context9.next = 12;
795
- break;
796
-
797
- case 19:
798
- _context9.next = 24;
653
+ _context9.next = 6;
799
654
  break;
800
-
801
- case 21:
802
- _context9.prev = 21;
803
- _context9.t0 = _context9["catch"](10);
804
-
805
- _iterator4.e(_context9.t0);
806
-
807
- case 24:
808
- _context9.prev = 24;
809
-
810
- _iterator4.f();
811
-
812
- return _context9.finish(24);
813
-
814
- case 27:
815
- _context9.next = 31;
816
- break;
817
-
818
- case 29:
819
- console.warn("Node ".concat(node.id, ": neighbors attribute is omited because of large number of neigbors"));
820
- delete node.neighbors;
821
-
822
- case 31:
823
- _context9.next = 33;
824
- return this._writeNodeIndexDocument(node, nodePath, childPath);
825
-
826
- case 33:
827
- node.neighbors = [];
828
-
829
- case 34:
830
- _context9.next = 3;
831
- break;
832
-
833
- case 36:
834
- _context9.next = 41;
655
+ case 18:
656
+ _context9.next = 23;
835
657
  break;
836
-
837
- case 38:
838
- _context9.prev = 38;
839
- _context9.t1 = _context9["catch"](1);
840
-
841
- _iterator3.e(_context9.t1);
842
-
843
- case 41:
844
- _context9.prev = 41;
845
-
658
+ case 20:
659
+ _context9.prev = 20;
660
+ _context9.t0 = _context9["catch"](4);
661
+ _iterator3.e(_context9.t0);
662
+ case 23:
663
+ _context9.prev = 23;
846
664
  _iterator3.f();
847
-
848
- return _context9.finish(41);
849
-
850
- case 44:
665
+ return _context9.finish(23);
666
+ case 26:
851
667
  case "end":
852
668
  return _context9.stop();
853
669
  }
854
670
  }
855
- }, _callee9, this, [[1, 38, 41, 44], [10, 21, 24, 27]]);
671
+ }, _callee9, this, [[4, 20, 23, 26]]);
856
672
  }));
857
-
858
- function _addNeighborsAndWriteFile(_x14, _x15) {
859
- return _addNeighborsAndWriteFile2.apply(this, arguments);
673
+ function _addChildren(_x11) {
674
+ return _addChildren2.apply(this, arguments);
860
675
  }
861
-
862
- return _addNeighborsAndWriteFile;
676
+ return _addChildren;
863
677
  }()
864
678
  }, {
865
679
  key: "_createNode",
866
680
  value: function () {
867
- var _createNode2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee10(parentTile, sourceTile, parentId, level) {
868
- var _sourceTile$content;
869
-
870
- var boundingVolumes, batchTable, resourcesData, nodes, nodesInPage, emptyResources, _iterator5, _step5, resources, lodSelection, maxScreenThresholdSQ, nodeInPage, node, _console;
871
-
681
+ var _createNode2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee10(parentNode, sourceTile, level) {
682
+ var _this$layers, _this$layers$attribut;
683
+ var boundingVolumes, propertyTable, resourcesData, nodes, nodeIds, nodesInPage, emptyResources, _iterator4, _step4, resources, lodSelection, maxScreenThresholdSQ, nodeInPage, nodeData, node, _console;
872
684
  return _regenerator.default.wrap(function _callee10$(_context10) {
873
685
  while (1) {
874
686
  switch (_context10.prev = _context10.next) {
875
687
  case 0:
876
- if (this.validate) {
877
- this._checkAddRefinementTypeForTile(sourceTile);
878
- }
879
-
688
+ this._checkAddRefinementTypeForTile(sourceTile);
880
689
  _context10.next = 3;
881
690
  return this._updateTilesetOptions();
882
-
883
691
  case 3:
884
692
  _context10.next = 5;
885
693
  return this.sourceTileset._loadTile(sourceTile);
886
-
887
694
  case 5:
888
695
  boundingVolumes = (0, _coordinateConverter.createBoundingVolumes)(sourceTile, this.geoidHeightModel);
889
- batchTable = sourceTile === null || sourceTile === void 0 ? void 0 : (_sourceTile$content = sourceTile.content) === null || _sourceTile$content === void 0 ? void 0 : _sourceTile$content.batchTableJson;
890
-
891
- if (batchTable) {
892
- this._convertAttributeStorageInfo(sourceTile.content);
696
+ propertyTable = (0, _geometryConverter.getPropertyTable)(sourceTile.content);
697
+ if (propertyTable && !((_this$layers = this.layers0) !== null && _this$layers !== void 0 && (_this$layers$attribut = _this$layers.attributeStorageInfo) !== null && _this$layers$attribut !== void 0 && _this$layers$attribut.length)) {
698
+ this._convertPropertyTableToNodeAttributes(propertyTable);
893
699
  }
894
-
895
700
  _context10.next = 10;
896
- return this._convertResources(sourceTile);
897
-
701
+ return this._convertResources(sourceTile, parentNode.inPageId, propertyTable);
898
702
  case 10:
899
703
  resourcesData = _context10.sent;
900
704
  nodes = [];
705
+ nodeIds = [];
901
706
  nodesInPage = [];
902
707
  emptyResources = {
903
708
  geometry: null,
904
709
  compressedGeometry: null,
905
710
  texture: null,
711
+ hasUvRegions: false,
906
712
  sharedResources: null,
907
713
  meshMaterial: null,
908
714
  vertexCount: null,
@@ -910,439 +716,415 @@ var I3SConverter = function () {
910
716
  featureCount: null,
911
717
  boundingVolumes: null
912
718
  };
913
- _iterator5 = _createForOfIteratorHelper(resourcesData || [emptyResources]);
914
- _context10.prev = 15;
915
-
916
- _iterator5.s();
917
-
918
- case 17:
919
- if ((_step5 = _iterator5.n()).done) {
920
- _context10.next = 33;
719
+ _iterator4 = _createForOfIteratorHelper(resourcesData || [emptyResources]);
720
+ _context10.prev = 16;
721
+ _iterator4.s();
722
+ case 18:
723
+ if ((_step4 = _iterator4.n()).done) {
724
+ _context10.next = 42;
921
725
  break;
922
726
  }
923
-
924
- resources = _step5.value;
727
+ resources = _step4.value;
925
728
  this.layersHasTexture = this.layersHasTexture || Boolean(resources.texture);
926
-
927
729
  if (this.generateBoundingVolumes && resources.boundingVolumes) {
928
730
  boundingVolumes = resources.boundingVolumes;
929
731
  }
930
-
931
732
  lodSelection = (0, _lodConversionUtils.convertGeometricErrorToScreenThreshold)(sourceTile, boundingVolumes);
932
733
  maxScreenThresholdSQ = lodSelection.find(function (val) {
933
734
  return val.metricType === 'maxScreenThresholdSQ';
934
735
  }) || {
935
736
  maxError: 0
936
737
  };
937
- nodeInPage = this._createNodeInNodePages(maxScreenThresholdSQ, boundingVolumes, sourceTile, parentId, resources);
938
- node = this._createNodeIndexDocument(parentTile, boundingVolumes, lodSelection, nodeInPage, resources);
939
-
738
+ _context10.next = 26;
739
+ return this._updateNodeInNodePages(maxScreenThresholdSQ, boundingVolumes, sourceTile, parentNode.inPageId, resources);
740
+ case 26:
741
+ nodeInPage = _context10.sent;
742
+ _context10.next = 29;
743
+ return _nodeIndexDocument.NodeIndexDocument.createNodeIndexDocument(parentNode, boundingVolumes, lodSelection, nodeInPage, resources);
744
+ case 29:
745
+ nodeData = _context10.sent;
746
+ _context10.next = 32;
747
+ return new _nodeIndexDocument.NodeIndexDocument(nodeInPage.index, this).addData(nodeData);
748
+ case 32:
749
+ node = _context10.sent;
750
+ nodes.push(node);
940
751
  if (!nodeInPage.mesh) {
941
- _context10.next = 28;
752
+ _context10.next = 37;
942
753
  break;
943
754
  }
944
-
945
- _context10.next = 28;
946
- return this._writeResources(resources, node.path);
947
-
948
- case 28:
755
+ _context10.next = 37;
756
+ return this._writeResources(resources, node.id);
757
+ case 37:
949
758
  if (this.validate) {
950
- this.boundingVolumeWarnings = (0, _nodeDebug.validateNodeBoundingVolumes)(node);
951
-
759
+ this.boundingVolumeWarnings = (0, _nodeDebug.validateNodeBoundingVolumes)(nodeData);
952
760
  if (this.boundingVolumeWarnings && this.boundingVolumeWarnings.length) {
953
761
  (_console = console).warn.apply(_console, ['Bounding Volume Warnings: '].concat((0, _toConsumableArray2.default)(this.boundingVolumeWarnings)));
954
762
  }
955
763
  }
956
764
 
957
- nodes.push(node);
765
+ nodeIds.push(nodeInPage.index);
958
766
  nodesInPage.push(nodeInPage);
959
-
960
- case 31:
961
- _context10.next = 17;
767
+ case 40:
768
+ _context10.next = 18;
962
769
  break;
963
-
964
- case 33:
965
- _context10.next = 38;
770
+ case 42:
771
+ _context10.next = 47;
966
772
  break;
967
-
968
- case 35:
969
- _context10.prev = 35;
970
- _context10.t0 = _context10["catch"](15);
971
-
972
- _iterator5.e(_context10.t0);
973
-
974
- case 38:
975
- _context10.prev = 38;
976
-
977
- _iterator5.f();
978
-
979
- return _context10.finish(38);
980
-
981
- case 41:
773
+ case 44:
774
+ _context10.prev = 44;
775
+ _context10.t0 = _context10["catch"](16);
776
+ _iterator4.e(_context10.t0);
777
+ case 47:
778
+ _context10.prev = 47;
779
+ _iterator4.f();
780
+ return _context10.finish(47);
781
+ case 50:
982
782
  sourceTile.unloadContent();
983
- _context10.next = 44;
783
+ _context10.next = 53;
984
784
  return this._addChildrenWithNeighborsAndWriteFile({
985
785
  parentNode: nodes[0],
986
786
  sourceTiles: sourceTile.children,
987
- parentId: nodesInPage[0].index,
988
787
  level: level + 1
989
788
  });
990
-
991
- case 44:
789
+ case 53:
992
790
  return _context10.abrupt("return", nodes);
993
-
994
- case 45:
791
+ case 54:
995
792
  case "end":
996
793
  return _context10.stop();
997
794
  }
998
795
  }
999
- }, _callee10, this, [[15, 35, 38, 41]]);
796
+ }, _callee10, this, [[16, 44, 47, 50]]);
1000
797
  }));
1001
-
1002
- function _createNode(_x16, _x17, _x18, _x19) {
798
+ function _createNode(_x12, _x13, _x14) {
1003
799
  return _createNode2.apply(this, arguments);
1004
800
  }
1005
-
1006
801
  return _createNode;
1007
802
  }()
1008
- }, {
1009
- key: "_convertAttributeStorageInfo",
1010
- value: function _convertAttributeStorageInfo(sourceTileContent) {
1011
- var _this$layers, _this$layers$attribut;
1012
-
1013
- var batchTable = sourceTileContent && sourceTileContent.batchTableJson;
1014
-
1015
- if (batchTable && !((_this$layers = this.layers0) !== null && _this$layers !== void 0 && (_this$layers$attribut = _this$layers.attributeStorageInfo) !== null && _this$layers$attribut !== void 0 && _this$layers$attribut.length)) {
1016
- this._convertBatchTableInfoToNodeAttributes(batchTable);
1017
- }
1018
- }
1019
803
  }, {
1020
804
  key: "_convertResources",
1021
805
  value: function () {
1022
- var _convertResources2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee11(sourceTile) {
1023
- var _this$layers2;
1024
-
1025
- var resourcesData;
1026
- return _regenerator.default.wrap(function _callee11$(_context11) {
806
+ var _convertResources2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee12(sourceTile, parentId, propertyTable) {
807
+ var _this3 = this,
808
+ _this$layers2;
809
+ var draftObb, resourcesData;
810
+ return _regenerator.default.wrap(function _callee12$(_context12) {
1027
811
  while (1) {
1028
- switch (_context11.prev = _context11.next) {
812
+ switch (_context12.prev = _context12.next) {
1029
813
  case 0:
1030
814
  if (this.isContentSupported(sourceTile)) {
1031
- _context11.next = 2;
815
+ _context12.next = 2;
1032
816
  break;
1033
817
  }
1034
-
1035
- return _context11.abrupt("return", null);
1036
-
818
+ return _context12.abrupt("return", null);
1037
819
  case 2:
1038
- _context11.next = 4;
1039
- return (0, _geometryConverter.default)(sourceTile.content, Number(this.nodePages.nodesCounter), this.featuresHashArray, (_this$layers2 = this.layers0) === null || _this$layers2 === void 0 ? void 0 : _this$layers2.attributeStorageInfo, this.options.draco, this.generateBoundingVolumes, this.geoidHeightModel, this.workerSource);
1040
-
1041
- case 4:
1042
- resourcesData = _context11.sent;
1043
- return _context11.abrupt("return", resourcesData);
1044
-
1045
- case 6:
820
+ draftObb = {
821
+ center: [],
822
+ halfSize: [],
823
+ quaternion: []
824
+ };
825
+ _context12.next = 5;
826
+ return (0, _geometryConverter.default)(sourceTile.content, (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee11() {
827
+ return _regenerator.default.wrap(function _callee11$(_context11) {
828
+ while (1) {
829
+ switch (_context11.prev = _context11.next) {
830
+ case 0:
831
+ _context11.next = 2;
832
+ return _this3.nodePages.push({
833
+ index: 0,
834
+ obb: draftObb
835
+ }, parentId);
836
+ case 2:
837
+ return _context11.abrupt("return", _context11.sent.index);
838
+ case 3:
839
+ case "end":
840
+ return _context11.stop();
841
+ }
842
+ }
843
+ }, _callee11);
844
+ })), propertyTable, this.featuresHashArray, (_this$layers2 = this.layers0) === null || _this$layers2 === void 0 ? void 0 : _this$layers2.attributeStorageInfo, this.options.draco, this.generateBoundingVolumes, this.options.mergeMaterials, this.geoidHeightModel, this.workerSource);
845
+ case 5:
846
+ resourcesData = _context12.sent;
847
+ return _context12.abrupt("return", resourcesData);
848
+ case 7:
1046
849
  case "end":
1047
- return _context11.stop();
850
+ return _context12.stop();
1048
851
  }
1049
852
  }
1050
- }, _callee11, this);
853
+ }, _callee12, this);
1051
854
  }));
1052
-
1053
- function _convertResources(_x20) {
855
+ function _convertResources(_x15, _x16, _x17) {
1054
856
  return _convertResources2.apply(this, arguments);
1055
857
  }
1056
-
1057
858
  return _convertResources;
1058
859
  }()
1059
860
  }, {
1060
- key: "_createNodeInNodePages",
1061
- value: function _createNodeInNodePages(maxScreenThresholdSQ, boundingVolumes, sourceTile, parentId, resources) {
1062
- var meshMaterial = resources.meshMaterial,
1063
- texture = resources.texture,
1064
- vertexCount = resources.vertexCount,
1065
- featureCount = resources.featureCount,
1066
- geometry = resources.geometry;
1067
- var nodeInPage = {
1068
- index: 0,
1069
- lodThreshold: maxScreenThresholdSQ.maxError,
1070
- obb: boundingVolumes.obb,
1071
- children: []
1072
- };
1073
-
1074
- if (geometry && this.isContentSupported(sourceTile)) {
1075
- nodeInPage.mesh = {
1076
- geometry: {
1077
- definition: texture ? 0 : 1,
1078
- resource: 0
1079
- },
1080
- attribute: {
1081
- resource: 0
1082
- },
1083
- material: {
1084
- definition: 0
1085
- }
1086
- };
1087
- }
1088
-
1089
- var nodeId = this.nodePages.push(nodeInPage, parentId);
1090
-
1091
- if (meshMaterial) {
1092
- this.nodePages.updateMaterialByNodeId(nodeId, this._findOrCreateMaterial(meshMaterial));
1093
- }
1094
-
1095
- if (texture) {
1096
- var texelCountHint = texture.image.height * texture.image.width;
1097
- this.nodePages.updateTexelCountHintByNodeId(nodeId, texelCountHint);
1098
- }
1099
-
1100
- if (vertexCount) {
1101
- this.vertexCounter += vertexCount;
1102
- this.nodePages.updateVertexCountByNodeId(nodeId, vertexCount);
1103
- }
1104
-
1105
- this.nodePages.updateNodeAttributeByNodeId(nodeId);
1106
-
1107
- if (featureCount) {
1108
- this.nodePages.updateFeatureCountByNodeId(nodeId, featureCount);
1109
- }
1110
-
1111
- return nodeInPage;
1112
- }
1113
- }, {
1114
- key: "_createNodeIndexDocument",
1115
- value: function _createNodeIndexDocument(parentNode, boundingVolumes, lodSelection, nodeInPage, resources) {
1116
- var texture = resources.texture,
1117
- attributes = resources.attributes;
1118
- var nodeId = nodeInPage.index;
1119
-
1120
- var nodeData = _objectSpread(_objectSpread({
1121
- version: parentNode.version,
1122
- id: nodeId.toString(),
1123
- path: nodeId.toString(),
1124
- level: parentNode.level + 1
1125
- }, boundingVolumes), {}, {
1126
- lodSelection: lodSelection,
1127
- parentNode: {
1128
- id: parentNode.id,
1129
- href: "../".concat(parentNode.id),
1130
- mbs: parentNode.mbs,
1131
- obb: parentNode.obb
1132
- },
1133
- children: [],
1134
- neighbors: []
1135
- });
1136
-
1137
- var node = (0, _jsonMapTransform.default)(nodeData, (0, _node.NODE)());
1138
-
1139
- if (nodeInPage.mesh) {
1140
- var _this$layers3, _this$layers3$attribu;
1141
-
1142
- node.geometryData = [{
1143
- href: './geometries/0'
1144
- }];
1145
- node.sharedResource = {
1146
- href: './shared'
1147
- };
1148
-
1149
- if (texture) {
1150
- node.textureData = [{
1151
- href: './textures/0'
1152
- }, {
1153
- href: './textures/1'
1154
- }];
1155
- }
1156
-
1157
- if (attributes && attributes.length && (_this$layers3 = this.layers0) !== null && _this$layers3 !== void 0 && (_this$layers3$attribu = _this$layers3.attributeStorageInfo) !== null && _this$layers3$attribu !== void 0 && _this$layers3$attribu.length) {
1158
- node.attributeData = [];
1159
-
1160
- for (var index = 0; index < attributes.length; index++) {
1161
- var folderName = this.layers0.attributeStorageInfo[index].key;
1162
- node.attributeData.push({
1163
- href: "./attributes/".concat(folderName, "/0")
1164
- });
861
+ key: "_updateNodeInNodePages",
862
+ value: function () {
863
+ var _updateNodeInNodePages2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee13(maxScreenThresholdSQ, boundingVolumes, sourceTile, parentId, resources) {
864
+ var meshMaterial, texture, vertexCount, featureCount, geometry, hasUvRegions, nodeInPage, nodeId, node, texelCountHint;
865
+ return _regenerator.default.wrap(function _callee13$(_context13) {
866
+ while (1) {
867
+ switch (_context13.prev = _context13.next) {
868
+ case 0:
869
+ meshMaterial = resources.meshMaterial, texture = resources.texture, vertexCount = resources.vertexCount, featureCount = resources.featureCount, geometry = resources.geometry, hasUvRegions = resources.hasUvRegions;
870
+ nodeInPage = {
871
+ index: 0,
872
+ lodThreshold: maxScreenThresholdSQ.maxError,
873
+ obb: boundingVolumes.obb,
874
+ children: []
875
+ };
876
+ if (geometry && this.isContentSupported(sourceTile)) {
877
+ nodeInPage.mesh = {
878
+ geometry: {
879
+ definition: this.findOrCreateGeometryDefinition(Boolean(texture), hasUvRegions),
880
+ resource: 0
881
+ },
882
+ attribute: {
883
+ resource: 0
884
+ },
885
+ material: {
886
+ definition: 0
887
+ }
888
+ };
889
+ }
890
+ nodeId = resources.nodeId;
891
+ if (nodeId) {
892
+ _context13.next = 10;
893
+ break;
894
+ }
895
+ _context13.next = 7;
896
+ return this.nodePages.push(nodeInPage, parentId);
897
+ case 7:
898
+ node = _context13.sent;
899
+ _context13.next = 13;
900
+ break;
901
+ case 10:
902
+ _context13.next = 12;
903
+ return this.nodePages.getNodeById(nodeId);
904
+ case 12:
905
+ node = _context13.sent;
906
+ case 13:
907
+ _nodePages.default.updateAll(node, nodeInPage);
908
+ if (meshMaterial) {
909
+ _nodePages.default.updateMaterialByNodeId(node, this._findOrCreateMaterial(meshMaterial));
910
+ }
911
+ if (texture) {
912
+ texelCountHint = texture.image.height * texture.image.width;
913
+ _nodePages.default.updateTexelCountHintByNodeId(node, texelCountHint);
914
+ }
915
+ if (vertexCount) {
916
+ this.vertexCounter += vertexCount;
917
+ _nodePages.default.updateVertexCountByNodeId(node, vertexCount);
918
+ }
919
+ _nodePages.default.updateNodeAttributeByNodeId(node);
920
+ if (featureCount) {
921
+ _nodePages.default.updateFeatureCountByNodeId(node, featureCount);
922
+ }
923
+ this.nodePages.saveNode(node);
924
+ return _context13.abrupt("return", node);
925
+ case 21:
926
+ case "end":
927
+ return _context13.stop();
928
+ }
1165
929
  }
1166
- }
930
+ }, _callee13, this);
931
+ }));
932
+ function _updateNodeInNodePages(_x18, _x19, _x20, _x21, _x22) {
933
+ return _updateNodeInNodePages2.apply(this, arguments);
1167
934
  }
1168
-
1169
- return node;
1170
- }
935
+ return _updateNodeInNodePages;
936
+ }()
1171
937
  }, {
1172
938
  key: "_writeResources",
1173
939
  value: function () {
1174
- var _writeResources2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee12(resources, nodePath) {
940
+ var _writeResources2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee14(resources, nodePath) {
1175
941
  var geometryBuffer, compressedGeometry, texture, sharedResources, attributes, childPath, slpkChildPath;
1176
- return _regenerator.default.wrap(function _callee12$(_context12) {
942
+ return _regenerator.default.wrap(function _callee14$(_context14) {
1177
943
  while (1) {
1178
- switch (_context12.prev = _context12.next) {
944
+ switch (_context14.prev = _context14.next) {
1179
945
  case 0:
1180
946
  geometryBuffer = resources.geometry, compressedGeometry = resources.compressedGeometry, texture = resources.texture, sharedResources = resources.sharedResources, attributes = resources.attributes;
1181
947
  childPath = (0, _path.join)(this.layers0Path, 'nodes', nodePath);
1182
948
  slpkChildPath = (0, _path.join)('nodes', nodePath);
1183
- _context12.next = 5;
949
+ _context14.next = 5;
1184
950
  return this._writeGeometries(geometryBuffer, compressedGeometry, childPath, slpkChildPath);
1185
-
1186
951
  case 5:
1187
- _context12.next = 7;
952
+ _context14.next = 7;
1188
953
  return this._writeShared(sharedResources, childPath, slpkChildPath, nodePath);
1189
-
1190
954
  case 7:
1191
- _context12.next = 9;
955
+ _context14.next = 9;
1192
956
  return this._writeTexture(texture, childPath, slpkChildPath);
1193
-
1194
957
  case 9:
1195
- _context12.next = 11;
958
+ _context14.next = 11;
1196
959
  return this._writeAttributes(attributes, childPath, slpkChildPath);
1197
-
1198
960
  case 11:
1199
961
  case "end":
1200
- return _context12.stop();
962
+ return _context14.stop();
1201
963
  }
1202
964
  }
1203
- }, _callee12, this);
965
+ }, _callee14, this);
1204
966
  }));
1205
-
1206
- function _writeResources(_x21, _x22) {
967
+ function _writeResources(_x23, _x24) {
1207
968
  return _writeResources2.apply(this, arguments);
1208
969
  }
1209
-
1210
970
  return _writeResources;
1211
971
  }()
1212
972
  }, {
1213
973
  key: "_writeGeometries",
1214
974
  value: function () {
1215
- var _writeGeometries2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee13(geometryBuffer, compressedGeometry, childPath, slpkChildPath) {
975
+ var _writeGeometries2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee15(geometryBuffer, compressedGeometry, childPath, slpkChildPath) {
1216
976
  var slpkGeometryPath, geometryPath, slpkCompressedGeometryPath, compressedGeometryPath;
1217
- return _regenerator.default.wrap(function _callee13$(_context13) {
977
+ return _regenerator.default.wrap(function _callee15$(_context15) {
1218
978
  while (1) {
1219
- switch (_context13.prev = _context13.next) {
979
+ switch (_context15.prev = _context15.next) {
1220
980
  case 0:
1221
- if (this.options.slpk) {
1222
- slpkGeometryPath = (0, _path.join)(childPath, 'geometries');
1223
- this.writeQueue.enqueue({
1224
- archiveKey: "".concat(slpkChildPath, "/geometries/0.bin.gz"),
1225
- writePromise: (0, _fileUtils.writeFileForSlpk)(slpkGeometryPath, geometryBuffer, '0.bin')
1226
- });
1227
- } else {
1228
- geometryPath = (0, _path.join)(childPath, 'geometries/0/');
1229
- this.writeQueue.enqueue({
1230
- writePromise: (0, _fileUtils.writeFile)(geometryPath, geometryBuffer, 'index.bin')
1231
- });
981
+ if (!this.options.slpk) {
982
+ _context15.next = 6;
983
+ break;
1232
984
  }
1233
-
1234
- if (this.options.draco) {
1235
- if (this.options.slpk) {
1236
- slpkCompressedGeometryPath = (0, _path.join)(childPath, 'geometries');
1237
- this.writeQueue.enqueue({
1238
- archiveKey: "".concat(slpkChildPath, "/geometries/1.bin.gz"),
1239
- writePromise: (0, _fileUtils.writeFileForSlpk)(slpkCompressedGeometryPath, compressedGeometry, '1.bin')
1240
- });
1241
- } else {
1242
- compressedGeometryPath = (0, _path.join)(childPath, 'geometries/1/');
1243
- this.writeQueue.enqueue({
1244
- writePromise: (0, _fileUtils.writeFile)(compressedGeometryPath, compressedGeometry, 'index.bin')
1245
- });
985
+ slpkGeometryPath = (0, _path.join)(childPath, 'geometries');
986
+ _context15.next = 4;
987
+ return this.writeQueue.enqueue({
988
+ archiveKey: "".concat(slpkChildPath, "/geometries/0.bin.gz"),
989
+ writePromise: function writePromise() {
990
+ return (0, _fileUtils.writeFileForSlpk)(slpkGeometryPath, geometryBuffer, '0.bin');
991
+ }
992
+ });
993
+ case 4:
994
+ _context15.next = 9;
995
+ break;
996
+ case 6:
997
+ geometryPath = (0, _path.join)(childPath, 'geometries/0/');
998
+ _context15.next = 9;
999
+ return this.writeQueue.enqueue({
1000
+ writePromise: function writePromise() {
1001
+ return (0, _fileUtils.writeFile)(geometryPath, geometryBuffer, 'index.bin');
1246
1002
  }
1003
+ });
1004
+ case 9:
1005
+ if (!this.options.draco) {
1006
+ _context15.next = 19;
1007
+ break;
1247
1008
  }
1248
-
1249
- case 2:
1009
+ if (!this.options.slpk) {
1010
+ _context15.next = 16;
1011
+ break;
1012
+ }
1013
+ slpkCompressedGeometryPath = (0, _path.join)(childPath, 'geometries');
1014
+ _context15.next = 14;
1015
+ return this.writeQueue.enqueue({
1016
+ archiveKey: "".concat(slpkChildPath, "/geometries/1.bin.gz"),
1017
+ writePromise: function writePromise() {
1018
+ return (0, _fileUtils.writeFileForSlpk)(slpkCompressedGeometryPath, compressedGeometry, '1.bin');
1019
+ }
1020
+ });
1021
+ case 14:
1022
+ _context15.next = 19;
1023
+ break;
1024
+ case 16:
1025
+ compressedGeometryPath = (0, _path.join)(childPath, 'geometries/1/');
1026
+ _context15.next = 19;
1027
+ return this.writeQueue.enqueue({
1028
+ writePromise: function writePromise() {
1029
+ return (0, _fileUtils.writeFile)(compressedGeometryPath, compressedGeometry, 'index.bin');
1030
+ }
1031
+ });
1032
+ case 19:
1250
1033
  case "end":
1251
- return _context13.stop();
1034
+ return _context15.stop();
1252
1035
  }
1253
1036
  }
1254
- }, _callee13, this);
1037
+ }, _callee15, this);
1255
1038
  }));
1256
-
1257
- function _writeGeometries(_x23, _x24, _x25, _x26) {
1039
+ function _writeGeometries(_x25, _x26, _x27, _x28) {
1258
1040
  return _writeGeometries2.apply(this, arguments);
1259
1041
  }
1260
-
1261
1042
  return _writeGeometries;
1262
1043
  }()
1263
1044
  }, {
1264
1045
  key: "_writeShared",
1265
1046
  value: function () {
1266
- var _writeShared2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee14(sharedResources, childPath, slpkChildPath, nodePath) {
1047
+ var _writeShared2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee16(sharedResources, childPath, slpkChildPath, nodePath) {
1267
1048
  var sharedData, sharedDataStr, slpkSharedPath, sharedPath;
1268
- return _regenerator.default.wrap(function _callee14$(_context14) {
1049
+ return _regenerator.default.wrap(function _callee16$(_context16) {
1269
1050
  while (1) {
1270
- switch (_context14.prev = _context14.next) {
1051
+ switch (_context16.prev = _context16.next) {
1271
1052
  case 0:
1272
1053
  if (sharedResources) {
1273
- _context14.next = 2;
1054
+ _context16.next = 2;
1274
1055
  break;
1275
1056
  }
1276
-
1277
- return _context14.abrupt("return");
1278
-
1057
+ return _context16.abrupt("return");
1279
1058
  case 2:
1280
1059
  sharedResources.nodePath = nodePath;
1281
1060
  sharedData = (0, _jsonMapTransform.default)(sharedResources, (0, _sharedResources.SHARED_RESOURCES)());
1282
1061
  sharedDataStr = JSON.stringify(sharedData);
1283
-
1284
- if (this.options.slpk) {
1285
- slpkSharedPath = (0, _path.join)(childPath, 'shared');
1286
- this.writeQueue.enqueue({
1287
- archiveKey: "".concat(slpkChildPath, "/shared/sharedResource.json.gz"),
1288
- writePromise: (0, _fileUtils.writeFileForSlpk)(slpkSharedPath, sharedDataStr, 'sharedResource.json')
1289
- });
1290
- } else {
1291
- sharedPath = (0, _path.join)(childPath, 'shared/');
1292
- this.writeQueue.enqueue({
1293
- writePromise: (0, _fileUtils.writeFile)(sharedPath, sharedDataStr)
1294
- });
1062
+ if (!this.options.slpk) {
1063
+ _context16.next = 11;
1064
+ break;
1295
1065
  }
1296
-
1297
- case 6:
1066
+ slpkSharedPath = (0, _path.join)(childPath, 'shared');
1067
+ _context16.next = 9;
1068
+ return this.writeQueue.enqueue({
1069
+ archiveKey: "".concat(slpkChildPath, "/shared/sharedResource.json.gz"),
1070
+ writePromise: function writePromise() {
1071
+ return (0, _fileUtils.writeFileForSlpk)(slpkSharedPath, sharedDataStr, 'sharedResource.json');
1072
+ }
1073
+ });
1074
+ case 9:
1075
+ _context16.next = 14;
1076
+ break;
1077
+ case 11:
1078
+ sharedPath = (0, _path.join)(childPath, 'shared/');
1079
+ _context16.next = 14;
1080
+ return this.writeQueue.enqueue({
1081
+ writePromise: function writePromise() {
1082
+ return (0, _fileUtils.writeFile)(sharedPath, sharedDataStr);
1083
+ }
1084
+ });
1085
+ case 14:
1298
1086
  case "end":
1299
- return _context14.stop();
1087
+ return _context16.stop();
1300
1088
  }
1301
1089
  }
1302
- }, _callee14, this);
1090
+ }, _callee16, this);
1303
1091
  }));
1304
-
1305
- function _writeShared(_x27, _x28, _x29, _x30) {
1092
+ function _writeShared(_x29, _x30, _x31, _x32) {
1306
1093
  return _writeShared2.apply(this, arguments);
1307
1094
  }
1308
-
1309
1095
  return _writeShared;
1310
1096
  }()
1311
1097
  }, {
1312
1098
  key: "_writeTexture",
1313
1099
  value: function () {
1314
- var _writeTexture2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee15(texture, childPath, slpkChildPath) {
1100
+ var _writeTexture2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee17(texture, childPath, slpkChildPath) {
1315
1101
  var format, formats, textureData, copyArrayBuffer, arrayToEncode, ktx2TextureData, decodedFromKTX2TextureData;
1316
- return _regenerator.default.wrap(function _callee15$(_context15) {
1102
+ return _regenerator.default.wrap(function _callee17$(_context17) {
1317
1103
  while (1) {
1318
- switch (_context15.prev = _context15.next) {
1104
+ switch (_context17.prev = _context17.next) {
1319
1105
  case 0:
1320
1106
  if (!texture) {
1321
- _context15.next = 27;
1107
+ _context17.next = 27;
1322
1108
  break;
1323
1109
  }
1324
-
1325
1110
  format = this._getFormatByMimeType(texture === null || texture === void 0 ? void 0 : texture.mimeType);
1326
1111
  formats = [];
1327
1112
  textureData = texture.bufferView.data;
1328
- _context15.t0 = format;
1329
- _context15.next = _context15.t0 === 'jpg' ? 7 : _context15.t0 === 'png' ? 7 : _context15.t0 === 'ktx2' ? 18 : 26;
1113
+ _context17.t0 = format;
1114
+ _context17.next = _context17.t0 === 'jpg' ? 7 : _context17.t0 === 'png' ? 7 : _context17.t0 === 'ktx2' ? 18 : 26;
1330
1115
  break;
1331
-
1332
1116
  case 7:
1333
1117
  formats.push({
1334
1118
  name: '0',
1335
1119
  format: format
1336
1120
  });
1337
- _context15.next = 10;
1121
+ _context17.next = 10;
1338
1122
  return this.writeTextureFile(textureData, '0', format, childPath, slpkChildPath);
1339
-
1340
1123
  case 10:
1341
1124
  if (!this.generateTextures) {
1342
- _context15.next = 17;
1125
+ _context17.next = 17;
1343
1126
  break;
1344
1127
  }
1345
-
1346
1128
  formats.push({
1347
1129
  name: '1',
1348
1130
  format: 'ktx2'
@@ -1356,301 +1138,242 @@ var I3SConverter = function () {
1356
1138
  reuseWorkers: true,
1357
1139
  _nodeWorkers: true
1358
1140
  }));
1359
- _context15.next = 17;
1141
+ _context17.next = 17;
1360
1142
  return this.writeTextureFile(ktx2TextureData, '1', 'ktx2', childPath, slpkChildPath);
1361
-
1362
1143
  case 17:
1363
- return _context15.abrupt("break", 26);
1364
-
1144
+ return _context17.abrupt("break", 26);
1365
1145
  case 18:
1366
1146
  formats.push({
1367
1147
  name: '1',
1368
1148
  format: format
1369
1149
  });
1370
- _context15.next = 21;
1150
+ _context17.next = 21;
1371
1151
  return this.writeTextureFile(textureData, '1', format, childPath, slpkChildPath);
1372
-
1373
1152
  case 21:
1374
1153
  if (!this.generateTextures) {
1375
- _context15.next = 26;
1154
+ _context17.next = 26;
1376
1155
  break;
1377
1156
  }
1378
-
1379
1157
  formats.push({
1380
1158
  name: '0',
1381
1159
  format: 'jpg'
1382
1160
  });
1383
1161
  decodedFromKTX2TextureData = (0, _core.encode)(texture.image.data[0], _images.ImageWriter);
1384
- _context15.next = 26;
1162
+ _context17.next = 26;
1385
1163
  return this.writeTextureFile(decodedFromKTX2TextureData, '0', 'jpg', childPath, slpkChildPath);
1386
-
1387
1164
  case 26:
1388
1165
  if (!this.layers0.textureSetDefinitions.length) {
1389
1166
  this.layers0.textureSetDefinitions.push({
1390
1167
  formats: formats
1391
1168
  });
1169
+ this.layers0.textureSetDefinitions.push({
1170
+ formats: formats,
1171
+ atlas: true
1172
+ });
1392
1173
  }
1393
-
1394
1174
  case 27:
1395
1175
  case "end":
1396
- return _context15.stop();
1176
+ return _context17.stop();
1397
1177
  }
1398
1178
  }
1399
- }, _callee15, this);
1179
+ }, _callee17, this);
1400
1180
  }));
1401
-
1402
- function _writeTexture(_x31, _x32, _x33) {
1181
+ function _writeTexture(_x33, _x34, _x35) {
1403
1182
  return _writeTexture2.apply(this, arguments);
1404
1183
  }
1405
-
1406
1184
  return _writeTexture;
1407
1185
  }()
1408
1186
  }, {
1409
1187
  key: "writeTextureFile",
1410
1188
  value: function () {
1411
- var _writeTextureFile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee16(textureData, name, format, childPath, slpkChildPath) {
1189
+ var _writeTextureFile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee18(textureData, name, format, childPath, slpkChildPath) {
1412
1190
  var slpkTexturePath, compress, texturePath;
1413
- return _regenerator.default.wrap(function _callee16$(_context16) {
1191
+ return _regenerator.default.wrap(function _callee18$(_context18) {
1414
1192
  while (1) {
1415
- switch (_context16.prev = _context16.next) {
1193
+ switch (_context18.prev = _context18.next) {
1416
1194
  case 0:
1417
- if (this.options.slpk) {
1418
- slpkTexturePath = (0, _path.join)(childPath, 'textures');
1419
- compress = false;
1420
- this.writeQueue.enqueue({
1421
- archiveKey: "".concat(slpkChildPath, "/textures/").concat(name, ".").concat(format),
1422
- writePromise: (0, _fileUtils.writeFileForSlpk)(slpkTexturePath, textureData, "".concat(name, ".").concat(format), compress)
1423
- });
1424
- } else {
1425
- texturePath = (0, _path.join)(childPath, "textures/".concat(name, "/"));
1426
- this.writeQueue.enqueue({
1427
- writePromise: (0, _fileUtils.writeFile)(texturePath, textureData, "index.".concat(format))
1428
- });
1195
+ if (!this.options.slpk) {
1196
+ _context18.next = 7;
1197
+ break;
1429
1198
  }
1430
-
1431
- case 1:
1199
+ slpkTexturePath = (0, _path.join)(childPath, 'textures');
1200
+ compress = false;
1201
+ _context18.next = 5;
1202
+ return this.writeQueue.enqueue({
1203
+ archiveKey: "".concat(slpkChildPath, "/textures/").concat(name, ".").concat(format),
1204
+ writePromise: function writePromise() {
1205
+ return (0, _fileUtils.writeFileForSlpk)(slpkTexturePath, textureData, "".concat(name, ".").concat(format), compress);
1206
+ }
1207
+ });
1208
+ case 5:
1209
+ _context18.next = 10;
1210
+ break;
1211
+ case 7:
1212
+ texturePath = (0, _path.join)(childPath, "textures/".concat(name, "/"));
1213
+ _context18.next = 10;
1214
+ return this.writeQueue.enqueue({
1215
+ writePromise: function writePromise() {
1216
+ return (0, _fileUtils.writeFile)(texturePath, textureData, "index.".concat(format));
1217
+ }
1218
+ });
1219
+ case 10:
1432
1220
  case "end":
1433
- return _context16.stop();
1221
+ return _context18.stop();
1434
1222
  }
1435
1223
  }
1436
- }, _callee16, this);
1224
+ }, _callee18, this);
1437
1225
  }));
1438
-
1439
- function writeTextureFile(_x34, _x35, _x36, _x37, _x38) {
1226
+ function writeTextureFile(_x36, _x37, _x38, _x39, _x40) {
1440
1227
  return _writeTextureFile.apply(this, arguments);
1441
1228
  }
1442
-
1443
1229
  return writeTextureFile;
1444
1230
  }()
1445
1231
  }, {
1446
1232
  key: "_writeAttributes",
1447
1233
  value: function () {
1448
- var _writeAttributes2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee17() {
1449
- var _this$layers4, _this$layers4$attribu;
1450
-
1234
+ var _writeAttributes2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee19() {
1235
+ var _this$layers3,
1236
+ _this$layers3$attribu,
1237
+ _this4 = this;
1451
1238
  var attributes,
1452
- childPath,
1453
- slpkChildPath,
1454
- index,
1455
- folderName,
1456
- fileBuffer,
1457
- slpkAttributesPath,
1458
- attributesPath,
1459
- _args17 = arguments;
1460
- return _regenerator.default.wrap(function _callee17$(_context17) {
1239
+ childPath,
1240
+ slpkChildPath,
1241
+ _loop,
1242
+ index,
1243
+ _args20 = arguments;
1244
+ return _regenerator.default.wrap(function _callee19$(_context20) {
1461
1245
  while (1) {
1462
- switch (_context17.prev = _context17.next) {
1246
+ switch (_context20.prev = _context20.next) {
1463
1247
  case 0:
1464
- attributes = _args17.length > 0 && _args17[0] !== undefined ? _args17[0] : [];
1465
- childPath = _args17.length > 1 ? _args17[1] : undefined;
1466
- slpkChildPath = _args17.length > 2 ? _args17[2] : undefined;
1467
-
1468
- if (attributes !== null && attributes !== void 0 && attributes.length && (_this$layers4 = this.layers0) !== null && _this$layers4 !== void 0 && (_this$layers4$attribu = _this$layers4.attributeStorageInfo) !== null && _this$layers4$attribu !== void 0 && _this$layers4$attribu.length) {
1469
- for (index = 0; index < attributes.length; index++) {
1470
- folderName = this.layers0.attributeStorageInfo[index].key;
1471
- fileBuffer = new Uint8Array(attributes[index]);
1472
-
1473
- if (this.options.slpk) {
1474
- slpkAttributesPath = (0, _path.join)(childPath, 'attributes', folderName);
1475
- this.writeQueue.enqueue({
1476
- archiveKey: "".concat(slpkChildPath, "/attributes/").concat(folderName, ".bin.gz"),
1477
- writePromise: (0, _fileUtils.writeFileForSlpk)(slpkAttributesPath, fileBuffer, '0.bin')
1478
- });
1479
- } else {
1480
- attributesPath = (0, _path.join)(childPath, "attributes/".concat(folderName, "/0"));
1481
- this.writeQueue.enqueue({
1482
- writePromise: (0, _fileUtils.writeFile)(attributesPath, fileBuffer, 'index.bin')
1483
- });
1248
+ attributes = _args20.length > 0 && _args20[0] !== undefined ? _args20[0] : [];
1249
+ childPath = _args20.length > 1 ? _args20[1] : undefined;
1250
+ slpkChildPath = _args20.length > 2 ? _args20[2] : undefined;
1251
+ if (!(attributes !== null && attributes !== void 0 && attributes.length && (_this$layers3 = this.layers0) !== null && _this$layers3 !== void 0 && (_this$layers3$attribu = _this$layers3.attributeStorageInfo) !== null && _this$layers3$attribu !== void 0 && _this$layers3$attribu.length)) {
1252
+ _context20.next = 11;
1253
+ break;
1254
+ }
1255
+ _loop = _regenerator.default.mark(function _loop(index) {
1256
+ var folderName, fileBuffer, slpkAttributesPath, attributesPath;
1257
+ return _regenerator.default.wrap(function _loop$(_context19) {
1258
+ while (1) {
1259
+ switch (_context19.prev = _context19.next) {
1260
+ case 0:
1261
+ folderName = _this4.layers0.attributeStorageInfo[index].key;
1262
+ fileBuffer = new Uint8Array(attributes[index]);
1263
+ if (!_this4.options.slpk) {
1264
+ _context19.next = 8;
1265
+ break;
1266
+ }
1267
+ slpkAttributesPath = (0, _path.join)(childPath, 'attributes', folderName);
1268
+ _context19.next = 6;
1269
+ return _this4.writeQueue.enqueue({
1270
+ archiveKey: "".concat(slpkChildPath, "/attributes/").concat(folderName, ".bin.gz"),
1271
+ writePromise: function writePromise() {
1272
+ return (0, _fileUtils.writeFileForSlpk)(slpkAttributesPath, fileBuffer, '0.bin');
1273
+ }
1274
+ });
1275
+ case 6:
1276
+ _context19.next = 11;
1277
+ break;
1278
+ case 8:
1279
+ attributesPath = (0, _path.join)(childPath, "attributes/".concat(folderName, "/0"));
1280
+ _context19.next = 11;
1281
+ return _this4.writeQueue.enqueue({
1282
+ writePromise: function writePromise() {
1283
+ return (0, _fileUtils.writeFile)(attributesPath, fileBuffer, 'index.bin');
1284
+ }
1285
+ });
1286
+ case 11:
1287
+ case "end":
1288
+ return _context19.stop();
1289
+ }
1484
1290
  }
1485
- }
1291
+ }, _loop);
1292
+ });
1293
+ index = 0;
1294
+ case 6:
1295
+ if (!(index < attributes.length)) {
1296
+ _context20.next = 11;
1297
+ break;
1486
1298
  }
1487
-
1488
- case 4:
1299
+ return _context20.delegateYield(_loop(index), "t0", 8);
1300
+ case 8:
1301
+ index++;
1302
+ _context20.next = 6;
1303
+ break;
1304
+ case 11:
1489
1305
  case "end":
1490
- return _context17.stop();
1306
+ return _context20.stop();
1491
1307
  }
1492
1308
  }
1493
- }, _callee17, this);
1309
+ }, _callee19, this);
1494
1310
  }));
1495
-
1496
1311
  function _writeAttributes() {
1497
1312
  return _writeAttributes2.apply(this, arguments);
1498
1313
  }
1499
-
1500
1314
  return _writeAttributes;
1501
1315
  }()
1502
1316
  }, {
1503
1317
  key: "_getFormatByMimeType",
1504
- value: function _getFormatByMimeType(mimeType) {
1318
+ value:
1319
+ function _getFormatByMimeType(mimeType) {
1505
1320
  switch (mimeType) {
1506
1321
  case 'image/jpeg':
1507
1322
  return 'jpg';
1508
-
1509
1323
  case 'image/png':
1510
1324
  return 'png';
1511
-
1512
1325
  case 'image/ktx2':
1513
1326
  return 'ktx2';
1514
-
1515
1327
  default:
1516
1328
  return 'jpg';
1517
1329
  }
1518
1330
  }
1331
+
1519
1332
  }, {
1520
1333
  key: "_findOrCreateMaterial",
1521
- value: function _findOrCreateMaterial(material) {
1334
+ value:
1335
+ function _findOrCreateMaterial(material) {
1522
1336
  var hash = (0, _md.default)(JSON.stringify(material));
1523
-
1524
1337
  if (this.materialMap.has(hash)) {
1525
- return this.materialMap.get(hash);
1338
+ return this.materialMap.get(hash) || 0;
1526
1339
  }
1527
-
1528
1340
  var newMaterialId = this.materialDefinitions.push(material) - 1;
1529
1341
  this.materialMap.set(hash, newMaterialId);
1530
1342
  return newMaterialId;
1531
1343
  }
1344
+
1532
1345
  }, {
1533
- key: "_createdStorageAttribute",
1534
- value: function _createdStorageAttribute(attributeIndex, key, attributeType) {
1535
- var storageAttribute = {
1536
- key: "f_".concat(attributeIndex),
1537
- name: key,
1538
- ordering: ['attributeValues'],
1539
- header: [{
1540
- property: 'count',
1541
- valueType: 'UInt32'
1542
- }],
1543
- attributeValues: {
1544
- valueType: 'Int32',
1545
- valuesPerElement: 1
1546
- }
1346
+ key: "findOrCreateGeometryDefinition",
1347
+ value:
1348
+ function findOrCreateGeometryDefinition(hasTexture, hasUvRegions) {
1349
+ var geometryConfig = {
1350
+ hasTexture: hasTexture,
1351
+ hasUvRegions: hasUvRegions
1547
1352
  };
1548
-
1549
- switch (attributeType) {
1550
- case OBJECT_ID_TYPE:
1551
- this._setupIdAttribute(storageAttribute);
1552
-
1553
- break;
1554
-
1555
- case STRING_TYPE:
1556
- this._setupStringAttribute(storageAttribute);
1557
-
1558
- break;
1559
-
1560
- case DOUBLE_TYPE:
1561
- this._setupDoubleAttribute(storageAttribute);
1562
-
1563
- break;
1564
-
1565
- case SHORT_INT_TYPE:
1566
- break;
1567
-
1568
- default:
1569
- this._setupStringAttribute(storageAttribute);
1570
-
1353
+ var hash = (0, _md.default)(JSON.stringify(geometryConfig));
1354
+ if (this.geometryMap.has(hash)) {
1355
+ return this.geometryMap.get(hash) || 0;
1571
1356
  }
1572
-
1573
- return storageAttribute;
1357
+ var newGeometryId = this.geometryConfigs.push(geometryConfig) - 1;
1358
+ this.geometryMap.set(hash, newGeometryId);
1359
+ return newGeometryId;
1574
1360
  }
1575
- }, {
1576
- key: "getAttributeType",
1577
- value: function getAttributeType(key, attribute) {
1578
- if (key === OBJECT_ID_TYPE) {
1579
- return OBJECT_ID_TYPE;
1580
- }
1581
-
1582
- if ((0, _typeof2.default)(attribute) === STRING_TYPE) {
1583
- return STRING_TYPE;
1584
- } else if (typeof attribute === 'number') {
1585
- return Number.isInteger(attribute) ? SHORT_INT_TYPE : DOUBLE_TYPE;
1586
- }
1587
1361
 
1588
- return STRING_TYPE;
1589
- }
1590
- }, {
1591
- key: "_setupStringAttribute",
1592
- value: function _setupStringAttribute(storageAttribute) {
1593
- storageAttribute.ordering.unshift('attributeByteCounts');
1594
- storageAttribute.header.push({
1595
- property: 'attributeValuesByteCount',
1596
- valueType: 'UInt32'
1597
- });
1598
- storageAttribute.attributeValues = {
1599
- valueType: 'String',
1600
- encoding: 'UTF-8',
1601
- valuesPerElement: 1
1602
- };
1603
- storageAttribute.attributeByteCounts = {
1604
- valueType: 'UInt32',
1605
- valuesPerElement: 1
1606
- };
1607
- }
1608
- }, {
1609
- key: "_setupIdAttribute",
1610
- value: function _setupIdAttribute(storageAttribute) {
1611
- storageAttribute.attributeValues = {
1612
- valueType: 'Oid32',
1613
- valuesPerElement: 1
1614
- };
1615
- }
1616
- }, {
1617
- key: "_setupDoubleAttribute",
1618
- value: function _setupDoubleAttribute(storageAttribute) {
1619
- storageAttribute.attributeValues = {
1620
- valueType: 'Float64',
1621
- valuesPerElement: 1
1622
- };
1623
- }
1624
1362
  }, {
1625
- key: "_createFieldAttribute",
1626
- value: function _createFieldAttribute(key, fieldAttributeType) {
1627
- return {
1628
- name: key,
1629
- type: fieldAttributeType,
1630
- alias: key
1631
- };
1632
- }
1633
- }, {
1634
- key: "_convertBatchTableInfoToNodeAttributes",
1635
- value: function _convertBatchTableInfoToNodeAttributes(batchTable) {
1363
+ key: "_convertPropertyTableToNodeAttributes",
1364
+ value:
1365
+ function _convertPropertyTableToNodeAttributes(propertyTable) {
1636
1366
  var attributeIndex = 0;
1637
-
1638
- var batchTableWithObjectId = _objectSpread({
1367
+ var propertyTableWithObjectId = _objectSpread({
1639
1368
  OBJECTID: [0]
1640
- }, batchTable);
1641
-
1642
- for (var _key in batchTableWithObjectId) {
1643
- var firstAttribute = batchTableWithObjectId[_key][0];
1644
- var attributeType = this.getAttributeType(_key, firstAttribute);
1645
-
1646
- var storageAttribute = this._createdStorageAttribute(attributeIndex, _key, attributeType);
1647
-
1648
- var fieldAttributeType = this._getFieldAttributeType(attributeType);
1649
-
1650
- var fieldAttribute = this._createFieldAttribute(_key, fieldAttributeType);
1651
-
1652
- var popupInfo = this._createPopupInfo(batchTableWithObjectId);
1653
-
1369
+ }, propertyTable);
1370
+ for (var _key in propertyTableWithObjectId) {
1371
+ var firstAttribute = propertyTableWithObjectId[_key][0];
1372
+ var attributeType = (0, _featureAttributes.getAttributeType)(_key, firstAttribute);
1373
+ var storageAttribute = (0, _featureAttributes.createdStorageAttribute)(attributeIndex, _key, attributeType);
1374
+ var fieldAttributeType = (0, _featureAttributes.getFieldAttributeType)(attributeType);
1375
+ var fieldAttribute = (0, _featureAttributes.createFieldAttribute)(_key, fieldAttributeType);
1376
+ var popupInfo = (0, _featureAttributes.createPopupInfo)(propertyTableWithObjectId);
1654
1377
  this.layers0.attributeStorageInfo.push(storageAttribute);
1655
1378
  this.layers0.fields.push(fieldAttribute);
1656
1379
  this.layers0.popupInfo = popupInfo;
@@ -1658,73 +1381,22 @@ var I3SConverter = function () {
1658
1381
  attributeIndex += 1;
1659
1382
  }
1660
1383
  }
1661
- }, {
1662
- key: "_getFieldAttributeType",
1663
- value: function _getFieldAttributeType(attributeType) {
1664
- switch (attributeType) {
1665
- case OBJECT_ID_TYPE:
1666
- return 'esriFieldTypeOID';
1667
-
1668
- case STRING_TYPE:
1669
- return 'esriFieldTypeString';
1670
-
1671
- case SHORT_INT_TYPE:
1672
- return 'esriFieldTypeInteger';
1673
-
1674
- case DOUBLE_TYPE:
1675
- return 'esriFieldTypeDouble';
1676
-
1677
- default:
1678
- return 'esriFieldTypeString';
1679
- }
1680
- }
1681
- }, {
1682
- key: "_createPopupInfo",
1683
- value: function _createPopupInfo(batchTable) {
1684
- var title = '{OBJECTID}';
1685
- var mediaInfos = [];
1686
- var fieldInfos = [];
1687
- var popupElements = [];
1688
- var expressionInfos = [];
1689
-
1690
- for (var _key2 in batchTable) {
1691
- fieldInfos.push({
1692
- fieldName: _key2,
1693
- visible: true,
1694
- isEditable: false,
1695
- label: _key2
1696
- });
1697
- }
1698
1384
 
1699
- popupElements.push({
1700
- fieldInfos: fieldInfos,
1701
- type: 'fields'
1702
- });
1703
- return {
1704
- title: title,
1705
- mediaInfos: mediaInfos,
1706
- popupElements: popupElements,
1707
- fieldInfos: fieldInfos,
1708
- expressionInfos: expressionInfos
1709
- };
1710
- }
1711
1385
  }, {
1712
1386
  key: "_finishConversion",
1713
1387
  value: function () {
1714
- var _finishConversion2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee18(params) {
1388
+ var _finishConversion2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee20(params) {
1715
1389
  var _this$refinementCount, tilesCount, tilesWithAddRefineCount, addRefinementPercentage, filesSize, diff, conversionTime;
1716
-
1717
- return _regenerator.default.wrap(function _callee18$(_context18) {
1390
+ return _regenerator.default.wrap(function _callee20$(_context21) {
1718
1391
  while (1) {
1719
- switch (_context18.prev = _context18.next) {
1392
+ switch (_context21.prev = _context21.next) {
1720
1393
  case 0:
1721
1394
  _this$refinementCount = this.refinementCounter, tilesCount = _this$refinementCount.tilesCount, tilesWithAddRefineCount = _this$refinementCount.tilesWithAddRefineCount;
1722
1395
  addRefinementPercentage = tilesWithAddRefineCount ? tilesWithAddRefineCount / tilesCount * 100 : 0;
1723
- _context18.next = 4;
1396
+ _context21.next = 4;
1724
1397
  return (0, _statisticUtills.calculateFilesSize)(params);
1725
-
1726
1398
  case 4:
1727
- filesSize = _context18.sent;
1399
+ filesSize = _context21.sent;
1728
1400
  diff = _process.default.hrtime(this.conversionStartTime);
1729
1401
  conversionTime = (0, _statisticUtills.timeConverter)(diff);
1730
1402
  console.log("------------------------------------------------");
@@ -1734,118 +1406,101 @@ var I3SConverter = function () {
1734
1406
  console.log("File(s) size: ", filesSize, ' bytes');
1735
1407
  console.log("Percentage of tiles with \"ADD\" refinement type:", addRefinementPercentage, '%');
1736
1408
  console.log("------------------------------------------------");
1737
-
1738
1409
  case 14:
1739
1410
  case "end":
1740
- return _context18.stop();
1411
+ return _context21.stop();
1741
1412
  }
1742
1413
  }
1743
- }, _callee18, this);
1414
+ }, _callee20, this);
1744
1415
  }));
1745
-
1746
- function _finishConversion(_x39) {
1416
+ function _finishConversion(_x41) {
1747
1417
  return _finishConversion2.apply(this, arguments);
1748
1418
  }
1749
-
1750
1419
  return _finishConversion;
1751
1420
  }()
1752
1421
  }, {
1753
1422
  key: "_fetchPreloadOptions",
1754
1423
  value: function () {
1755
- var _fetchPreloadOptions2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee19() {
1424
+ var _fetchPreloadOptions2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee21() {
1756
1425
  var options, preloadOptions;
1757
- return _regenerator.default.wrap(function _callee19$(_context19) {
1426
+ return _regenerator.default.wrap(function _callee21$(_context22) {
1758
1427
  while (1) {
1759
- switch (_context19.prev = _context19.next) {
1428
+ switch (_context22.prev = _context22.next) {
1760
1429
  case 0:
1761
1430
  if (this.Loader.preload) {
1762
- _context19.next = 2;
1431
+ _context22.next = 2;
1763
1432
  break;
1764
1433
  }
1765
-
1766
- return _context19.abrupt("return", {});
1767
-
1434
+ return _context22.abrupt("return", {});
1768
1435
  case 2:
1769
1436
  options = {
1770
1437
  'cesium-ion': {
1771
1438
  accessToken: this.options.token || ION_DEFAULT_TOKEN
1772
1439
  }
1773
1440
  };
1774
- _context19.next = 5;
1441
+ _context22.next = 5;
1775
1442
  return this.Loader.preload(this.options.inputUrl, options);
1776
-
1777
1443
  case 5:
1778
- preloadOptions = _context19.sent;
1444
+ preloadOptions = _context22.sent;
1779
1445
  this.refreshTokenTime = _process.default.hrtime();
1780
- return _context19.abrupt("return", _objectSpread(_objectSpread({}, options), preloadOptions));
1781
-
1446
+ return _context22.abrupt("return", _objectSpread(_objectSpread({}, options), preloadOptions));
1782
1447
  case 8:
1783
1448
  case "end":
1784
- return _context19.stop();
1449
+ return _context22.stop();
1785
1450
  }
1786
1451
  }
1787
- }, _callee19, this);
1452
+ }, _callee21, this);
1788
1453
  }));
1789
-
1790
1454
  function _fetchPreloadOptions() {
1791
1455
  return _fetchPreloadOptions2.apply(this, arguments);
1792
1456
  }
1793
-
1794
1457
  return _fetchPreloadOptions;
1795
1458
  }()
1796
1459
  }, {
1797
1460
  key: "_updateTilesetOptions",
1798
1461
  value: function () {
1799
- var _updateTilesetOptions2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee20() {
1462
+ var _updateTilesetOptions2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee22() {
1800
1463
  var diff, preloadOptions;
1801
- return _regenerator.default.wrap(function _callee20$(_context20) {
1464
+ return _regenerator.default.wrap(function _callee22$(_context23) {
1802
1465
  while (1) {
1803
- switch (_context20.prev = _context20.next) {
1466
+ switch (_context23.prev = _context23.next) {
1804
1467
  case 0:
1805
1468
  diff = _process.default.hrtime(this.refreshTokenTime);
1806
-
1807
1469
  if (!(diff[0] < REFRESH_TOKEN_TIMEOUT)) {
1808
- _context20.next = 3;
1470
+ _context23.next = 3;
1809
1471
  break;
1810
1472
  }
1811
-
1812
- return _context20.abrupt("return");
1813
-
1473
+ return _context23.abrupt("return");
1814
1474
  case 3:
1815
1475
  this.refreshTokenTime = _process.default.hrtime();
1816
- _context20.next = 6;
1476
+ _context23.next = 6;
1817
1477
  return this._fetchPreloadOptions();
1818
-
1819
1478
  case 6:
1820
- preloadOptions = _context20.sent;
1479
+ preloadOptions = _context23.sent;
1821
1480
  this.sourceTileset.options = _objectSpread(_objectSpread({}, this.sourceTileset.options), preloadOptions);
1822
-
1823
1481
  if (preloadOptions.headers) {
1824
1482
  this.sourceTileset.loadOptions.fetch = _objectSpread(_objectSpread({}, this.sourceTileset.loadOptions.fetch), {}, {
1825
1483
  headers: preloadOptions.headers
1826
1484
  });
1827
1485
  console.log('Authorization Bearer token has been updated');
1828
1486
  }
1829
-
1830
1487
  case 9:
1831
1488
  case "end":
1832
- return _context20.stop();
1489
+ return _context23.stop();
1833
1490
  }
1834
1491
  }
1835
- }, _callee20, this);
1492
+ }, _callee22, this);
1836
1493
  }));
1837
-
1838
1494
  function _updateTilesetOptions() {
1839
1495
  return _updateTilesetOptions2.apply(this, arguments);
1840
1496
  }
1841
-
1842
1497
  return _updateTilesetOptions;
1843
1498
  }()
1844
1499
  }, {
1845
1500
  key: "_checkAddRefinementTypeForTile",
1846
- value: function _checkAddRefinementTypeForTile(tile) {
1501
+ value:
1502
+ function _checkAddRefinementTypeForTile(tile) {
1847
1503
  var ADD_TILE_REFINEMENT = 1;
1848
-
1849
1504
  if (tile.refine === ADD_TILE_REFINEMENT) {
1850
1505
  this.refinementCounter.tilesWithAddRefineCount += 1;
1851
1506
  console.warn('This tile uses "ADD" type of refinement');
@@ -1855,92 +1510,76 @@ var I3SConverter = function () {
1855
1510
  }
1856
1511
  }, {
1857
1512
  key: "isContentSupported",
1858
- value: function isContentSupported(sourceRootTile) {
1513
+ value:
1514
+ function isContentSupported(sourceRootTile) {
1859
1515
  var _sourceRootTile$conte;
1860
-
1861
1516
  return ['b3dm', 'glTF'].includes(sourceRootTile === null || sourceRootTile === void 0 ? void 0 : (_sourceRootTile$conte = sourceRootTile.content) === null || _sourceRootTile$conte === void 0 ? void 0 : _sourceRootTile$conte.type);
1862
1517
  }
1863
1518
  }, {
1864
1519
  key: "loadWorkers",
1865
1520
  value: function () {
1866
- var _loadWorkers = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee21() {
1521
+ var _loadWorkers = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee23() {
1867
1522
  var url, _sourceResponse, _source, _url, _sourceResponse2, _source2, i3sAttributesWorkerUrl, sourceResponse, source;
1868
-
1869
- return _regenerator.default.wrap(function _callee21$(_context21) {
1523
+ return _regenerator.default.wrap(function _callee23$(_context24) {
1870
1524
  while (1) {
1871
- switch (_context21.prev = _context21.next) {
1525
+ switch (_context24.prev = _context24.next) {
1872
1526
  case 0:
1873
1527
  console.log("Loading workers source...");
1874
-
1875
1528
  if (!this.options.draco) {
1876
- _context21.next = 10;
1529
+ _context24.next = 10;
1877
1530
  break;
1878
1531
  }
1879
-
1880
1532
  url = (0, _workerUtils.getWorkerURL)(_draco.DracoWriterWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1881
- _context21.next = 5;
1533
+ _context24.next = 5;
1882
1534
  return (0, _core.fetchFile)(url);
1883
-
1884
1535
  case 5:
1885
- _sourceResponse = _context21.sent;
1886
- _context21.next = 8;
1536
+ _sourceResponse = _context24.sent;
1537
+ _context24.next = 8;
1887
1538
  return _sourceResponse.text();
1888
-
1889
1539
  case 8:
1890
- _source = _context21.sent;
1540
+ _source = _context24.sent;
1891
1541
  this.workerSource.draco = _source;
1892
-
1893
1542
  case 10:
1894
1543
  if (!this.generateTextures) {
1895
- _context21.next = 19;
1544
+ _context24.next = 19;
1896
1545
  break;
1897
1546
  }
1898
-
1899
1547
  _url = (0, _workerUtils.getWorkerURL)(_textures.KTX2BasisWriterWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1900
- _context21.next = 14;
1548
+ _context24.next = 14;
1901
1549
  return (0, _core.fetchFile)(_url);
1902
-
1903
1550
  case 14:
1904
- _sourceResponse2 = _context21.sent;
1905
- _context21.next = 17;
1551
+ _sourceResponse2 = _context24.sent;
1552
+ _context24.next = 17;
1906
1553
  return _sourceResponse2.text();
1907
-
1908
1554
  case 17:
1909
- _source2 = _context21.sent;
1555
+ _source2 = _context24.sent;
1910
1556
  this.workerSource.ktx2 = _source2;
1911
-
1912
1557
  case 19:
1913
1558
  i3sAttributesWorkerUrl = (0, _workerUtils.getWorkerURL)(_i3sAttributesWorker.I3SAttributesWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1914
- _context21.next = 22;
1559
+ _context24.next = 22;
1915
1560
  return (0, _core.fetchFile)(i3sAttributesWorkerUrl);
1916
-
1917
1561
  case 22:
1918
- sourceResponse = _context21.sent;
1919
- _context21.next = 25;
1562
+ sourceResponse = _context24.sent;
1563
+ _context24.next = 25;
1920
1564
  return sourceResponse.text();
1921
-
1922
1565
  case 25:
1923
- source = _context21.sent;
1566
+ source = _context24.sent;
1924
1567
  this.workerSource.I3SAttributes = source;
1925
1568
  console.log("Loading workers source completed!");
1926
-
1927
1569
  case 28:
1928
1570
  case "end":
1929
- return _context21.stop();
1571
+ return _context24.stop();
1930
1572
  }
1931
1573
  }
1932
- }, _callee21, this);
1574
+ }, _callee23, this);
1933
1575
  }));
1934
-
1935
1576
  function loadWorkers() {
1936
1577
  return _loadWorkers.apply(this, arguments);
1937
1578
  }
1938
-
1939
1579
  return loadWorkers;
1940
1580
  }()
1941
1581
  }]);
1942
1582
  return I3SConverter;
1943
1583
  }();
1944
-
1945
1584
  exports.default = I3SConverter;
1946
1585
  //# sourceMappingURL=i3s-converter.js.map