@loaders.gl/tile-converter 3.1.8 → 3.2.0-alpha.3

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 (238) hide show
  1. package/dist/3d-tiles-attributes-worker.d.ts +28 -0
  2. package/dist/3d-tiles-attributes-worker.d.ts.map +1 -0
  3. package/dist/3d-tiles-attributes-worker.js +4 -0
  4. package/dist/3d-tiles-attributes-worker.js.map +7 -0
  5. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +82 -0
  6. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -0
  7. package/dist/3d-tiles-converter/3d-tiles-converter.js +268 -0
  8. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +84 -0
  9. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -0
  10. package/dist/3d-tiles-converter/helpers/b3dm-converter.js +278 -0
  11. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +13 -0
  12. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts.map +1 -0
  13. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +23 -0
  14. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts +9 -0
  15. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts.map +1 -0
  16. package/dist/3d-tiles-converter/helpers/texture-atlas.js +52 -0
  17. package/dist/3d-tiles-converter/json-templates/tileset.d.ts +15 -0
  18. package/dist/3d-tiles-converter/json-templates/tileset.d.ts.map +1 -0
  19. package/dist/3d-tiles-converter/json-templates/tileset.js +43 -0
  20. package/dist/bundle.d.ts +2 -0
  21. package/dist/bundle.d.ts.map +1 -0
  22. package/dist/bundle.js +5 -0
  23. package/dist/converter-cli.d.ts +2 -0
  24. package/dist/converter-cli.d.ts.map +1 -0
  25. package/dist/converter-cli.js +232 -0
  26. package/dist/converter.min.js +68 -68
  27. package/dist/deps-installer/deps-installer.d.ts +14 -0
  28. package/dist/deps-installer/deps-installer.d.ts.map +1 -0
  29. package/dist/deps-installer/deps-installer.js +31 -0
  30. package/dist/dist.min.js +1151 -1264
  31. package/dist/es5/3d-tiles-attributes-worker.js +29 -0
  32. package/dist/es5/3d-tiles-attributes-worker.js.map +1 -0
  33. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +104 -44
  34. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  35. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +34 -43
  36. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  37. package/dist/es5/converter-cli.js +306 -0
  38. package/dist/es5/converter-cli.js.map +1 -0
  39. package/dist/es5/deps-installer/deps-installer.js.map +1 -1
  40. package/dist/es5/i3s-attributes-worker.js +29 -0
  41. package/dist/es5/i3s-attributes-worker.js.map +1 -0
  42. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +19 -11
  43. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  44. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +2 -2
  45. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  46. package/dist/es5/i3s-converter/helpers/geometry-converter.js +271 -182
  47. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  48. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +71 -0
  49. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  50. package/dist/es5/i3s-converter/helpers/node-pages.js +47 -99
  51. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
  52. package/dist/es5/i3s-converter/i3s-converter.js +311 -245
  53. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  54. package/dist/es5/index.js +0 -16
  55. package/dist/es5/index.js.map +1 -1
  56. package/dist/es5/lib/utils/compress-util.js +14 -17
  57. package/dist/es5/lib/utils/compress-util.js.map +1 -1
  58. package/dist/es5/lib/utils/file-utils.js +39 -14
  59. package/dist/es5/lib/utils/file-utils.js.map +1 -1
  60. package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
  61. package/dist/es5/lib/utils/queue.js +61 -0
  62. package/dist/es5/lib/utils/queue.js.map +1 -0
  63. package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
  64. package/dist/es5/lib/utils/write-queue.js +225 -0
  65. package/dist/es5/lib/utils/write-queue.js.map +1 -0
  66. package/dist/es5/pgm-loader.js +1 -1
  67. package/dist/es5/pgm-loader.js.map +1 -1
  68. package/dist/es5/workers/3d-tiles-attributes-worker.js +37 -0
  69. package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -0
  70. package/dist/es5/workers/i3s-attributes-worker.js +40 -0
  71. package/dist/es5/workers/i3s-attributes-worker.js.map +1 -0
  72. package/dist/esm/3d-tiles-attributes-worker.js +16 -0
  73. package/dist/esm/3d-tiles-attributes-worker.js.map +1 -0
  74. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +32 -5
  75. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  76. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +23 -23
  77. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  78. package/dist/esm/converter-cli.js +230 -0
  79. package/dist/esm/converter-cli.js.map +1 -0
  80. package/dist/esm/deps-installer/deps-installer.js.map +1 -1
  81. package/dist/esm/i3s-attributes-worker.js +16 -0
  82. package/dist/esm/i3s-attributes-worker.js.map +1 -0
  83. package/dist/esm/i3s-converter/helpers/coordinate-converter.js +19 -11
  84. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  85. package/dist/esm/i3s-converter/helpers/geometry-attributes.js +2 -2
  86. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  87. package/dist/esm/i3s-converter/helpers/geometry-converter.js +121 -62
  88. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  89. package/dist/esm/i3s-converter/helpers/gltf-attributes.js +54 -0
  90. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  91. package/dist/esm/i3s-converter/helpers/node-pages.js +12 -4
  92. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
  93. package/dist/esm/i3s-converter/i3s-converter.js +155 -50
  94. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  95. package/dist/esm/index.js +0 -2
  96. package/dist/esm/index.js.map +1 -1
  97. package/dist/esm/lib/utils/compress-util.js +6 -8
  98. package/dist/esm/lib/utils/compress-util.js.map +1 -1
  99. package/dist/esm/lib/utils/file-utils.js +11 -1
  100. package/dist/esm/lib/utils/file-utils.js.map +1 -1
  101. package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
  102. package/dist/esm/lib/utils/queue.js +19 -0
  103. package/dist/esm/lib/utils/queue.js.map +1 -0
  104. package/dist/esm/lib/utils/statistic-utills.js.map +1 -1
  105. package/dist/esm/lib/utils/write-queue.js +88 -0
  106. package/dist/esm/lib/utils/write-queue.js.map +1 -0
  107. package/dist/esm/pgm-loader.js +1 -1
  108. package/dist/esm/pgm-loader.js.map +1 -1
  109. package/dist/esm/workers/3d-tiles-attributes-worker.js +5 -0
  110. package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -0
  111. package/dist/esm/workers/i3s-attributes-worker.js +4 -0
  112. package/dist/esm/workers/i3s-attributes-worker.js.map +1 -0
  113. package/dist/i3s-attributes-worker.d.ts +33 -0
  114. package/dist/i3s-attributes-worker.d.ts.map +1 -0
  115. package/dist/i3s-attributes-worker.js +10 -0
  116. package/dist/i3s-attributes-worker.js.map +7 -0
  117. package/dist/i3s-converter/helpers/coordinate-converter.d.ts +41 -0
  118. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -0
  119. package/dist/i3s-converter/helpers/coordinate-converter.js +122 -0
  120. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts +9 -0
  121. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts.map +1 -0
  122. package/dist/i3s-converter/helpers/create-scene-server-path.js +28 -0
  123. package/dist/i3s-converter/helpers/geometry-attributes.d.ts +8 -0
  124. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -0
  125. package/dist/i3s-converter/helpers/geometry-attributes.js +177 -0
  126. package/dist/i3s-converter/helpers/geometry-converter.d.ts +29 -0
  127. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -0
  128. package/dist/i3s-converter/helpers/geometry-converter.js +901 -0
  129. package/dist/i3s-converter/helpers/gltf-attributes.d.ts +9 -0
  130. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -0
  131. package/dist/i3s-converter/helpers/gltf-attributes.js +56 -0
  132. package/dist/i3s-converter/helpers/node-debug.d.ts +8 -0
  133. package/dist/i3s-converter/helpers/node-debug.d.ts.map +1 -0
  134. package/dist/i3s-converter/helpers/node-debug.js +114 -0
  135. package/dist/i3s-converter/helpers/node-pages.d.ts +117 -0
  136. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -0
  137. package/dist/i3s-converter/helpers/node-pages.js +208 -0
  138. package/dist/i3s-converter/i3s-converter.d.ts +323 -0
  139. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -0
  140. package/dist/i3s-converter/i3s-converter.js +1074 -0
  141. package/dist/i3s-converter/json-templates/layers.d.ts +95 -0
  142. package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -0
  143. package/dist/i3s-converter/json-templates/layers.js +199 -0
  144. package/dist/i3s-converter/json-templates/metadata.d.ts +22 -0
  145. package/dist/i3s-converter/json-templates/metadata.d.ts.map +1 -0
  146. package/dist/i3s-converter/json-templates/metadata.js +25 -0
  147. package/dist/i3s-converter/json-templates/node.d.ts +61 -0
  148. package/dist/i3s-converter/json-templates/node.d.ts.map +1 -0
  149. package/dist/i3s-converter/json-templates/node.js +89 -0
  150. package/dist/i3s-converter/json-templates/scene-server.d.ts +28 -0
  151. package/dist/i3s-converter/json-templates/scene-server.d.ts.map +1 -0
  152. package/dist/i3s-converter/json-templates/scene-server.js +31 -0
  153. package/dist/i3s-converter/json-templates/shared-resources.d.ts +14 -0
  154. package/dist/i3s-converter/json-templates/shared-resources.d.ts.map +1 -0
  155. package/dist/i3s-converter/json-templates/shared-resources.js +129 -0
  156. package/dist/i3s-converter/json-templates/store.d.ts +95 -0
  157. package/dist/i3s-converter/json-templates/store.d.ts.map +1 -0
  158. package/dist/i3s-converter/json-templates/store.js +103 -0
  159. package/dist/i3s-converter/types.d.ts +114 -0
  160. package/dist/i3s-converter/types.d.ts.map +1 -0
  161. package/dist/i3s-converter/types.js +2 -0
  162. package/dist/i3s-server/app.d.ts +3 -0
  163. package/dist/i3s-server/app.d.ts.map +1 -0
  164. package/dist/i3s-server/app.js +14 -0
  165. package/dist/i3s-server/controllers/index-controller.d.ts +2 -0
  166. package/dist/i3s-server/controllers/index-controller.d.ts.map +1 -0
  167. package/dist/i3s-server/controllers/index-controller.js +23 -0
  168. package/dist/i3s-server/routes/index.d.ts +3 -0
  169. package/dist/i3s-server/routes/index.d.ts.map +1 -0
  170. package/dist/i3s-server/routes/index.js +16 -0
  171. package/dist/index.d.ts +3 -0
  172. package/dist/index.d.ts.map +1 -0
  173. package/dist/index.js +10 -0
  174. package/dist/lib/utils/compress-util.d.ts +45 -0
  175. package/dist/lib/utils/compress-util.d.ts.map +1 -0
  176. package/dist/lib/utils/compress-util.js +257 -0
  177. package/dist/{esm/lib → lib}/utils/file-utils.d.ts +6 -14
  178. package/dist/lib/utils/file-utils.d.ts.map +1 -0
  179. package/dist/lib/utils/file-utils.js +81 -0
  180. package/dist/lib/utils/lod-conversion-utils.d.ts +41 -0
  181. package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -0
  182. package/dist/lib/utils/lod-conversion-utils.js +76 -0
  183. package/dist/lib/utils/queue.d.ts +7 -0
  184. package/dist/lib/utils/queue.d.ts.map +1 -0
  185. package/dist/lib/utils/queue.js +18 -0
  186. package/dist/lib/utils/statistic-utills.d.ts +3 -0
  187. package/dist/lib/utils/statistic-utills.d.ts.map +1 -0
  188. package/dist/lib/utils/statistic-utills.js +64 -0
  189. package/dist/lib/utils/write-queue.d.ts +22 -0
  190. package/dist/lib/utils/write-queue.d.ts.map +1 -0
  191. package/dist/lib/utils/write-queue.js +62 -0
  192. package/dist/pgm-loader.d.ts +6 -0
  193. package/dist/pgm-loader.d.ts.map +1 -0
  194. package/dist/pgm-loader.js +23 -0
  195. package/dist/workers/3d-tiles-attributes-worker.d.ts +2 -0
  196. package/dist/workers/3d-tiles-attributes-worker.d.ts.map +1 -0
  197. package/dist/workers/3d-tiles-attributes-worker.js +9 -0
  198. package/dist/workers/i3s-attributes-worker.d.ts +2 -0
  199. package/dist/workers/i3s-attributes-worker.d.ts.map +1 -0
  200. package/dist/workers/i3s-attributes-worker.js +5 -0
  201. package/package.json +19 -18
  202. package/src/3d-tiles-attributes-worker.ts +43 -0
  203. package/src/3d-tiles-converter/3d-tiles-converter.ts +49 -6
  204. package/src/3d-tiles-converter/helpers/b3dm-converter.ts +21 -18
  205. package/src/converter-cli.ts +310 -0
  206. package/src/deps-installer/{deps-installer.js → deps-installer.ts} +11 -1
  207. package/src/i3s-attributes-worker.ts +46 -0
  208. package/src/i3s-converter/helpers/coordinate-converter.ts +29 -24
  209. package/src/i3s-converter/helpers/geometry-attributes.ts +4 -3
  210. package/src/i3s-converter/helpers/{geometry-converter.js → geometry-converter.ts} +425 -179
  211. package/src/i3s-converter/helpers/gltf-attributes.ts +68 -0
  212. package/src/i3s-converter/helpers/node-pages.ts +25 -17
  213. package/src/i3s-converter/i3s-converter.ts +154 -87
  214. package/src/i3s-converter/types.ts +90 -8
  215. package/src/index.ts +0 -4
  216. package/src/lib/utils/{compress-util.js → compress-util.ts} +105 -18
  217. package/src/lib/utils/file-utils.ts +84 -0
  218. package/src/lib/utils/{lod-conversion-utils.js → lod-conversion-utils.ts} +27 -5
  219. package/src/lib/utils/queue.ts +17 -0
  220. package/src/lib/utils/{statistic-utills.js → statistic-utills.ts} +0 -0
  221. package/src/lib/utils/write-queue.ts +75 -0
  222. package/src/workers/3d-tiles-attributes-worker.ts +6 -0
  223. package/src/workers/i3s-attributes-worker.ts +6 -0
  224. package/dist/es5/deps-installer/deps-installer.d.ts +0 -10
  225. package/dist/es5/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  226. package/dist/es5/lib/utils/compress-util.d.ts +0 -53
  227. package/dist/es5/lib/utils/file-utils.d.ts +0 -43
  228. package/dist/es5/lib/utils/lod-conversion-utils.d.ts +0 -32
  229. package/dist/esm/deps-installer/deps-installer.d.ts +0 -10
  230. package/dist/esm/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  231. package/dist/esm/lib/utils/compress-util.d.ts +0 -53
  232. package/dist/esm/lib/utils/lod-conversion-utils.d.ts +0 -32
  233. package/src/deps-installer/deps-installer.d.ts +0 -10
  234. package/src/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  235. package/src/lib/utils/compress-util.d.ts +0 -53
  236. package/src/lib/utils/file-utils.d.ts +0 -43
  237. package/src/lib/utils/file-utils.js +0 -38
  238. package/src/lib/utils/lod-conversion-utils.d.ts +0 -32
@@ -69,6 +69,14 @@ var _textures = require("@loaders.gl/textures");
69
69
 
70
70
  var _images = require("@loaders.gl/images");
71
71
 
72
+ var _workerUtils = require("@loaders.gl/worker-utils");
73
+
74
+ var _draco = require("@loaders.gl/draco");
75
+
76
+ var _writeQueue = _interopRequireDefault(require("../lib/utils/write-queue"));
77
+
78
+ var _i3sAttributesWorker = require("../i3s-attributes-worker");
79
+
72
80
  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; } } }; }
73
81
 
74
82
  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); }
@@ -94,7 +102,6 @@ var I3SConverter = function () {
94
102
  function I3SConverter() {
95
103
  (0, _classCallCheck2.default)(this, I3SConverter);
96
104
  (0, _defineProperty2.default)(this, "nodePages", void 0);
97
- (0, _defineProperty2.default)(this, "fileMap", void 0);
98
105
  (0, _defineProperty2.default)(this, "options", void 0);
99
106
  (0, _defineProperty2.default)(this, "layers0Path", void 0);
100
107
  (0, _defineProperty2.default)(this, "materialMap", void 0);
@@ -112,8 +119,10 @@ var I3SConverter = function () {
112
119
  (0, _defineProperty2.default)(this, "Loader", _dTiles.Tiles3DLoader);
113
120
  (0, _defineProperty2.default)(this, "generateTextures", void 0);
114
121
  (0, _defineProperty2.default)(this, "generateBoundingVolumes", void 0);
122
+ (0, _defineProperty2.default)(this, "layersHasTexture", void 0);
123
+ (0, _defineProperty2.default)(this, "workerSource", {});
124
+ (0, _defineProperty2.default)(this, "writeQueue", new _writeQueue.default());
115
125
  this.nodePages = new _nodePages.default(_fileUtils.writeFile, HARDCODED_NODES_PER_PAGE);
116
- this.fileMap = {};
117
126
  this.options = {};
118
127
  this.layers0Path = '';
119
128
  this.materialMap = new Map();
@@ -128,13 +137,14 @@ var I3SConverter = function () {
128
137
  this.validate = false;
129
138
  this.generateTextures = false;
130
139
  this.generateBoundingVolumes = false;
140
+ this.layersHasTexture = false;
131
141
  }
132
142
 
133
143
  (0, _createClass2.default)(I3SConverter, [{
134
144
  key: "convert",
135
145
  value: function () {
136
146
  var _convert = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
137
- var tilesetName, slpk, egmFilePath, inputUrl, validate, outputPath, draco, sevenZipExe, maxDepth, token, generateTextures, generateBoundingVolumes, preloadOptions, tilesetOptions, sourceTilesetJson;
147
+ var tilesetName, slpk, egmFilePath, inputUrl, validate, outputPath, draco, sevenZipExe, maxDepth, token, generateTextures, generateBoundingVolumes, preloadOptions, tilesetOptions, sourceTilesetJson, workerFarm;
138
148
  return _regenerator.default.wrap(function _callee$(_context) {
139
149
  while (1) {
140
150
  switch (_context.prev = _context.next) {
@@ -154,11 +164,13 @@ var I3SConverter = function () {
154
164
  this.Loader = inputUrl.indexOf(CESIUM_DATASET_PREFIX) !== -1 ? _dTiles.CesiumIonLoader : _dTiles.Tiles3DLoader;
155
165
  this.generateTextures = Boolean(generateTextures);
156
166
  this.generateBoundingVolumes = Boolean(generateBoundingVolumes);
167
+ this.writeQueue = new _writeQueue.default();
168
+ this.writeQueue.startListening();
157
169
  console.log('Loading egm file...');
158
- _context.next = 10;
170
+ _context.next = 12;
159
171
  return (0, _core.load)(egmFilePath, _pgmLoader.PGMLoader);
160
172
 
161
- case 10:
173
+ case 12:
162
174
  this.geoidHeightModel = _context.sent;
163
175
  console.log('Loading egm file completed!');
164
176
 
@@ -166,10 +178,15 @@ var I3SConverter = function () {
166
178
  this.nodePages.useWriteFunction(_fileUtils.writeFileForSlpk);
167
179
  }
168
180
 
169
- _context.next = 15;
181
+ _context.next = 17;
182
+ return this.loadWorkers();
183
+
184
+ case 17:
185
+ _context.prev = 17;
186
+ _context.next = 20;
170
187
  return this._fetchPreloadOptions();
171
188
 
172
- case 15:
189
+ case 20:
173
190
  preloadOptions = _context.sent;
174
191
  tilesetOptions = {
175
192
  loadOptions: {
@@ -186,32 +203,43 @@ var I3SConverter = function () {
186
203
  }
187
204
 
188
205
  Object.assign(tilesetOptions, preloadOptions);
189
- _context.next = 21;
206
+ _context.next = 26;
190
207
  return (0, _core.load)(inputUrl, this.Loader, tilesetOptions.loadOptions);
191
208
 
192
- case 21:
209
+ case 26:
193
210
  sourceTilesetJson = _context.sent;
194
211
  this.sourceTileset = new _tiles.Tileset3D(sourceTilesetJson, tilesetOptions);
195
- _context.next = 25;
212
+ _context.next = 30;
196
213
  return this._createAndSaveTileset(outputPath, tilesetName);
197
214
 
198
- case 25:
199
- _context.next = 27;
215
+ case 30:
216
+ _context.next = 32;
200
217
  return this._finishConversion({
201
218
  slpk: Boolean(slpk),
202
219
  outputPath: outputPath,
203
220
  tilesetName: tilesetName
204
221
  });
205
222
 
206
- case 27:
223
+ case 32:
207
224
  return _context.abrupt("return", sourceTilesetJson);
208
225
 
209
- case 28:
226
+ case 35:
227
+ _context.prev = 35;
228
+ _context.t0 = _context["catch"](17);
229
+ throw _context.t0;
230
+
231
+ case 38:
232
+ _context.prev = 38;
233
+ workerFarm = _workerUtils.WorkerFarm.getWorkerFarm({});
234
+ workerFarm.destroy();
235
+ return _context.finish(38);
236
+
237
+ case 42:
210
238
  case "end":
211
239
  return _context.stop();
212
240
  }
213
241
  }
214
- }, _callee, this);
242
+ }, _callee, this, [[17, 35, 38, 42]]);
215
243
  }));
216
244
 
217
245
  function convert(_x) {
@@ -264,23 +292,34 @@ var I3SConverter = function () {
264
292
 
265
293
  case 19:
266
294
  this.layers0.materialDefinitions = this.materialDefinitions;
267
- _context2.next = 22;
295
+
296
+ if (this.layersHasTexture === false) {
297
+ this.layers0.store.defaultGeometrySchema.ordering = this.layers0.store.defaultGeometrySchema.ordering.filter(function (attribute) {
298
+ return attribute !== 'uv0';
299
+ });
300
+ }
301
+
302
+ _context2.next = 23;
268
303
  return this._writeLayers0();
269
304
 
270
- case 22:
305
+ case 23:
271
306
  (0, _createSceneServerPath.createSceneServerPath)(tilesetName, this.layers0, tilesetPath);
272
- _context2.next = 25;
307
+ _context2.next = 26;
273
308
  return this._writeNodeIndexDocument(root0, 'root', (0, _path.join)(this.layers0Path, 'nodes', 'root'));
274
309
 
275
- case 25:
276
- _context2.next = 27;
277
- return this.nodePages.save(this.layers0Path, this.fileMap, isCreateSlpk);
310
+ case 26:
311
+ _context2.next = 28;
312
+ return this.nodePages.save(this.layers0Path, this.writeQueue, isCreateSlpk);
278
313
 
279
- case 27:
280
- _context2.next = 29;
314
+ case 28:
315
+ _context2.next = 30;
316
+ return this.writeQueue.finalize();
317
+
318
+ case 30:
319
+ _context2.next = 32;
281
320
  return this._createSlpk(tilesetPath);
282
321
 
283
- case 29:
322
+ case 32:
284
323
  case "end":
285
324
  return _context2.stop();
286
325
  }
@@ -297,7 +336,10 @@ var I3SConverter = function () {
297
336
  }, {
298
337
  key: "_formLayers0",
299
338
  value: function _formLayers0(tilesetName) {
300
- var extent = (0, _coordinateConverter.convertCommonToI3SExtentCoordinate)(this.sourceTileset);
339
+ var _this$sourceTileset, _this$sourceTileset2, _this$sourceTileset2$;
340
+
341
+ 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));
342
+ var extent = [fullExtent.xmin, fullExtent.ymin, fullExtent.xmax, fullExtent.ymax];
301
343
  var layers0data = {
302
344
  version: "{".concat((0, _uuid.v4)().toUpperCase(), "}"),
303
345
  id: 0,
@@ -349,7 +391,7 @@ var I3SConverter = function () {
349
391
 
350
392
  case 2:
351
393
  if (!this.isContentSupported(sourceRootTile)) {
352
- _context3.next = 21;
394
+ _context3.next = 14;
353
395
  break;
354
396
  }
355
397
 
@@ -367,29 +409,22 @@ var I3SConverter = function () {
367
409
  child = _yield$this$_createNo2[0];
368
410
  childPath = (0, _path.join)(this.layers0Path, 'nodes', child.path);
369
411
 
370
- if (!this.options.slpk) {
371
- _context3.next = 17;
372
- break;
412
+ if (this.options.slpk) {
413
+ this.writeQueue.enqueue({
414
+ archiveKey: 'nodes/1/3dNodeIndexDocument.json.gz',
415
+ writePromise: (0, _fileUtils.writeFileForSlpk)(childPath, JSON.stringify(child), '3dNodeIndexDocument.json')
416
+ });
417
+ } else {
418
+ this.writeQueue.enqueue({
419
+ writePromise: (0, _fileUtils.writeFile)(childPath, JSON.stringify(child))
420
+ });
373
421
  }
374
422
 
375
- _context3.next = 14;
376
- return (0, _fileUtils.writeFileForSlpk)(childPath, JSON.stringify(child), '3dNodeIndexDocument.json');
377
-
378
- case 14:
379
- this.fileMap['nodes/1/3dNodeIndexDocument.json.gz'] = _context3.sent;
380
- _context3.next = 19;
381
- break;
382
-
383
- case 17:
384
- _context3.next = 19;
385
- return (0, _fileUtils.writeFile)(childPath, JSON.stringify(child));
386
-
387
- case 19:
388
- _context3.next = 23;
423
+ _context3.next = 16;
389
424
  break;
390
425
 
391
- case 21:
392
- _context3.next = 23;
426
+ case 14:
427
+ _context3.next = 16;
393
428
  return this._addChildrenWithNeighborsAndWriteFile({
394
429
  parentNode: root0,
395
430
  sourceTiles: sourceRootTile.children,
@@ -397,11 +432,11 @@ var I3SConverter = function () {
397
432
  level: 1
398
433
  });
399
434
 
400
- case 23:
401
- _context3.next = 25;
435
+ case 16:
436
+ _context3.next = 18;
402
437
  return sourceRootTile.unloadContent();
403
438
 
404
- case 25:
439
+ case 18:
405
440
  case "end":
406
441
  return _context3.stop();
407
442
  }
@@ -423,24 +458,18 @@ var I3SConverter = function () {
423
458
  while (1) {
424
459
  switch (_context4.prev = _context4.next) {
425
460
  case 0:
426
- if (!this.options.slpk) {
427
- _context4.next = 6;
428
- break;
461
+ if (this.options.slpk) {
462
+ this.writeQueue.enqueue({
463
+ archiveKey: '3dSceneLayer.json.gz',
464
+ writePromise: (0, _fileUtils.writeFileForSlpk)(this.layers0Path, JSON.stringify(this.layers0), '3dSceneLayer.json')
465
+ });
466
+ } else {
467
+ this.writeQueue.enqueue({
468
+ writePromise: (0, _fileUtils.writeFile)(this.layers0Path, JSON.stringify(this.layers0))
469
+ });
429
470
  }
430
471
 
431
- _context4.next = 3;
432
- return (0, _fileUtils.writeFileForSlpk)(this.layers0Path, JSON.stringify(this.layers0), '3dSceneLayer.json');
433
-
434
- case 3:
435
- this.fileMap['3dSceneLayer.json.gz'] = _context4.sent;
436
- _context4.next = 8;
437
- break;
438
-
439
- case 6:
440
- _context4.next = 8;
441
- return (0, _fileUtils.writeFile)(this.layers0Path, JSON.stringify(this.layers0));
442
-
443
- case 8:
472
+ case 1:
444
473
  case "end":
445
474
  return _context4.stop();
446
475
  }
@@ -462,24 +491,18 @@ var I3SConverter = function () {
462
491
  while (1) {
463
492
  switch (_context5.prev = _context5.next) {
464
493
  case 0:
465
- if (!this.options.slpk) {
466
- _context5.next = 6;
467
- break;
494
+ if (this.options.slpk) {
495
+ this.writeQueue.enqueue({
496
+ archiveKey: "nodes/".concat(nodePath, "/3dNodeIndexDocument.json.gz"),
497
+ writePromise: (0, _fileUtils.writeFileForSlpk)(rootPath, JSON.stringify(root0), '3dNodeIndexDocument.json')
498
+ });
499
+ } else {
500
+ this.writeQueue.enqueue({
501
+ writePromise: (0, _fileUtils.writeFile)(rootPath, JSON.stringify(root0))
502
+ });
468
503
  }
469
504
 
470
- _context5.next = 3;
471
- return (0, _fileUtils.writeFileForSlpk)(rootPath, JSON.stringify(root0), '3dNodeIndexDocument.json');
472
-
473
- case 3:
474
- this.fileMap["nodes/".concat(nodePath, "/3dNodeIndexDocument.json.gz")] = _context5.sent;
475
- _context5.next = 8;
476
- break;
477
-
478
- case 6:
479
- _context5.next = 8;
480
- return (0, _fileUtils.writeFile)(rootPath, JSON.stringify(root0));
481
-
482
- case 8:
505
+ case 1:
483
506
  case "end":
484
507
  return _context5.stop();
485
508
  }
@@ -880,11 +903,12 @@ var I3SConverter = function () {
880
903
 
881
904
  case 17:
882
905
  if ((_step5 = _iterator5.n()).done) {
883
- _context10.next = 32;
906
+ _context10.next = 33;
884
907
  break;
885
908
  }
886
909
 
887
910
  resources = _step5.value;
911
+ this.layersHasTexture = this.layersHasTexture || Boolean(resources.texture);
888
912
 
889
913
  if (this.generateBoundingVolumes && resources.boundingVolumes) {
890
914
  boundingVolumes = resources.boundingVolumes;
@@ -900,14 +924,14 @@ var I3SConverter = function () {
900
924
  node = this._createNodeIndexDocument(parentTile, boundingVolumes, lodSelection, nodeInPage, resources);
901
925
 
902
926
  if (!nodeInPage.mesh) {
903
- _context10.next = 27;
927
+ _context10.next = 28;
904
928
  break;
905
929
  }
906
930
 
907
- _context10.next = 27;
931
+ _context10.next = 28;
908
932
  return this._writeResources(resources, node.path);
909
933
 
910
- case 27:
934
+ case 28:
911
935
  if (this.validate) {
912
936
  this.boundingVolumeWarnings = (0, _nodeDebug.validateNodeBoundingVolumes)(node);
913
937
 
@@ -919,30 +943,30 @@ var I3SConverter = function () {
919
943
  nodes.push(node);
920
944
  nodesInPage.push(nodeInPage);
921
945
 
922
- case 30:
946
+ case 31:
923
947
  _context10.next = 17;
924
948
  break;
925
949
 
926
- case 32:
927
- _context10.next = 37;
950
+ case 33:
951
+ _context10.next = 38;
928
952
  break;
929
953
 
930
- case 34:
931
- _context10.prev = 34;
954
+ case 35:
955
+ _context10.prev = 35;
932
956
  _context10.t0 = _context10["catch"](15);
933
957
 
934
958
  _iterator5.e(_context10.t0);
935
959
 
936
- case 37:
937
- _context10.prev = 37;
960
+ case 38:
961
+ _context10.prev = 38;
938
962
 
939
963
  _iterator5.f();
940
964
 
941
- return _context10.finish(37);
965
+ return _context10.finish(38);
942
966
 
943
- case 40:
967
+ case 41:
944
968
  sourceTile.unloadContent();
945
- _context10.next = 43;
969
+ _context10.next = 44;
946
970
  return this._addChildrenWithNeighborsAndWriteFile({
947
971
  parentNode: nodes[0],
948
972
  sourceTiles: sourceTile.children,
@@ -950,15 +974,15 @@ var I3SConverter = function () {
950
974
  level: level + 1
951
975
  });
952
976
 
953
- case 43:
977
+ case 44:
954
978
  return _context10.abrupt("return", nodes);
955
979
 
956
- case 44:
980
+ case 45:
957
981
  case "end":
958
982
  return _context10.stop();
959
983
  }
960
984
  }
961
- }, _callee10, this, [[15, 34, 37, 40]]);
985
+ }, _callee10, this, [[15, 35, 38, 41]]);
962
986
  }));
963
987
 
964
988
  function _createNode(_x16, _x17, _x18, _x19) {
@@ -998,7 +1022,7 @@ var I3SConverter = function () {
998
1022
 
999
1023
  case 2:
1000
1024
  _context11.next = 4;
1001
- 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);
1025
+ 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);
1002
1026
 
1003
1027
  case 4:
1004
1028
  resourcesData = _context11.sent;
@@ -1180,51 +1204,35 @@ var I3SConverter = function () {
1180
1204
  while (1) {
1181
1205
  switch (_context13.prev = _context13.next) {
1182
1206
  case 0:
1183
- if (!this.options.slpk) {
1184
- _context13.next = 7;
1185
- break;
1186
- }
1187
-
1188
- slpkGeometryPath = (0, _path.join)(childPath, 'geometries');
1189
- _context13.next = 4;
1190
- return (0, _fileUtils.writeFileForSlpk)(slpkGeometryPath, geometryBuffer, '0.bin');
1191
-
1192
- case 4:
1193
- this.fileMap["".concat(slpkChildPath, "/geometries/0.bin.gz")] = _context13.sent;
1194
- _context13.next = 10;
1195
- break;
1196
-
1197
- case 7:
1198
- geometryPath = (0, _path.join)(childPath, 'geometries/0/');
1199
- _context13.next = 10;
1200
- return (0, _fileUtils.writeFile)(geometryPath, geometryBuffer, 'index.bin');
1201
-
1202
- case 10:
1203
- if (!this.options.draco) {
1204
- _context13.next = 21;
1205
- break;
1207
+ if (this.options.slpk) {
1208
+ slpkGeometryPath = (0, _path.join)(childPath, 'geometries');
1209
+ this.writeQueue.enqueue({
1210
+ archiveKey: "".concat(slpkChildPath, "/geometries/0.bin.gz"),
1211
+ writePromise: (0, _fileUtils.writeFileForSlpk)(slpkGeometryPath, geometryBuffer, '0.bin')
1212
+ });
1213
+ } else {
1214
+ geometryPath = (0, _path.join)(childPath, 'geometries/0/');
1215
+ this.writeQueue.enqueue({
1216
+ writePromise: (0, _fileUtils.writeFile)(geometryPath, geometryBuffer, 'index.bin')
1217
+ });
1206
1218
  }
1207
1219
 
1208
- if (!this.options.slpk) {
1209
- _context13.next = 18;
1210
- break;
1220
+ if (this.options.draco) {
1221
+ if (this.options.slpk) {
1222
+ slpkCompressedGeometryPath = (0, _path.join)(childPath, 'geometries');
1223
+ this.writeQueue.enqueue({
1224
+ archiveKey: "".concat(slpkChildPath, "/geometries/1.bin.gz"),
1225
+ writePromise: (0, _fileUtils.writeFileForSlpk)(slpkCompressedGeometryPath, compressedGeometry, '1.bin')
1226
+ });
1227
+ } else {
1228
+ compressedGeometryPath = (0, _path.join)(childPath, 'geometries/1/');
1229
+ this.writeQueue.enqueue({
1230
+ writePromise: (0, _fileUtils.writeFile)(compressedGeometryPath, compressedGeometry, 'index.bin')
1231
+ });
1232
+ }
1211
1233
  }
1212
1234
 
1213
- slpkCompressedGeometryPath = (0, _path.join)(childPath, 'geometries');
1214
- _context13.next = 15;
1215
- return (0, _fileUtils.writeFileForSlpk)(slpkCompressedGeometryPath, compressedGeometry, '1.bin');
1216
-
1217
- case 15:
1218
- this.fileMap["".concat(slpkChildPath, "/geometries/1.bin.gz")] = _context13.sent;
1219
- _context13.next = 21;
1220
- break;
1221
-
1222
- case 18:
1223
- compressedGeometryPath = (0, _path.join)(childPath, 'geometries/1/');
1224
- _context13.next = 21;
1225
- return (0, _fileUtils.writeFile)(compressedGeometryPath, compressedGeometry, 'index.bin');
1226
-
1227
- case 21:
1235
+ case 2:
1228
1236
  case "end":
1229
1237
  return _context13.stop();
1230
1238
  }
@@ -1247,30 +1255,32 @@ var I3SConverter = function () {
1247
1255
  while (1) {
1248
1256
  switch (_context14.prev = _context14.next) {
1249
1257
  case 0:
1250
- sharedResources.nodePath = nodePath;
1251
- sharedData = (0, _jsonMapTransform.default)(sharedResources, (0, _sharedResources.SHARED_RESOURCES)());
1252
- sharedDataStr = JSON.stringify(sharedData);
1253
-
1254
- if (!this.options.slpk) {
1255
- _context14.next = 10;
1258
+ if (sharedResources) {
1259
+ _context14.next = 2;
1256
1260
  break;
1257
1261
  }
1258
1262
 
1259
- slpkSharedPath = (0, _path.join)(childPath, 'shared');
1260
- _context14.next = 7;
1261
- return (0, _fileUtils.writeFileForSlpk)(slpkSharedPath, sharedDataStr, 'sharedResource.json');
1263
+ return _context14.abrupt("return");
1262
1264
 
1263
- case 7:
1264
- this.fileMap["".concat(slpkChildPath, "/shared/sharedResource.json.gz")] = _context14.sent;
1265
- _context14.next = 13;
1266
- break;
1265
+ case 2:
1266
+ sharedResources.nodePath = nodePath;
1267
+ sharedData = (0, _jsonMapTransform.default)(sharedResources, (0, _sharedResources.SHARED_RESOURCES)());
1268
+ sharedDataStr = JSON.stringify(sharedData);
1267
1269
 
1268
- case 10:
1269
- sharedPath = (0, _path.join)(childPath, 'shared/');
1270
- _context14.next = 13;
1271
- return (0, _fileUtils.writeFile)(sharedPath, sharedDataStr);
1270
+ if (this.options.slpk) {
1271
+ slpkSharedPath = (0, _path.join)(childPath, 'shared');
1272
+ this.writeQueue.enqueue({
1273
+ archiveKey: "".concat(slpkChildPath, "/shared/sharedResource.json.gz"),
1274
+ writePromise: (0, _fileUtils.writeFileForSlpk)(slpkSharedPath, sharedDataStr, 'sharedResource.json')
1275
+ });
1276
+ } else {
1277
+ sharedPath = (0, _path.join)(childPath, 'shared/');
1278
+ this.writeQueue.enqueue({
1279
+ writePromise: (0, _fileUtils.writeFile)(sharedPath, sharedDataStr)
1280
+ });
1281
+ }
1272
1282
 
1273
- case 13:
1283
+ case 6:
1274
1284
  case "end":
1275
1285
  return _context14.stop();
1276
1286
  }
@@ -1294,7 +1304,7 @@ var I3SConverter = function () {
1294
1304
  switch (_context15.prev = _context15.next) {
1295
1305
  case 0:
1296
1306
  if (!texture) {
1297
- _context15.next = 33;
1307
+ _context15.next = 25;
1298
1308
  break;
1299
1309
  }
1300
1310
 
@@ -1302,7 +1312,7 @@ var I3SConverter = function () {
1302
1312
  formats = [];
1303
1313
  textureData = texture.bufferView.data;
1304
1314
  _context15.t0 = format;
1305
- _context15.next = _context15.t0 === 'jpg' ? 7 : _context15.t0 === 'png' ? 7 : _context15.t0 === 'ktx2' ? 20 : 32;
1315
+ _context15.next = _context15.t0 === 'jpg' ? 7 : _context15.t0 === 'png' ? 7 : _context15.t0 === 'ktx2' ? 16 : 24;
1306
1316
  break;
1307
1317
 
1308
1318
  case 7:
@@ -1315,7 +1325,7 @@ var I3SConverter = function () {
1315
1325
 
1316
1326
  case 10:
1317
1327
  if (!this.generateTextures) {
1318
- _context15.next = 19;
1328
+ _context15.next = 15;
1319
1329
  break;
1320
1330
  }
1321
1331
 
@@ -1323,30 +1333,28 @@ var I3SConverter = function () {
1323
1333
  name: '1',
1324
1334
  format: 'ktx2'
1325
1335
  });
1326
- _context15.t1 = Uint8Array;
1336
+ ktx2TextureData = (0, _core.encode)(texture.image, _textures.KTX2BasisWriterWorker, _objectSpread(_objectSpread({}, _textures.KTX2BasisWriterWorker.options), {}, {
1337
+ source: this.workerSource.ktx2,
1338
+ reuseWorkers: true,
1339
+ _nodeWorkers: true
1340
+ }));
1327
1341
  _context15.next = 15;
1328
- return (0, _core.encode)(texture.image, _textures.KTX2BasisUniversalTextureWriter);
1329
-
1330
- case 15:
1331
- _context15.t2 = _context15.sent;
1332
- ktx2TextureData = new _context15.t1(_context15.t2);
1333
- _context15.next = 19;
1334
1342
  return this.writeTextureFile(ktx2TextureData, '1', 'ktx2', childPath, slpkChildPath);
1335
1343
 
1336
- case 19:
1337
- return _context15.abrupt("break", 32);
1344
+ case 15:
1345
+ return _context15.abrupt("break", 24);
1338
1346
 
1339
- case 20:
1347
+ case 16:
1340
1348
  formats.push({
1341
1349
  name: '1',
1342
1350
  format: format
1343
1351
  });
1344
- _context15.next = 23;
1352
+ _context15.next = 19;
1345
1353
  return this.writeTextureFile(textureData, '1', format, childPath, slpkChildPath);
1346
1354
 
1347
- case 23:
1355
+ case 19:
1348
1356
  if (!this.generateTextures) {
1349
- _context15.next = 32;
1357
+ _context15.next = 24;
1350
1358
  break;
1351
1359
  }
1352
1360
 
@@ -1354,24 +1362,18 @@ var I3SConverter = function () {
1354
1362
  name: '0',
1355
1363
  format: 'jpg'
1356
1364
  });
1357
- _context15.t3 = Uint8Array;
1358
- _context15.next = 28;
1359
- return (0, _core.encode)(texture.image.data[0], _images.ImageWriter);
1360
-
1361
- case 28:
1362
- _context15.t4 = _context15.sent;
1363
- decodedFromKTX2TextureData = new _context15.t3(_context15.t4);
1364
- _context15.next = 32;
1365
+ decodedFromKTX2TextureData = (0, _core.encode)(texture.image.data[0], _images.ImageWriter);
1366
+ _context15.next = 24;
1365
1367
  return this.writeTextureFile(decodedFromKTX2TextureData, '0', 'jpg', childPath, slpkChildPath);
1366
1368
 
1367
- case 32:
1369
+ case 24:
1368
1370
  if (!this.layers0.textureSetDefinitions.length) {
1369
1371
  this.layers0.textureSetDefinitions.push({
1370
1372
  formats: formats
1371
1373
  });
1372
1374
  }
1373
1375
 
1374
- case 33:
1376
+ case 25:
1375
1377
  case "end":
1376
1378
  return _context15.stop();
1377
1379
  }
@@ -1394,27 +1396,21 @@ var I3SConverter = function () {
1394
1396
  while (1) {
1395
1397
  switch (_context16.prev = _context16.next) {
1396
1398
  case 0:
1397
- if (!this.options.slpk) {
1398
- _context16.next = 8;
1399
- break;
1399
+ if (this.options.slpk) {
1400
+ slpkTexturePath = (0, _path.join)(childPath, 'textures');
1401
+ compress = false;
1402
+ this.writeQueue.enqueue({
1403
+ archiveKey: "".concat(slpkChildPath, "/textures/").concat(name, ".").concat(format),
1404
+ writePromise: (0, _fileUtils.writeFileForSlpk)(slpkTexturePath, textureData, "".concat(name, ".").concat(format), compress)
1405
+ });
1406
+ } else {
1407
+ texturePath = (0, _path.join)(childPath, "textures/".concat(name, "/"));
1408
+ this.writeQueue.enqueue({
1409
+ writePromise: (0, _fileUtils.writeFile)(texturePath, textureData, "index.".concat(format))
1410
+ });
1400
1411
  }
1401
1412
 
1402
- slpkTexturePath = (0, _path.join)(childPath, 'textures');
1403
- compress = false;
1404
- _context16.next = 5;
1405
- return (0, _fileUtils.writeFileForSlpk)(slpkTexturePath, textureData, "".concat(name, ".").concat(format), compress);
1406
-
1407
- case 5:
1408
- this.fileMap["".concat(slpkChildPath, "/textures/").concat(name, ".").concat(format)] = _context16.sent;
1409
- _context16.next = 11;
1410
- break;
1411
-
1412
- case 8:
1413
- texturePath = (0, _path.join)(childPath, "textures/".concat(name, "/"));
1414
- _context16.next = 11;
1415
- return (0, _fileUtils.writeFile)(texturePath, textureData, "index.".concat(format));
1416
-
1417
- case 11:
1413
+ case 1:
1418
1414
  case "end":
1419
1415
  return _context16.stop();
1420
1416
  }
@@ -1431,55 +1427,47 @@ var I3SConverter = function () {
1431
1427
  }, {
1432
1428
  key: "_writeAttributes",
1433
1429
  value: function () {
1434
- var _writeAttributes2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee17(attributes, childPath, slpkChildPath) {
1430
+ var _writeAttributes2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee17() {
1435
1431
  var _this$layers4, _this$layers4$attribu;
1436
1432
 
1437
- var index, folderName, fileBuffer, slpkAttributesPath, attributesPath;
1433
+ var attributes,
1434
+ childPath,
1435
+ slpkChildPath,
1436
+ index,
1437
+ folderName,
1438
+ fileBuffer,
1439
+ slpkAttributesPath,
1440
+ attributesPath,
1441
+ _args17 = arguments;
1438
1442
  return _regenerator.default.wrap(function _callee17$(_context17) {
1439
1443
  while (1) {
1440
1444
  switch (_context17.prev = _context17.next) {
1441
1445
  case 0:
1442
- if (!(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)) {
1443
- _context17.next = 18;
1444
- break;
1445
- }
1446
-
1447
- index = 0;
1448
-
1449
- case 2:
1450
- if (!(index < attributes.length)) {
1451
- _context17.next = 18;
1452
- break;
1453
- }
1454
-
1455
- folderName = this.layers0.attributeStorageInfo[index].key;
1456
- fileBuffer = new Uint8Array(attributes[index]);
1457
-
1458
- if (!this.options.slpk) {
1459
- _context17.next = 12;
1460
- break;
1446
+ attributes = _args17.length > 0 && _args17[0] !== undefined ? _args17[0] : [];
1447
+ childPath = _args17.length > 1 ? _args17[1] : undefined;
1448
+ slpkChildPath = _args17.length > 2 ? _args17[2] : undefined;
1449
+
1450
+ 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) {
1451
+ for (index = 0; index < attributes.length; index++) {
1452
+ folderName = this.layers0.attributeStorageInfo[index].key;
1453
+ fileBuffer = new Uint8Array(attributes[index]);
1454
+
1455
+ if (this.options.slpk) {
1456
+ slpkAttributesPath = (0, _path.join)(childPath, 'attributes', folderName);
1457
+ this.writeQueue.enqueue({
1458
+ archiveKey: "".concat(slpkChildPath, "/attributes/").concat(folderName, ".bin.gz"),
1459
+ writePromise: (0, _fileUtils.writeFileForSlpk)(slpkAttributesPath, fileBuffer, '0.bin')
1460
+ });
1461
+ } else {
1462
+ attributesPath = (0, _path.join)(childPath, "attributes/".concat(folderName, "/0"));
1463
+ this.writeQueue.enqueue({
1464
+ writePromise: (0, _fileUtils.writeFile)(attributesPath, fileBuffer, 'index.bin')
1465
+ });
1466
+ }
1467
+ }
1461
1468
  }
1462
1469
 
1463
- slpkAttributesPath = (0, _path.join)(childPath, 'attributes', folderName);
1464
- _context17.next = 9;
1465
- return (0, _fileUtils.writeFileForSlpk)(slpkAttributesPath, fileBuffer, '0.bin');
1466
-
1467
- case 9:
1468
- this.fileMap["".concat(slpkChildPath, "/attributes/").concat(folderName, ".bin.gz")] = _context17.sent;
1469
- _context17.next = 15;
1470
- break;
1471
-
1472
- case 12:
1473
- attributesPath = (0, _path.join)(childPath, "attributes/".concat(folderName, "/0"));
1474
- _context17.next = 15;
1475
- return (0, _fileUtils.writeFile)(attributesPath, fileBuffer, 'index.bin');
1476
-
1477
- case 15:
1478
- index++;
1479
- _context17.next = 2;
1480
- break;
1481
-
1482
- case 18:
1470
+ case 4:
1483
1471
  case "end":
1484
1472
  return _context17.stop();
1485
1473
  }
@@ -1487,7 +1475,7 @@ var I3SConverter = function () {
1487
1475
  }, _callee17, this);
1488
1476
  }));
1489
1477
 
1490
- function _writeAttributes(_x39, _x40, _x41) {
1478
+ function _writeAttributes() {
1491
1479
  return _writeAttributes2.apply(this, arguments);
1492
1480
  }
1493
1481
 
@@ -1737,7 +1725,7 @@ var I3SConverter = function () {
1737
1725
  }, _callee18, this);
1738
1726
  }));
1739
1727
 
1740
- function _finishConversion(_x42) {
1728
+ function _finishConversion(_x39) {
1741
1729
  return _finishConversion2.apply(this, arguments);
1742
1730
  }
1743
1731
 
@@ -1854,6 +1842,84 @@ var I3SConverter = function () {
1854
1842
 
1855
1843
  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);
1856
1844
  }
1845
+ }, {
1846
+ key: "loadWorkers",
1847
+ value: function () {
1848
+ var _loadWorkers = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee21() {
1849
+ var url, _sourceResponse, _source, _url, _sourceResponse2, _source2, i3sAttributesWorkerUrl, sourceResponse, source;
1850
+
1851
+ return _regenerator.default.wrap(function _callee21$(_context21) {
1852
+ while (1) {
1853
+ switch (_context21.prev = _context21.next) {
1854
+ case 0:
1855
+ console.log("Loading workers source...");
1856
+
1857
+ if (!this.options.draco) {
1858
+ _context21.next = 10;
1859
+ break;
1860
+ }
1861
+
1862
+ url = (0, _workerUtils.getWorkerURL)(_draco.DracoWriterWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1863
+ _context21.next = 5;
1864
+ return (0, _core.fetchFile)(url);
1865
+
1866
+ case 5:
1867
+ _sourceResponse = _context21.sent;
1868
+ _context21.next = 8;
1869
+ return _sourceResponse.text();
1870
+
1871
+ case 8:
1872
+ _source = _context21.sent;
1873
+ this.workerSource.draco = _source;
1874
+
1875
+ case 10:
1876
+ if (!this.generateTextures) {
1877
+ _context21.next = 19;
1878
+ break;
1879
+ }
1880
+
1881
+ _url = (0, _workerUtils.getWorkerURL)(_textures.KTX2BasisWriterWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1882
+ _context21.next = 14;
1883
+ return (0, _core.fetchFile)(_url);
1884
+
1885
+ case 14:
1886
+ _sourceResponse2 = _context21.sent;
1887
+ _context21.next = 17;
1888
+ return _sourceResponse2.text();
1889
+
1890
+ case 17:
1891
+ _source2 = _context21.sent;
1892
+ this.workerSource.ktx2 = _source2;
1893
+
1894
+ case 19:
1895
+ i3sAttributesWorkerUrl = (0, _workerUtils.getWorkerURL)(_i3sAttributesWorker.I3SAttributesWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1896
+ _context21.next = 22;
1897
+ return (0, _core.fetchFile)(i3sAttributesWorkerUrl);
1898
+
1899
+ case 22:
1900
+ sourceResponse = _context21.sent;
1901
+ _context21.next = 25;
1902
+ return sourceResponse.text();
1903
+
1904
+ case 25:
1905
+ source = _context21.sent;
1906
+ this.workerSource.I3SAttributes = source;
1907
+ console.log("Loading workers source completed!");
1908
+
1909
+ case 28:
1910
+ case "end":
1911
+ return _context21.stop();
1912
+ }
1913
+ }
1914
+ }, _callee21, this);
1915
+ }));
1916
+
1917
+ function loadWorkers() {
1918
+ return _loadWorkers.apply(this, arguments);
1919
+ }
1920
+
1921
+ return loadWorkers;
1922
+ }()
1857
1923
  }]);
1858
1924
  return I3SConverter;
1859
1925
  }();