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

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 +61034 -64112
  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 +507 -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 +794 -1125
  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 +197 -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 +235 -508
  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 +91 -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 +242 -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 +200 -92
  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 +234 -420
  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 +306 -0
  242. package/src/i3s-converter/helpers/node-pages.ts +222 -109
  243. package/src/i3s-converter/i3s-converter.ts +279 -499
  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,390 @@ 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, promises, _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
+ promises = [];
620
+ _iterator3 = _createForOfIteratorHelper(sourceTiles);
621
+ _context9.prev = 5;
622
+ _iterator3.s();
623
+ case 7:
624
+ if ((_step3 = _iterator3.n()).done) {
625
+ _context9.next = 27;
765
626
  break;
766
627
  }
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;
628
+ sourceTile = _step3.value;
629
+ if (!(sourceTile.type === 'json')) {
630
+ _context9.next = 18;
776
631
  break;
777
632
  }
778
-
779
- neighbor = _step4.value;
780
-
781
- if (!(node.id === neighbor.id)) {
782
- _context9.next = 16;
633
+ if (!this.options.instantNodeWriting) {
634
+ _context9.next = 15;
783
635
  break;
784
636
  }
785
-
786
- return _context9.abrupt("continue", 17);
787
-
788
- case 16:
789
- if (node.neighbors) {
790
- node.neighbors.push(_objectSpread({}, neighbor));
791
- }
792
-
793
- case 17:
794
- _context9.next = 12;
637
+ _context9.next = 13;
638
+ return this.convertNestedTileset({
639
+ parentNode: parentNode,
640
+ sourceTile: sourceTile,
641
+ level: level
642
+ });
643
+ case 13:
644
+ _context9.next = 16;
795
645
  break;
796
-
797
- case 19:
646
+ case 15:
647
+ promises.push(this.convertNestedTileset({
648
+ parentNode: parentNode,
649
+ sourceTile: sourceTile,
650
+ level: level
651
+ }));
652
+ case 16:
798
653
  _context9.next = 24;
799
654
  break;
800
-
655
+ case 18:
656
+ if (!this.options.instantNodeWriting) {
657
+ _context9.next = 23;
658
+ break;
659
+ }
660
+ _context9.next = 21;
661
+ return this.convertNode({
662
+ parentNode: parentNode,
663
+ sourceTile: sourceTile,
664
+ level: level
665
+ });
801
666
  case 21:
802
- _context9.prev = 21;
803
- _context9.t0 = _context9["catch"](10);
804
-
805
- _iterator4.e(_context9.t0);
806
-
667
+ _context9.next = 24;
668
+ break;
669
+ case 23:
670
+ promises.push(this.convertNode({
671
+ parentNode: parentNode,
672
+ sourceTile: sourceTile,
673
+ level: level
674
+ }));
807
675
  case 24:
808
- _context9.prev = 24;
809
-
810
- _iterator4.f();
811
-
812
- return _context9.finish(24);
813
-
676
+ if (sourceTile.id) {
677
+ console.log(sourceTile.id);
678
+ }
679
+ case 25:
680
+ _context9.next = 7;
681
+ break;
814
682
  case 27:
815
- _context9.next = 31;
683
+ _context9.next = 32;
816
684
  break;
817
-
818
685
  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;
835
- 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
-
686
+ _context9.prev = 29;
687
+ _context9.t0 = _context9["catch"](5);
688
+ _iterator3.e(_context9.t0);
689
+ case 32:
690
+ _context9.prev = 32;
846
691
  _iterator3.f();
847
-
848
- return _context9.finish(41);
849
-
850
- case 44:
692
+ return _context9.finish(32);
693
+ case 35:
694
+ _context9.next = 37;
695
+ return Promise.all(promises);
696
+ case 37:
851
697
  case "end":
852
698
  return _context9.stop();
853
699
  }
854
700
  }
855
- }, _callee9, this, [[1, 38, 41, 44], [10, 21, 24, 27]]);
701
+ }, _callee9, this, [[5, 29, 32, 35]]);
856
702
  }));
857
-
858
- function _addNeighborsAndWriteFile(_x14, _x15) {
859
- return _addNeighborsAndWriteFile2.apply(this, arguments);
703
+ function _addChildren(_x11) {
704
+ return _addChildren2.apply(this, arguments);
860
705
  }
861
-
862
- return _addNeighborsAndWriteFile;
706
+ return _addChildren;
863
707
  }()
864
708
  }, {
865
709
  key: "_createNode",
866
710
  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
-
711
+ var _createNode2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee10(parentNode, sourceTile, level) {
712
+ var _this$layers, _this$layers$attribut;
713
+ var boundingVolumes, propertyTable, resourcesData, nodes, nodeIds, nodesInPage, emptyResources, _iterator4, _step4, resources, lodSelection, maxScreenThresholdSQ, nodeInPage, nodeData, node, _console;
872
714
  return _regenerator.default.wrap(function _callee10$(_context10) {
873
715
  while (1) {
874
716
  switch (_context10.prev = _context10.next) {
875
717
  case 0:
876
- if (this.validate) {
877
- this._checkAddRefinementTypeForTile(sourceTile);
878
- }
879
-
718
+ this._checkAddRefinementTypeForTile(sourceTile);
880
719
  _context10.next = 3;
881
720
  return this._updateTilesetOptions();
882
-
883
721
  case 3:
884
722
  _context10.next = 5;
885
723
  return this.sourceTileset._loadTile(sourceTile);
886
-
887
724
  case 5:
888
725
  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);
726
+ propertyTable = (0, _geometryConverter.getPropertyTable)(sourceTile.content);
727
+ 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)) {
728
+ this._convertPropertyTableToNodeAttributes(propertyTable);
893
729
  }
894
-
895
730
  _context10.next = 10;
896
- return this._convertResources(sourceTile);
897
-
731
+ return this._convertResources(sourceTile, parentNode.inPageId, propertyTable);
898
732
  case 10:
899
733
  resourcesData = _context10.sent;
900
734
  nodes = [];
735
+ nodeIds = [];
901
736
  nodesInPage = [];
902
737
  emptyResources = {
903
738
  geometry: null,
904
739
  compressedGeometry: null,
905
740
  texture: null,
741
+ hasUvRegions: false,
906
742
  sharedResources: null,
907
743
  meshMaterial: null,
908
744
  vertexCount: null,
@@ -910,439 +746,415 @@ var I3SConverter = function () {
910
746
  featureCount: null,
911
747
  boundingVolumes: null
912
748
  };
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;
749
+ _iterator4 = _createForOfIteratorHelper(resourcesData || [emptyResources]);
750
+ _context10.prev = 16;
751
+ _iterator4.s();
752
+ case 18:
753
+ if ((_step4 = _iterator4.n()).done) {
754
+ _context10.next = 42;
921
755
  break;
922
756
  }
923
-
924
- resources = _step5.value;
757
+ resources = _step4.value;
925
758
  this.layersHasTexture = this.layersHasTexture || Boolean(resources.texture);
926
-
927
759
  if (this.generateBoundingVolumes && resources.boundingVolumes) {
928
760
  boundingVolumes = resources.boundingVolumes;
929
761
  }
930
-
931
762
  lodSelection = (0, _lodConversionUtils.convertGeometricErrorToScreenThreshold)(sourceTile, boundingVolumes);
932
763
  maxScreenThresholdSQ = lodSelection.find(function (val) {
933
764
  return val.metricType === 'maxScreenThresholdSQ';
934
765
  }) || {
935
766
  maxError: 0
936
767
  };
937
- nodeInPage = this._createNodeInNodePages(maxScreenThresholdSQ, boundingVolumes, sourceTile, parentId, resources);
938
- node = this._createNodeIndexDocument(parentTile, boundingVolumes, lodSelection, nodeInPage, resources);
939
-
768
+ _context10.next = 26;
769
+ return this._updateNodeInNodePages(maxScreenThresholdSQ, boundingVolumes, sourceTile, parentNode.inPageId, resources);
770
+ case 26:
771
+ nodeInPage = _context10.sent;
772
+ _context10.next = 29;
773
+ return _nodeIndexDocument.NodeIndexDocument.createNodeIndexDocument(parentNode, boundingVolumes, lodSelection, nodeInPage, resources);
774
+ case 29:
775
+ nodeData = _context10.sent;
776
+ _context10.next = 32;
777
+ return new _nodeIndexDocument.NodeIndexDocument(nodeInPage.index, this).addData(nodeData);
778
+ case 32:
779
+ node = _context10.sent;
780
+ nodes.push(node);
940
781
  if (!nodeInPage.mesh) {
941
- _context10.next = 28;
782
+ _context10.next = 37;
942
783
  break;
943
784
  }
944
-
945
- _context10.next = 28;
946
- return this._writeResources(resources, node.path);
947
-
948
- case 28:
785
+ _context10.next = 37;
786
+ return this._writeResources(resources, node.id);
787
+ case 37:
949
788
  if (this.validate) {
950
- this.boundingVolumeWarnings = (0, _nodeDebug.validateNodeBoundingVolumes)(node);
951
-
789
+ this.boundingVolumeWarnings = (0, _nodeDebug.validateNodeBoundingVolumes)(nodeData);
952
790
  if (this.boundingVolumeWarnings && this.boundingVolumeWarnings.length) {
953
791
  (_console = console).warn.apply(_console, ['Bounding Volume Warnings: '].concat((0, _toConsumableArray2.default)(this.boundingVolumeWarnings)));
954
792
  }
955
793
  }
956
794
 
957
- nodes.push(node);
795
+ nodeIds.push(nodeInPage.index);
958
796
  nodesInPage.push(nodeInPage);
959
-
960
- case 31:
961
- _context10.next = 17;
797
+ case 40:
798
+ _context10.next = 18;
962
799
  break;
963
-
964
- case 33:
965
- _context10.next = 38;
800
+ case 42:
801
+ _context10.next = 47;
966
802
  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:
803
+ case 44:
804
+ _context10.prev = 44;
805
+ _context10.t0 = _context10["catch"](16);
806
+ _iterator4.e(_context10.t0);
807
+ case 47:
808
+ _context10.prev = 47;
809
+ _iterator4.f();
810
+ return _context10.finish(47);
811
+ case 50:
982
812
  sourceTile.unloadContent();
983
- _context10.next = 44;
813
+ _context10.next = 53;
984
814
  return this._addChildrenWithNeighborsAndWriteFile({
985
815
  parentNode: nodes[0],
986
816
  sourceTiles: sourceTile.children,
987
- parentId: nodesInPage[0].index,
988
817
  level: level + 1
989
818
  });
990
-
991
- case 44:
819
+ case 53:
992
820
  return _context10.abrupt("return", nodes);
993
-
994
- case 45:
821
+ case 54:
995
822
  case "end":
996
823
  return _context10.stop();
997
824
  }
998
825
  }
999
- }, _callee10, this, [[15, 35, 38, 41]]);
826
+ }, _callee10, this, [[16, 44, 47, 50]]);
1000
827
  }));
1001
-
1002
- function _createNode(_x16, _x17, _x18, _x19) {
828
+ function _createNode(_x12, _x13, _x14) {
1003
829
  return _createNode2.apply(this, arguments);
1004
830
  }
1005
-
1006
831
  return _createNode;
1007
832
  }()
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
833
  }, {
1020
834
  key: "_convertResources",
1021
835
  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) {
836
+ var _convertResources2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee12(sourceTile, parentId, propertyTable) {
837
+ var _this3 = this,
838
+ _this$layers2;
839
+ var draftObb, resourcesData;
840
+ return _regenerator.default.wrap(function _callee12$(_context12) {
1027
841
  while (1) {
1028
- switch (_context11.prev = _context11.next) {
842
+ switch (_context12.prev = _context12.next) {
1029
843
  case 0:
1030
844
  if (this.isContentSupported(sourceTile)) {
1031
- _context11.next = 2;
845
+ _context12.next = 2;
1032
846
  break;
1033
847
  }
1034
-
1035
- return _context11.abrupt("return", null);
1036
-
848
+ return _context12.abrupt("return", null);
1037
849
  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:
850
+ draftObb = {
851
+ center: [],
852
+ halfSize: [],
853
+ quaternion: []
854
+ };
855
+ _context12.next = 5;
856
+ return (0, _geometryConverter.default)(sourceTile.content, (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee11() {
857
+ return _regenerator.default.wrap(function _callee11$(_context11) {
858
+ while (1) {
859
+ switch (_context11.prev = _context11.next) {
860
+ case 0:
861
+ _context11.next = 2;
862
+ return _this3.nodePages.push({
863
+ index: 0,
864
+ obb: draftObb
865
+ }, parentId);
866
+ case 2:
867
+ return _context11.abrupt("return", _context11.sent.index);
868
+ case 3:
869
+ case "end":
870
+ return _context11.stop();
871
+ }
872
+ }
873
+ }, _callee11);
874
+ })), 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);
875
+ case 5:
876
+ resourcesData = _context12.sent;
877
+ return _context12.abrupt("return", resourcesData);
878
+ case 7:
1046
879
  case "end":
1047
- return _context11.stop();
880
+ return _context12.stop();
1048
881
  }
1049
882
  }
1050
- }, _callee11, this);
883
+ }, _callee12, this);
1051
884
  }));
1052
-
1053
- function _convertResources(_x20) {
885
+ function _convertResources(_x15, _x16, _x17) {
1054
886
  return _convertResources2.apply(this, arguments);
1055
887
  }
1056
-
1057
888
  return _convertResources;
1058
889
  }()
1059
890
  }, {
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
- });
891
+ key: "_updateNodeInNodePages",
892
+ value: function () {
893
+ var _updateNodeInNodePages2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee13(maxScreenThresholdSQ, boundingVolumes, sourceTile, parentId, resources) {
894
+ var meshMaterial, texture, vertexCount, featureCount, geometry, hasUvRegions, nodeInPage, nodeId, node, texelCountHint;
895
+ return _regenerator.default.wrap(function _callee13$(_context13) {
896
+ while (1) {
897
+ switch (_context13.prev = _context13.next) {
898
+ case 0:
899
+ meshMaterial = resources.meshMaterial, texture = resources.texture, vertexCount = resources.vertexCount, featureCount = resources.featureCount, geometry = resources.geometry, hasUvRegions = resources.hasUvRegions;
900
+ nodeInPage = {
901
+ index: 0,
902
+ lodThreshold: maxScreenThresholdSQ.maxError,
903
+ obb: boundingVolumes.obb,
904
+ children: []
905
+ };
906
+ if (geometry && this.isContentSupported(sourceTile)) {
907
+ nodeInPage.mesh = {
908
+ geometry: {
909
+ definition: this.findOrCreateGeometryDefinition(Boolean(texture), hasUvRegions),
910
+ resource: 0
911
+ },
912
+ attribute: {
913
+ resource: 0
914
+ },
915
+ material: {
916
+ definition: 0
917
+ }
918
+ };
919
+ }
920
+ nodeId = resources.nodeId;
921
+ if (nodeId) {
922
+ _context13.next = 10;
923
+ break;
924
+ }
925
+ _context13.next = 7;
926
+ return this.nodePages.push(nodeInPage, parentId);
927
+ case 7:
928
+ node = _context13.sent;
929
+ _context13.next = 13;
930
+ break;
931
+ case 10:
932
+ _context13.next = 12;
933
+ return this.nodePages.getNodeById(nodeId);
934
+ case 12:
935
+ node = _context13.sent;
936
+ case 13:
937
+ _nodePages.default.updateAll(node, nodeInPage);
938
+ if (meshMaterial) {
939
+ _nodePages.default.updateMaterialByNodeId(node, this._findOrCreateMaterial(meshMaterial));
940
+ }
941
+ if (texture) {
942
+ texelCountHint = texture.image.height * texture.image.width;
943
+ _nodePages.default.updateTexelCountHintByNodeId(node, texelCountHint);
944
+ }
945
+ if (vertexCount) {
946
+ this.vertexCounter += vertexCount;
947
+ _nodePages.default.updateVertexCountByNodeId(node, vertexCount);
948
+ }
949
+ _nodePages.default.updateNodeAttributeByNodeId(node);
950
+ if (featureCount) {
951
+ _nodePages.default.updateFeatureCountByNodeId(node, featureCount);
952
+ }
953
+ this.nodePages.saveNode(node);
954
+ return _context13.abrupt("return", node);
955
+ case 21:
956
+ case "end":
957
+ return _context13.stop();
958
+ }
1165
959
  }
1166
- }
960
+ }, _callee13, this);
961
+ }));
962
+ function _updateNodeInNodePages(_x18, _x19, _x20, _x21, _x22) {
963
+ return _updateNodeInNodePages2.apply(this, arguments);
1167
964
  }
1168
-
1169
- return node;
1170
- }
965
+ return _updateNodeInNodePages;
966
+ }()
1171
967
  }, {
1172
968
  key: "_writeResources",
1173
969
  value: function () {
1174
- var _writeResources2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee12(resources, nodePath) {
970
+ var _writeResources2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee14(resources, nodePath) {
1175
971
  var geometryBuffer, compressedGeometry, texture, sharedResources, attributes, childPath, slpkChildPath;
1176
- return _regenerator.default.wrap(function _callee12$(_context12) {
972
+ return _regenerator.default.wrap(function _callee14$(_context14) {
1177
973
  while (1) {
1178
- switch (_context12.prev = _context12.next) {
974
+ switch (_context14.prev = _context14.next) {
1179
975
  case 0:
1180
976
  geometryBuffer = resources.geometry, compressedGeometry = resources.compressedGeometry, texture = resources.texture, sharedResources = resources.sharedResources, attributes = resources.attributes;
1181
977
  childPath = (0, _path.join)(this.layers0Path, 'nodes', nodePath);
1182
978
  slpkChildPath = (0, _path.join)('nodes', nodePath);
1183
- _context12.next = 5;
979
+ _context14.next = 5;
1184
980
  return this._writeGeometries(geometryBuffer, compressedGeometry, childPath, slpkChildPath);
1185
-
1186
981
  case 5:
1187
- _context12.next = 7;
982
+ _context14.next = 7;
1188
983
  return this._writeShared(sharedResources, childPath, slpkChildPath, nodePath);
1189
-
1190
984
  case 7:
1191
- _context12.next = 9;
985
+ _context14.next = 9;
1192
986
  return this._writeTexture(texture, childPath, slpkChildPath);
1193
-
1194
987
  case 9:
1195
- _context12.next = 11;
988
+ _context14.next = 11;
1196
989
  return this._writeAttributes(attributes, childPath, slpkChildPath);
1197
-
1198
990
  case 11:
1199
991
  case "end":
1200
- return _context12.stop();
992
+ return _context14.stop();
1201
993
  }
1202
994
  }
1203
- }, _callee12, this);
995
+ }, _callee14, this);
1204
996
  }));
1205
-
1206
- function _writeResources(_x21, _x22) {
997
+ function _writeResources(_x23, _x24) {
1207
998
  return _writeResources2.apply(this, arguments);
1208
999
  }
1209
-
1210
1000
  return _writeResources;
1211
1001
  }()
1212
1002
  }, {
1213
1003
  key: "_writeGeometries",
1214
1004
  value: function () {
1215
- var _writeGeometries2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee13(geometryBuffer, compressedGeometry, childPath, slpkChildPath) {
1005
+ var _writeGeometries2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee15(geometryBuffer, compressedGeometry, childPath, slpkChildPath) {
1216
1006
  var slpkGeometryPath, geometryPath, slpkCompressedGeometryPath, compressedGeometryPath;
1217
- return _regenerator.default.wrap(function _callee13$(_context13) {
1007
+ return _regenerator.default.wrap(function _callee15$(_context15) {
1218
1008
  while (1) {
1219
- switch (_context13.prev = _context13.next) {
1009
+ switch (_context15.prev = _context15.next) {
1220
1010
  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
- });
1011
+ if (!this.options.slpk) {
1012
+ _context15.next = 6;
1013
+ break;
1232
1014
  }
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
- });
1015
+ slpkGeometryPath = (0, _path.join)(childPath, 'geometries');
1016
+ _context15.next = 4;
1017
+ return this.writeQueue.enqueue({
1018
+ archiveKey: "".concat(slpkChildPath, "/geometries/0.bin.gz"),
1019
+ writePromise: function writePromise() {
1020
+ return (0, _fileUtils.writeFileForSlpk)(slpkGeometryPath, geometryBuffer, '0.bin');
1021
+ }
1022
+ });
1023
+ case 4:
1024
+ _context15.next = 9;
1025
+ break;
1026
+ case 6:
1027
+ geometryPath = (0, _path.join)(childPath, 'geometries/0/');
1028
+ _context15.next = 9;
1029
+ return this.writeQueue.enqueue({
1030
+ writePromise: function writePromise() {
1031
+ return (0, _fileUtils.writeFile)(geometryPath, geometryBuffer, 'index.bin');
1246
1032
  }
1033
+ });
1034
+ case 9:
1035
+ if (!this.options.draco) {
1036
+ _context15.next = 19;
1037
+ break;
1247
1038
  }
1248
-
1249
- case 2:
1039
+ if (!this.options.slpk) {
1040
+ _context15.next = 16;
1041
+ break;
1042
+ }
1043
+ slpkCompressedGeometryPath = (0, _path.join)(childPath, 'geometries');
1044
+ _context15.next = 14;
1045
+ return this.writeQueue.enqueue({
1046
+ archiveKey: "".concat(slpkChildPath, "/geometries/1.bin.gz"),
1047
+ writePromise: function writePromise() {
1048
+ return (0, _fileUtils.writeFileForSlpk)(slpkCompressedGeometryPath, compressedGeometry, '1.bin');
1049
+ }
1050
+ });
1051
+ case 14:
1052
+ _context15.next = 19;
1053
+ break;
1054
+ case 16:
1055
+ compressedGeometryPath = (0, _path.join)(childPath, 'geometries/1/');
1056
+ _context15.next = 19;
1057
+ return this.writeQueue.enqueue({
1058
+ writePromise: function writePromise() {
1059
+ return (0, _fileUtils.writeFile)(compressedGeometryPath, compressedGeometry, 'index.bin');
1060
+ }
1061
+ });
1062
+ case 19:
1250
1063
  case "end":
1251
- return _context13.stop();
1064
+ return _context15.stop();
1252
1065
  }
1253
1066
  }
1254
- }, _callee13, this);
1067
+ }, _callee15, this);
1255
1068
  }));
1256
-
1257
- function _writeGeometries(_x23, _x24, _x25, _x26) {
1069
+ function _writeGeometries(_x25, _x26, _x27, _x28) {
1258
1070
  return _writeGeometries2.apply(this, arguments);
1259
1071
  }
1260
-
1261
1072
  return _writeGeometries;
1262
1073
  }()
1263
1074
  }, {
1264
1075
  key: "_writeShared",
1265
1076
  value: function () {
1266
- var _writeShared2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee14(sharedResources, childPath, slpkChildPath, nodePath) {
1077
+ var _writeShared2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee16(sharedResources, childPath, slpkChildPath, nodePath) {
1267
1078
  var sharedData, sharedDataStr, slpkSharedPath, sharedPath;
1268
- return _regenerator.default.wrap(function _callee14$(_context14) {
1079
+ return _regenerator.default.wrap(function _callee16$(_context16) {
1269
1080
  while (1) {
1270
- switch (_context14.prev = _context14.next) {
1081
+ switch (_context16.prev = _context16.next) {
1271
1082
  case 0:
1272
1083
  if (sharedResources) {
1273
- _context14.next = 2;
1084
+ _context16.next = 2;
1274
1085
  break;
1275
1086
  }
1276
-
1277
- return _context14.abrupt("return");
1278
-
1087
+ return _context16.abrupt("return");
1279
1088
  case 2:
1280
1089
  sharedResources.nodePath = nodePath;
1281
1090
  sharedData = (0, _jsonMapTransform.default)(sharedResources, (0, _sharedResources.SHARED_RESOURCES)());
1282
1091
  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
- });
1092
+ if (!this.options.slpk) {
1093
+ _context16.next = 11;
1094
+ break;
1295
1095
  }
1296
-
1297
- case 6:
1096
+ slpkSharedPath = (0, _path.join)(childPath, 'shared');
1097
+ _context16.next = 9;
1098
+ return this.writeQueue.enqueue({
1099
+ archiveKey: "".concat(slpkChildPath, "/shared/sharedResource.json.gz"),
1100
+ writePromise: function writePromise() {
1101
+ return (0, _fileUtils.writeFileForSlpk)(slpkSharedPath, sharedDataStr, 'sharedResource.json');
1102
+ }
1103
+ });
1104
+ case 9:
1105
+ _context16.next = 14;
1106
+ break;
1107
+ case 11:
1108
+ sharedPath = (0, _path.join)(childPath, 'shared/');
1109
+ _context16.next = 14;
1110
+ return this.writeQueue.enqueue({
1111
+ writePromise: function writePromise() {
1112
+ return (0, _fileUtils.writeFile)(sharedPath, sharedDataStr);
1113
+ }
1114
+ });
1115
+ case 14:
1298
1116
  case "end":
1299
- return _context14.stop();
1117
+ return _context16.stop();
1300
1118
  }
1301
1119
  }
1302
- }, _callee14, this);
1120
+ }, _callee16, this);
1303
1121
  }));
1304
-
1305
- function _writeShared(_x27, _x28, _x29, _x30) {
1122
+ function _writeShared(_x29, _x30, _x31, _x32) {
1306
1123
  return _writeShared2.apply(this, arguments);
1307
1124
  }
1308
-
1309
1125
  return _writeShared;
1310
1126
  }()
1311
1127
  }, {
1312
1128
  key: "_writeTexture",
1313
1129
  value: function () {
1314
- var _writeTexture2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee15(texture, childPath, slpkChildPath) {
1130
+ var _writeTexture2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee17(texture, childPath, slpkChildPath) {
1315
1131
  var format, formats, textureData, copyArrayBuffer, arrayToEncode, ktx2TextureData, decodedFromKTX2TextureData;
1316
- return _regenerator.default.wrap(function _callee15$(_context15) {
1132
+ return _regenerator.default.wrap(function _callee17$(_context17) {
1317
1133
  while (1) {
1318
- switch (_context15.prev = _context15.next) {
1134
+ switch (_context17.prev = _context17.next) {
1319
1135
  case 0:
1320
1136
  if (!texture) {
1321
- _context15.next = 27;
1137
+ _context17.next = 27;
1322
1138
  break;
1323
1139
  }
1324
-
1325
1140
  format = this._getFormatByMimeType(texture === null || texture === void 0 ? void 0 : texture.mimeType);
1326
1141
  formats = [];
1327
1142
  textureData = texture.bufferView.data;
1328
- _context15.t0 = format;
1329
- _context15.next = _context15.t0 === 'jpg' ? 7 : _context15.t0 === 'png' ? 7 : _context15.t0 === 'ktx2' ? 18 : 26;
1143
+ _context17.t0 = format;
1144
+ _context17.next = _context17.t0 === 'jpg' ? 7 : _context17.t0 === 'png' ? 7 : _context17.t0 === 'ktx2' ? 18 : 26;
1330
1145
  break;
1331
-
1332
1146
  case 7:
1333
1147
  formats.push({
1334
1148
  name: '0',
1335
1149
  format: format
1336
1150
  });
1337
- _context15.next = 10;
1151
+ _context17.next = 10;
1338
1152
  return this.writeTextureFile(textureData, '0', format, childPath, slpkChildPath);
1339
-
1340
1153
  case 10:
1341
1154
  if (!this.generateTextures) {
1342
- _context15.next = 17;
1155
+ _context17.next = 17;
1343
1156
  break;
1344
1157
  }
1345
-
1346
1158
  formats.push({
1347
1159
  name: '1',
1348
1160
  format: 'ktx2'
@@ -1356,301 +1168,242 @@ var I3SConverter = function () {
1356
1168
  reuseWorkers: true,
1357
1169
  _nodeWorkers: true
1358
1170
  }));
1359
- _context15.next = 17;
1171
+ _context17.next = 17;
1360
1172
  return this.writeTextureFile(ktx2TextureData, '1', 'ktx2', childPath, slpkChildPath);
1361
-
1362
1173
  case 17:
1363
- return _context15.abrupt("break", 26);
1364
-
1174
+ return _context17.abrupt("break", 26);
1365
1175
  case 18:
1366
1176
  formats.push({
1367
1177
  name: '1',
1368
1178
  format: format
1369
1179
  });
1370
- _context15.next = 21;
1180
+ _context17.next = 21;
1371
1181
  return this.writeTextureFile(textureData, '1', format, childPath, slpkChildPath);
1372
-
1373
1182
  case 21:
1374
1183
  if (!this.generateTextures) {
1375
- _context15.next = 26;
1184
+ _context17.next = 26;
1376
1185
  break;
1377
1186
  }
1378
-
1379
1187
  formats.push({
1380
1188
  name: '0',
1381
1189
  format: 'jpg'
1382
1190
  });
1383
1191
  decodedFromKTX2TextureData = (0, _core.encode)(texture.image.data[0], _images.ImageWriter);
1384
- _context15.next = 26;
1192
+ _context17.next = 26;
1385
1193
  return this.writeTextureFile(decodedFromKTX2TextureData, '0', 'jpg', childPath, slpkChildPath);
1386
-
1387
1194
  case 26:
1388
1195
  if (!this.layers0.textureSetDefinitions.length) {
1389
1196
  this.layers0.textureSetDefinitions.push({
1390
1197
  formats: formats
1391
1198
  });
1199
+ this.layers0.textureSetDefinitions.push({
1200
+ formats: formats,
1201
+ atlas: true
1202
+ });
1392
1203
  }
1393
-
1394
1204
  case 27:
1395
1205
  case "end":
1396
- return _context15.stop();
1206
+ return _context17.stop();
1397
1207
  }
1398
1208
  }
1399
- }, _callee15, this);
1209
+ }, _callee17, this);
1400
1210
  }));
1401
-
1402
- function _writeTexture(_x31, _x32, _x33) {
1211
+ function _writeTexture(_x33, _x34, _x35) {
1403
1212
  return _writeTexture2.apply(this, arguments);
1404
1213
  }
1405
-
1406
1214
  return _writeTexture;
1407
1215
  }()
1408
1216
  }, {
1409
1217
  key: "writeTextureFile",
1410
1218
  value: function () {
1411
- var _writeTextureFile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee16(textureData, name, format, childPath, slpkChildPath) {
1219
+ var _writeTextureFile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee18(textureData, name, format, childPath, slpkChildPath) {
1412
1220
  var slpkTexturePath, compress, texturePath;
1413
- return _regenerator.default.wrap(function _callee16$(_context16) {
1221
+ return _regenerator.default.wrap(function _callee18$(_context18) {
1414
1222
  while (1) {
1415
- switch (_context16.prev = _context16.next) {
1223
+ switch (_context18.prev = _context18.next) {
1416
1224
  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
- });
1225
+ if (!this.options.slpk) {
1226
+ _context18.next = 7;
1227
+ break;
1429
1228
  }
1430
-
1431
- case 1:
1229
+ slpkTexturePath = (0, _path.join)(childPath, 'textures');
1230
+ compress = false;
1231
+ _context18.next = 5;
1232
+ return this.writeQueue.enqueue({
1233
+ archiveKey: "".concat(slpkChildPath, "/textures/").concat(name, ".").concat(format),
1234
+ writePromise: function writePromise() {
1235
+ return (0, _fileUtils.writeFileForSlpk)(slpkTexturePath, textureData, "".concat(name, ".").concat(format), compress);
1236
+ }
1237
+ });
1238
+ case 5:
1239
+ _context18.next = 10;
1240
+ break;
1241
+ case 7:
1242
+ texturePath = (0, _path.join)(childPath, "textures/".concat(name, "/"));
1243
+ _context18.next = 10;
1244
+ return this.writeQueue.enqueue({
1245
+ writePromise: function writePromise() {
1246
+ return (0, _fileUtils.writeFile)(texturePath, textureData, "index.".concat(format));
1247
+ }
1248
+ });
1249
+ case 10:
1432
1250
  case "end":
1433
- return _context16.stop();
1251
+ return _context18.stop();
1434
1252
  }
1435
1253
  }
1436
- }, _callee16, this);
1254
+ }, _callee18, this);
1437
1255
  }));
1438
-
1439
- function writeTextureFile(_x34, _x35, _x36, _x37, _x38) {
1256
+ function writeTextureFile(_x36, _x37, _x38, _x39, _x40) {
1440
1257
  return _writeTextureFile.apply(this, arguments);
1441
1258
  }
1442
-
1443
1259
  return writeTextureFile;
1444
1260
  }()
1445
1261
  }, {
1446
1262
  key: "_writeAttributes",
1447
1263
  value: function () {
1448
- var _writeAttributes2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee17() {
1449
- var _this$layers4, _this$layers4$attribu;
1450
-
1264
+ var _writeAttributes2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee19() {
1265
+ var _this$layers3,
1266
+ _this$layers3$attribu,
1267
+ _this4 = this;
1451
1268
  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) {
1269
+ childPath,
1270
+ slpkChildPath,
1271
+ _loop,
1272
+ index,
1273
+ _args20 = arguments;
1274
+ return _regenerator.default.wrap(function _callee19$(_context20) {
1461
1275
  while (1) {
1462
- switch (_context17.prev = _context17.next) {
1276
+ switch (_context20.prev = _context20.next) {
1463
1277
  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
- });
1278
+ attributes = _args20.length > 0 && _args20[0] !== undefined ? _args20[0] : [];
1279
+ childPath = _args20.length > 1 ? _args20[1] : undefined;
1280
+ slpkChildPath = _args20.length > 2 ? _args20[2] : undefined;
1281
+ 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)) {
1282
+ _context20.next = 11;
1283
+ break;
1284
+ }
1285
+ _loop = _regenerator.default.mark(function _loop(index) {
1286
+ var folderName, fileBuffer, slpkAttributesPath, attributesPath;
1287
+ return _regenerator.default.wrap(function _loop$(_context19) {
1288
+ while (1) {
1289
+ switch (_context19.prev = _context19.next) {
1290
+ case 0:
1291
+ folderName = _this4.layers0.attributeStorageInfo[index].key;
1292
+ fileBuffer = new Uint8Array(attributes[index]);
1293
+ if (!_this4.options.slpk) {
1294
+ _context19.next = 8;
1295
+ break;
1296
+ }
1297
+ slpkAttributesPath = (0, _path.join)(childPath, 'attributes', folderName);
1298
+ _context19.next = 6;
1299
+ return _this4.writeQueue.enqueue({
1300
+ archiveKey: "".concat(slpkChildPath, "/attributes/").concat(folderName, ".bin.gz"),
1301
+ writePromise: function writePromise() {
1302
+ return (0, _fileUtils.writeFileForSlpk)(slpkAttributesPath, fileBuffer, '0.bin');
1303
+ }
1304
+ });
1305
+ case 6:
1306
+ _context19.next = 11;
1307
+ break;
1308
+ case 8:
1309
+ attributesPath = (0, _path.join)(childPath, "attributes/".concat(folderName, "/0"));
1310
+ _context19.next = 11;
1311
+ return _this4.writeQueue.enqueue({
1312
+ writePromise: function writePromise() {
1313
+ return (0, _fileUtils.writeFile)(attributesPath, fileBuffer, 'index.bin');
1314
+ }
1315
+ });
1316
+ case 11:
1317
+ case "end":
1318
+ return _context19.stop();
1319
+ }
1484
1320
  }
1485
- }
1321
+ }, _loop);
1322
+ });
1323
+ index = 0;
1324
+ case 6:
1325
+ if (!(index < attributes.length)) {
1326
+ _context20.next = 11;
1327
+ break;
1486
1328
  }
1487
-
1488
- case 4:
1329
+ return _context20.delegateYield(_loop(index), "t0", 8);
1330
+ case 8:
1331
+ index++;
1332
+ _context20.next = 6;
1333
+ break;
1334
+ case 11:
1489
1335
  case "end":
1490
- return _context17.stop();
1336
+ return _context20.stop();
1491
1337
  }
1492
1338
  }
1493
- }, _callee17, this);
1339
+ }, _callee19, this);
1494
1340
  }));
1495
-
1496
1341
  function _writeAttributes() {
1497
1342
  return _writeAttributes2.apply(this, arguments);
1498
1343
  }
1499
-
1500
1344
  return _writeAttributes;
1501
1345
  }()
1502
1346
  }, {
1503
1347
  key: "_getFormatByMimeType",
1504
- value: function _getFormatByMimeType(mimeType) {
1348
+ value:
1349
+ function _getFormatByMimeType(mimeType) {
1505
1350
  switch (mimeType) {
1506
1351
  case 'image/jpeg':
1507
1352
  return 'jpg';
1508
-
1509
1353
  case 'image/png':
1510
1354
  return 'png';
1511
-
1512
1355
  case 'image/ktx2':
1513
1356
  return 'ktx2';
1514
-
1515
1357
  default:
1516
1358
  return 'jpg';
1517
1359
  }
1518
1360
  }
1361
+
1519
1362
  }, {
1520
1363
  key: "_findOrCreateMaterial",
1521
- value: function _findOrCreateMaterial(material) {
1364
+ value:
1365
+ function _findOrCreateMaterial(material) {
1522
1366
  var hash = (0, _md.default)(JSON.stringify(material));
1523
-
1524
1367
  if (this.materialMap.has(hash)) {
1525
- return this.materialMap.get(hash);
1368
+ return this.materialMap.get(hash) || 0;
1526
1369
  }
1527
-
1528
1370
  var newMaterialId = this.materialDefinitions.push(material) - 1;
1529
1371
  this.materialMap.set(hash, newMaterialId);
1530
1372
  return newMaterialId;
1531
1373
  }
1374
+
1532
1375
  }, {
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
- }
1376
+ key: "findOrCreateGeometryDefinition",
1377
+ value:
1378
+ function findOrCreateGeometryDefinition(hasTexture, hasUvRegions) {
1379
+ var geometryConfig = {
1380
+ hasTexture: hasTexture,
1381
+ hasUvRegions: hasUvRegions
1547
1382
  };
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
-
1383
+ var hash = (0, _md.default)(JSON.stringify(geometryConfig));
1384
+ if (this.geometryMap.has(hash)) {
1385
+ return this.geometryMap.get(hash) || 0;
1571
1386
  }
1572
-
1573
- return storageAttribute;
1387
+ var newGeometryId = this.geometryConfigs.push(geometryConfig) - 1;
1388
+ this.geometryMap.set(hash, newGeometryId);
1389
+ return newGeometryId;
1574
1390
  }
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
1391
 
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
1392
  }, {
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) {
1393
+ key: "_convertPropertyTableToNodeAttributes",
1394
+ value:
1395
+ function _convertPropertyTableToNodeAttributes(propertyTable) {
1636
1396
  var attributeIndex = 0;
1637
-
1638
- var batchTableWithObjectId = _objectSpread({
1397
+ var propertyTableWithObjectId = _objectSpread({
1639
1398
  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
-
1399
+ }, propertyTable);
1400
+ for (var _key in propertyTableWithObjectId) {
1401
+ var firstAttribute = propertyTableWithObjectId[_key][0];
1402
+ var attributeType = (0, _featureAttributes.getAttributeType)(_key, firstAttribute);
1403
+ var storageAttribute = (0, _featureAttributes.createdStorageAttribute)(attributeIndex, _key, attributeType);
1404
+ var fieldAttributeType = (0, _featureAttributes.getFieldAttributeType)(attributeType);
1405
+ var fieldAttribute = (0, _featureAttributes.createFieldAttribute)(_key, fieldAttributeType);
1406
+ var popupInfo = (0, _featureAttributes.createPopupInfo)(propertyTableWithObjectId);
1654
1407
  this.layers0.attributeStorageInfo.push(storageAttribute);
1655
1408
  this.layers0.fields.push(fieldAttribute);
1656
1409
  this.layers0.popupInfo = popupInfo;
@@ -1658,73 +1411,22 @@ var I3SConverter = function () {
1658
1411
  attributeIndex += 1;
1659
1412
  }
1660
1413
  }
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
1414
 
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
1415
  }, {
1712
1416
  key: "_finishConversion",
1713
1417
  value: function () {
1714
- var _finishConversion2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee18(params) {
1418
+ var _finishConversion2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee20(params) {
1715
1419
  var _this$refinementCount, tilesCount, tilesWithAddRefineCount, addRefinementPercentage, filesSize, diff, conversionTime;
1716
-
1717
- return _regenerator.default.wrap(function _callee18$(_context18) {
1420
+ return _regenerator.default.wrap(function _callee20$(_context21) {
1718
1421
  while (1) {
1719
- switch (_context18.prev = _context18.next) {
1422
+ switch (_context21.prev = _context21.next) {
1720
1423
  case 0:
1721
1424
  _this$refinementCount = this.refinementCounter, tilesCount = _this$refinementCount.tilesCount, tilesWithAddRefineCount = _this$refinementCount.tilesWithAddRefineCount;
1722
1425
  addRefinementPercentage = tilesWithAddRefineCount ? tilesWithAddRefineCount / tilesCount * 100 : 0;
1723
- _context18.next = 4;
1426
+ _context21.next = 4;
1724
1427
  return (0, _statisticUtills.calculateFilesSize)(params);
1725
-
1726
1428
  case 4:
1727
- filesSize = _context18.sent;
1429
+ filesSize = _context21.sent;
1728
1430
  diff = _process.default.hrtime(this.conversionStartTime);
1729
1431
  conversionTime = (0, _statisticUtills.timeConverter)(diff);
1730
1432
  console.log("------------------------------------------------");
@@ -1734,118 +1436,101 @@ var I3SConverter = function () {
1734
1436
  console.log("File(s) size: ", filesSize, ' bytes');
1735
1437
  console.log("Percentage of tiles with \"ADD\" refinement type:", addRefinementPercentage, '%');
1736
1438
  console.log("------------------------------------------------");
1737
-
1738
1439
  case 14:
1739
1440
  case "end":
1740
- return _context18.stop();
1441
+ return _context21.stop();
1741
1442
  }
1742
1443
  }
1743
- }, _callee18, this);
1444
+ }, _callee20, this);
1744
1445
  }));
1745
-
1746
- function _finishConversion(_x39) {
1446
+ function _finishConversion(_x41) {
1747
1447
  return _finishConversion2.apply(this, arguments);
1748
1448
  }
1749
-
1750
1449
  return _finishConversion;
1751
1450
  }()
1752
1451
  }, {
1753
1452
  key: "_fetchPreloadOptions",
1754
1453
  value: function () {
1755
- var _fetchPreloadOptions2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee19() {
1454
+ var _fetchPreloadOptions2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee21() {
1756
1455
  var options, preloadOptions;
1757
- return _regenerator.default.wrap(function _callee19$(_context19) {
1456
+ return _regenerator.default.wrap(function _callee21$(_context22) {
1758
1457
  while (1) {
1759
- switch (_context19.prev = _context19.next) {
1458
+ switch (_context22.prev = _context22.next) {
1760
1459
  case 0:
1761
1460
  if (this.Loader.preload) {
1762
- _context19.next = 2;
1461
+ _context22.next = 2;
1763
1462
  break;
1764
1463
  }
1765
-
1766
- return _context19.abrupt("return", {});
1767
-
1464
+ return _context22.abrupt("return", {});
1768
1465
  case 2:
1769
1466
  options = {
1770
1467
  'cesium-ion': {
1771
1468
  accessToken: this.options.token || ION_DEFAULT_TOKEN
1772
1469
  }
1773
1470
  };
1774
- _context19.next = 5;
1471
+ _context22.next = 5;
1775
1472
  return this.Loader.preload(this.options.inputUrl, options);
1776
-
1777
1473
  case 5:
1778
- preloadOptions = _context19.sent;
1474
+ preloadOptions = _context22.sent;
1779
1475
  this.refreshTokenTime = _process.default.hrtime();
1780
- return _context19.abrupt("return", _objectSpread(_objectSpread({}, options), preloadOptions));
1781
-
1476
+ return _context22.abrupt("return", _objectSpread(_objectSpread({}, options), preloadOptions));
1782
1477
  case 8:
1783
1478
  case "end":
1784
- return _context19.stop();
1479
+ return _context22.stop();
1785
1480
  }
1786
1481
  }
1787
- }, _callee19, this);
1482
+ }, _callee21, this);
1788
1483
  }));
1789
-
1790
1484
  function _fetchPreloadOptions() {
1791
1485
  return _fetchPreloadOptions2.apply(this, arguments);
1792
1486
  }
1793
-
1794
1487
  return _fetchPreloadOptions;
1795
1488
  }()
1796
1489
  }, {
1797
1490
  key: "_updateTilesetOptions",
1798
1491
  value: function () {
1799
- var _updateTilesetOptions2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee20() {
1492
+ var _updateTilesetOptions2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee22() {
1800
1493
  var diff, preloadOptions;
1801
- return _regenerator.default.wrap(function _callee20$(_context20) {
1494
+ return _regenerator.default.wrap(function _callee22$(_context23) {
1802
1495
  while (1) {
1803
- switch (_context20.prev = _context20.next) {
1496
+ switch (_context23.prev = _context23.next) {
1804
1497
  case 0:
1805
1498
  diff = _process.default.hrtime(this.refreshTokenTime);
1806
-
1807
1499
  if (!(diff[0] < REFRESH_TOKEN_TIMEOUT)) {
1808
- _context20.next = 3;
1500
+ _context23.next = 3;
1809
1501
  break;
1810
1502
  }
1811
-
1812
- return _context20.abrupt("return");
1813
-
1503
+ return _context23.abrupt("return");
1814
1504
  case 3:
1815
1505
  this.refreshTokenTime = _process.default.hrtime();
1816
- _context20.next = 6;
1506
+ _context23.next = 6;
1817
1507
  return this._fetchPreloadOptions();
1818
-
1819
1508
  case 6:
1820
- preloadOptions = _context20.sent;
1509
+ preloadOptions = _context23.sent;
1821
1510
  this.sourceTileset.options = _objectSpread(_objectSpread({}, this.sourceTileset.options), preloadOptions);
1822
-
1823
1511
  if (preloadOptions.headers) {
1824
1512
  this.sourceTileset.loadOptions.fetch = _objectSpread(_objectSpread({}, this.sourceTileset.loadOptions.fetch), {}, {
1825
1513
  headers: preloadOptions.headers
1826
1514
  });
1827
1515
  console.log('Authorization Bearer token has been updated');
1828
1516
  }
1829
-
1830
1517
  case 9:
1831
1518
  case "end":
1832
- return _context20.stop();
1519
+ return _context23.stop();
1833
1520
  }
1834
1521
  }
1835
- }, _callee20, this);
1522
+ }, _callee22, this);
1836
1523
  }));
1837
-
1838
1524
  function _updateTilesetOptions() {
1839
1525
  return _updateTilesetOptions2.apply(this, arguments);
1840
1526
  }
1841
-
1842
1527
  return _updateTilesetOptions;
1843
1528
  }()
1844
1529
  }, {
1845
1530
  key: "_checkAddRefinementTypeForTile",
1846
- value: function _checkAddRefinementTypeForTile(tile) {
1531
+ value:
1532
+ function _checkAddRefinementTypeForTile(tile) {
1847
1533
  var ADD_TILE_REFINEMENT = 1;
1848
-
1849
1534
  if (tile.refine === ADD_TILE_REFINEMENT) {
1850
1535
  this.refinementCounter.tilesWithAddRefineCount += 1;
1851
1536
  console.warn('This tile uses "ADD" type of refinement');
@@ -1855,92 +1540,76 @@ var I3SConverter = function () {
1855
1540
  }
1856
1541
  }, {
1857
1542
  key: "isContentSupported",
1858
- value: function isContentSupported(sourceRootTile) {
1543
+ value:
1544
+ function isContentSupported(sourceRootTile) {
1859
1545
  var _sourceRootTile$conte;
1860
-
1861
1546
  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
1547
  }
1863
1548
  }, {
1864
1549
  key: "loadWorkers",
1865
1550
  value: function () {
1866
- var _loadWorkers = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee21() {
1551
+ var _loadWorkers = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee23() {
1867
1552
  var url, _sourceResponse, _source, _url, _sourceResponse2, _source2, i3sAttributesWorkerUrl, sourceResponse, source;
1868
-
1869
- return _regenerator.default.wrap(function _callee21$(_context21) {
1553
+ return _regenerator.default.wrap(function _callee23$(_context24) {
1870
1554
  while (1) {
1871
- switch (_context21.prev = _context21.next) {
1555
+ switch (_context24.prev = _context24.next) {
1872
1556
  case 0:
1873
1557
  console.log("Loading workers source...");
1874
-
1875
1558
  if (!this.options.draco) {
1876
- _context21.next = 10;
1559
+ _context24.next = 10;
1877
1560
  break;
1878
1561
  }
1879
-
1880
1562
  url = (0, _workerUtils.getWorkerURL)(_draco.DracoWriterWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1881
- _context21.next = 5;
1563
+ _context24.next = 5;
1882
1564
  return (0, _core.fetchFile)(url);
1883
-
1884
1565
  case 5:
1885
- _sourceResponse = _context21.sent;
1886
- _context21.next = 8;
1566
+ _sourceResponse = _context24.sent;
1567
+ _context24.next = 8;
1887
1568
  return _sourceResponse.text();
1888
-
1889
1569
  case 8:
1890
- _source = _context21.sent;
1570
+ _source = _context24.sent;
1891
1571
  this.workerSource.draco = _source;
1892
-
1893
1572
  case 10:
1894
1573
  if (!this.generateTextures) {
1895
- _context21.next = 19;
1574
+ _context24.next = 19;
1896
1575
  break;
1897
1576
  }
1898
-
1899
1577
  _url = (0, _workerUtils.getWorkerURL)(_textures.KTX2BasisWriterWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1900
- _context21.next = 14;
1578
+ _context24.next = 14;
1901
1579
  return (0, _core.fetchFile)(_url);
1902
-
1903
1580
  case 14:
1904
- _sourceResponse2 = _context21.sent;
1905
- _context21.next = 17;
1581
+ _sourceResponse2 = _context24.sent;
1582
+ _context24.next = 17;
1906
1583
  return _sourceResponse2.text();
1907
-
1908
1584
  case 17:
1909
- _source2 = _context21.sent;
1585
+ _source2 = _context24.sent;
1910
1586
  this.workerSource.ktx2 = _source2;
1911
-
1912
1587
  case 19:
1913
1588
  i3sAttributesWorkerUrl = (0, _workerUtils.getWorkerURL)(_i3sAttributesWorker.I3SAttributesWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1914
- _context21.next = 22;
1589
+ _context24.next = 22;
1915
1590
  return (0, _core.fetchFile)(i3sAttributesWorkerUrl);
1916
-
1917
1591
  case 22:
1918
- sourceResponse = _context21.sent;
1919
- _context21.next = 25;
1592
+ sourceResponse = _context24.sent;
1593
+ _context24.next = 25;
1920
1594
  return sourceResponse.text();
1921
-
1922
1595
  case 25:
1923
- source = _context21.sent;
1596
+ source = _context24.sent;
1924
1597
  this.workerSource.I3SAttributes = source;
1925
1598
  console.log("Loading workers source completed!");
1926
-
1927
1599
  case 28:
1928
1600
  case "end":
1929
- return _context21.stop();
1601
+ return _context24.stop();
1930
1602
  }
1931
1603
  }
1932
- }, _callee21, this);
1604
+ }, _callee23, this);
1933
1605
  }));
1934
-
1935
1606
  function loadWorkers() {
1936
1607
  return _loadWorkers.apply(this, arguments);
1937
1608
  }
1938
-
1939
1609
  return loadWorkers;
1940
1610
  }()
1941
1611
  }]);
1942
1612
  return I3SConverter;
1943
1613
  }();
1944
-
1945
1614
  exports.default = I3SConverter;
1946
1615
  //# sourceMappingURL=i3s-converter.js.map