@loaders.gl/tile-converter 3.2.0-alpha.1 → 3.2.0-alpha.4

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 (203) 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 +5 -1
  6. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
  7. package/dist/3d-tiles-converter/3d-tiles-converter.js +34 -3
  8. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +5 -4
  9. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -1
  10. package/dist/3d-tiles-converter/helpers/b3dm-converter.js +10 -10
  11. package/dist/constants.d.ts +2 -0
  12. package/dist/constants.d.ts.map +1 -0
  13. package/dist/constants.js +4 -0
  14. package/dist/converter-cli.d.ts +2 -0
  15. package/dist/converter-cli.d.ts.map +1 -0
  16. package/dist/converter-cli.js +232 -0
  17. package/dist/converter.min.js +68 -68
  18. package/dist/deps-installer/deps-installer.d.ts +11 -1
  19. package/dist/deps-installer/deps-installer.d.ts.map +1 -1
  20. package/dist/deps-installer/deps-installer.js +10 -0
  21. package/dist/dist.min.js +910 -790
  22. package/dist/es5/3d-tiles-attributes-worker.js +29 -0
  23. package/dist/es5/3d-tiles-attributes-worker.js.map +1 -0
  24. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +116 -46
  25. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  26. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +21 -23
  27. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  28. package/dist/es5/constants.js +9 -0
  29. package/dist/es5/constants.js.map +1 -0
  30. package/dist/es5/converter-cli.js +306 -0
  31. package/dist/es5/converter-cli.js.map +1 -0
  32. package/dist/es5/deps-installer/deps-installer.js.map +1 -1
  33. package/dist/es5/i3s-attributes-worker.js +29 -0
  34. package/dist/es5/i3s-attributes-worker.js.map +1 -0
  35. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +19 -11
  36. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  37. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +2 -2
  38. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  39. package/dist/es5/i3s-converter/helpers/geometry-converter.js +271 -182
  40. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  41. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +71 -0
  42. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  43. package/dist/es5/i3s-converter/helpers/node-pages.js +47 -99
  44. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
  45. package/dist/es5/i3s-converter/i3s-converter.js +293 -223
  46. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  47. package/dist/es5/i3s-converter/json-templates/layers.js +29 -0
  48. package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -1
  49. package/dist/es5/index.js +0 -16
  50. package/dist/es5/index.js.map +1 -1
  51. package/dist/es5/lib/utils/compress-util.js +14 -17
  52. package/dist/es5/lib/utils/compress-util.js.map +1 -1
  53. package/dist/es5/lib/utils/file-utils.js +39 -14
  54. package/dist/es5/lib/utils/file-utils.js.map +1 -1
  55. package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
  56. package/dist/es5/lib/utils/queue.js +61 -0
  57. package/dist/es5/lib/utils/queue.js.map +1 -0
  58. package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
  59. package/dist/es5/lib/utils/write-queue.js +225 -0
  60. package/dist/es5/lib/utils/write-queue.js.map +1 -0
  61. package/dist/es5/pgm-loader.js +1 -1
  62. package/dist/es5/workers/3d-tiles-attributes-worker.js +37 -0
  63. package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -0
  64. package/dist/es5/workers/i3s-attributes-worker.js +40 -0
  65. package/dist/es5/workers/i3s-attributes-worker.js.map +1 -0
  66. package/dist/esm/3d-tiles-attributes-worker.js +16 -0
  67. package/dist/esm/3d-tiles-attributes-worker.js.map +1 -0
  68. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +36 -4
  69. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  70. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +16 -18
  71. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  72. package/dist/esm/constants.js +2 -0
  73. package/dist/esm/constants.js.map +1 -0
  74. package/dist/esm/converter-cli.js +230 -0
  75. package/dist/esm/converter-cli.js.map +1 -0
  76. package/dist/esm/deps-installer/deps-installer.js.map +1 -1
  77. package/dist/esm/i3s-attributes-worker.js +16 -0
  78. package/dist/esm/i3s-attributes-worker.js.map +1 -0
  79. package/dist/esm/i3s-converter/helpers/coordinate-converter.js +19 -11
  80. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  81. package/dist/esm/i3s-converter/helpers/geometry-attributes.js +2 -2
  82. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  83. package/dist/esm/i3s-converter/helpers/geometry-converter.js +121 -62
  84. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  85. package/dist/esm/i3s-converter/helpers/gltf-attributes.js +54 -0
  86. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  87. package/dist/esm/i3s-converter/helpers/node-pages.js +12 -4
  88. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
  89. package/dist/esm/i3s-converter/i3s-converter.js +157 -52
  90. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  91. package/dist/esm/i3s-converter/json-templates/layers.js +25 -0
  92. package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -1
  93. package/dist/esm/index.js +0 -2
  94. package/dist/esm/index.js.map +1 -1
  95. package/dist/esm/lib/utils/compress-util.js +6 -8
  96. package/dist/esm/lib/utils/compress-util.js.map +1 -1
  97. package/dist/esm/lib/utils/file-utils.js +11 -1
  98. package/dist/esm/lib/utils/file-utils.js.map +1 -1
  99. package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
  100. package/dist/esm/lib/utils/queue.js +19 -0
  101. package/dist/esm/lib/utils/queue.js.map +1 -0
  102. package/dist/esm/lib/utils/statistic-utills.js.map +1 -1
  103. package/dist/esm/lib/utils/write-queue.js +88 -0
  104. package/dist/esm/lib/utils/write-queue.js.map +1 -0
  105. package/dist/esm/pgm-loader.js +1 -1
  106. package/dist/esm/workers/3d-tiles-attributes-worker.js +5 -0
  107. package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -0
  108. package/dist/esm/workers/i3s-attributes-worker.js +4 -0
  109. package/dist/esm/workers/i3s-attributes-worker.js.map +1 -0
  110. package/dist/i3s-attributes-worker.d.ts +33 -0
  111. package/dist/i3s-attributes-worker.d.ts.map +1 -0
  112. package/dist/i3s-attributes-worker.js +10 -0
  113. package/dist/i3s-attributes-worker.js.map +7 -0
  114. package/dist/i3s-converter/helpers/coordinate-converter.d.ts +7 -7
  115. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -1
  116. package/dist/i3s-converter/helpers/coordinate-converter.js +25 -21
  117. package/dist/i3s-converter/helpers/geometry-attributes.d.ts +2 -2
  118. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -1
  119. package/dist/i3s-converter/helpers/geometry-attributes.js +2 -1
  120. package/dist/i3s-converter/helpers/geometry-converter.d.ts +28 -11
  121. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
  122. package/dist/i3s-converter/helpers/geometry-converter.js +223 -113
  123. package/dist/i3s-converter/helpers/gltf-attributes.d.ts +9 -0
  124. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -0
  125. package/dist/i3s-converter/helpers/gltf-attributes.js +56 -0
  126. package/dist/i3s-converter/helpers/node-pages.d.ts +6 -5
  127. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -1
  128. package/dist/i3s-converter/helpers/node-pages.js +13 -8
  129. package/dist/i3s-converter/i3s-converter.d.ts +7 -5
  130. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  131. package/dist/i3s-converter/i3s-converter.js +126 -40
  132. package/dist/i3s-converter/json-templates/layers.d.ts +4 -0
  133. package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -1
  134. package/dist/i3s-converter/json-templates/layers.js +24 -0
  135. package/dist/i3s-converter/types.d.ts +83 -8
  136. package/dist/i3s-converter/types.d.ts.map +1 -1
  137. package/dist/index.d.ts +0 -2
  138. package/dist/index.d.ts.map +1 -1
  139. package/dist/index.js +1 -5
  140. package/dist/lib/utils/compress-util.d.ts +44 -5
  141. package/dist/lib/utils/compress-util.d.ts.map +1 -1
  142. package/dist/lib/utils/compress-util.js +73 -6
  143. package/dist/lib/utils/file-utils.d.ts +34 -5
  144. package/dist/lib/utils/file-utils.d.ts.map +1 -1
  145. package/dist/lib/utils/file-utils.js +40 -1
  146. package/dist/lib/utils/lod-conversion-utils.d.ts +25 -4
  147. package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -1
  148. package/dist/lib/utils/lod-conversion-utils.js +21 -2
  149. package/dist/lib/utils/queue.d.ts +7 -0
  150. package/dist/lib/utils/queue.d.ts.map +1 -0
  151. package/dist/lib/utils/queue.js +18 -0
  152. package/dist/lib/utils/statistic-utills.d.ts +2 -2
  153. package/dist/lib/utils/statistic-utills.d.ts.map +1 -1
  154. package/dist/lib/utils/write-queue.d.ts +22 -0
  155. package/dist/lib/utils/write-queue.d.ts.map +1 -0
  156. package/dist/lib/utils/write-queue.js +62 -0
  157. package/dist/workers/3d-tiles-attributes-worker.d.ts +2 -0
  158. package/dist/workers/3d-tiles-attributes-worker.d.ts.map +1 -0
  159. package/dist/workers/3d-tiles-attributes-worker.js +9 -0
  160. package/dist/workers/i3s-attributes-worker.d.ts +2 -0
  161. package/dist/workers/i3s-attributes-worker.d.ts.map +1 -0
  162. package/dist/workers/i3s-attributes-worker.js +5 -0
  163. package/package.json +23 -18
  164. package/src/3d-tiles-attributes-worker.ts +43 -0
  165. package/src/3d-tiles-converter/3d-tiles-converter.ts +50 -5
  166. package/src/3d-tiles-converter/helpers/b3dm-converter.ts +15 -13
  167. package/src/constants.ts +2 -0
  168. package/src/converter-cli.ts +310 -0
  169. package/src/deps-installer/{deps-installer.js → deps-installer.ts} +11 -1
  170. package/src/i3s-attributes-worker.ts +46 -0
  171. package/src/i3s-converter/helpers/coordinate-converter.ts +29 -24
  172. package/src/i3s-converter/helpers/geometry-attributes.ts +4 -3
  173. package/src/i3s-converter/helpers/{geometry-converter.js → geometry-converter.ts} +425 -179
  174. package/src/i3s-converter/helpers/gltf-attributes.ts +68 -0
  175. package/src/i3s-converter/helpers/node-pages.ts +25 -17
  176. package/src/i3s-converter/i3s-converter.ts +150 -90
  177. package/src/i3s-converter/json-templates/layers.ts +25 -0
  178. package/src/i3s-converter/types.ts +90 -8
  179. package/src/index.ts +0 -4
  180. package/src/lib/utils/{compress-util.js → compress-util.ts} +105 -18
  181. package/src/lib/utils/file-utils.ts +84 -0
  182. package/src/lib/utils/{lod-conversion-utils.js → lod-conversion-utils.ts} +27 -5
  183. package/src/lib/utils/queue.ts +17 -0
  184. package/src/lib/utils/{statistic-utills.js → statistic-utills.ts} +0 -0
  185. package/src/lib/utils/write-queue.ts +75 -0
  186. package/src/workers/3d-tiles-attributes-worker.ts +6 -0
  187. package/src/workers/i3s-attributes-worker.ts +6 -0
  188. package/dist/es5/deps-installer/deps-installer.d.ts +0 -10
  189. package/dist/es5/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  190. package/dist/es5/lib/utils/compress-util.d.ts +0 -53
  191. package/dist/es5/lib/utils/file-utils.d.ts +0 -43
  192. package/dist/es5/lib/utils/lod-conversion-utils.d.ts +0 -32
  193. package/dist/esm/deps-installer/deps-installer.d.ts +0 -10
  194. package/dist/esm/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  195. package/dist/esm/lib/utils/compress-util.d.ts +0 -53
  196. package/dist/esm/lib/utils/file-utils.d.ts +0 -43
  197. package/dist/esm/lib/utils/lod-conversion-utils.d.ts +0 -32
  198. package/src/deps-installer/deps-installer.d.ts +0 -10
  199. package/src/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  200. package/src/lib/utils/compress-util.d.ts +0 -53
  201. package/src/lib/utils/file-utils.d.ts +0 -43
  202. package/src/lib/utils/file-utils.js +0 -38
  203. package/src/lib/utils/lod-conversion-utils.d.ts +0 -32
@@ -69,6 +69,18 @@ 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
+
80
+ var _constants = require("../constants");
81
+
82
+ var _process$env;
83
+
72
84
  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
85
 
74
86
  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); }
@@ -79,7 +91,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
79
91
 
80
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; }
81
93
 
82
- var ION_DEFAULT_TOKEN = _process.default.env.IonToken || 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ';
94
+ var ION_DEFAULT_TOKEN = ((_process$env = _process.default.env) === null || _process$env === void 0 ? void 0 : _process$env.IonToken) || 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ';
83
95
  var HARDCODED_NODES_PER_PAGE = 64;
84
96
  var _3D_TILES = '3DTILES';
85
97
  var _3D_OBJECT_LAYER_TYPE = '3DObject';
@@ -94,7 +106,6 @@ var I3SConverter = function () {
94
106
  function I3SConverter() {
95
107
  (0, _classCallCheck2.default)(this, I3SConverter);
96
108
  (0, _defineProperty2.default)(this, "nodePages", void 0);
97
- (0, _defineProperty2.default)(this, "fileMap", void 0);
98
109
  (0, _defineProperty2.default)(this, "options", void 0);
99
110
  (0, _defineProperty2.default)(this, "layers0Path", void 0);
100
111
  (0, _defineProperty2.default)(this, "materialMap", void 0);
@@ -113,8 +124,9 @@ var I3SConverter = function () {
113
124
  (0, _defineProperty2.default)(this, "generateTextures", void 0);
114
125
  (0, _defineProperty2.default)(this, "generateBoundingVolumes", void 0);
115
126
  (0, _defineProperty2.default)(this, "layersHasTexture", void 0);
127
+ (0, _defineProperty2.default)(this, "workerSource", {});
128
+ (0, _defineProperty2.default)(this, "writeQueue", new _writeQueue.default());
116
129
  this.nodePages = new _nodePages.default(_fileUtils.writeFile, HARDCODED_NODES_PER_PAGE);
117
- this.fileMap = {};
118
130
  this.options = {};
119
131
  this.layers0Path = '';
120
132
  this.materialMap = new Map();
@@ -136,11 +148,20 @@ var I3SConverter = function () {
136
148
  key: "convert",
137
149
  value: function () {
138
150
  var _convert = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
139
- var tilesetName, slpk, egmFilePath, inputUrl, validate, outputPath, draco, sevenZipExe, maxDepth, token, generateTextures, generateBoundingVolumes, preloadOptions, tilesetOptions, sourceTilesetJson;
151
+ var tilesetName, slpk, egmFilePath, inputUrl, validate, outputPath, draco, sevenZipExe, maxDepth, token, generateTextures, generateBoundingVolumes, preloadOptions, tilesetOptions, sourceTilesetJson, workerFarm;
140
152
  return _regenerator.default.wrap(function _callee$(_context) {
141
153
  while (1) {
142
154
  switch (_context.prev = _context.next) {
143
155
  case 0:
156
+ if (!_core.isBrowser) {
157
+ _context.next = 3;
158
+ break;
159
+ }
160
+
161
+ console.log(_constants.BROWSER_ERROR_MESSAGE);
162
+ return _context.abrupt("return", _constants.BROWSER_ERROR_MESSAGE);
163
+
164
+ case 3:
144
165
  this.conversionStartTime = _process.default.hrtime();
145
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;
146
167
  this.options = {
@@ -156,11 +177,13 @@ var I3SConverter = function () {
156
177
  this.Loader = inputUrl.indexOf(CESIUM_DATASET_PREFIX) !== -1 ? _dTiles.CesiumIonLoader : _dTiles.Tiles3DLoader;
157
178
  this.generateTextures = Boolean(generateTextures);
158
179
  this.generateBoundingVolumes = Boolean(generateBoundingVolumes);
180
+ this.writeQueue = new _writeQueue.default();
181
+ this.writeQueue.startListening();
159
182
  console.log('Loading egm file...');
160
- _context.next = 10;
183
+ _context.next = 15;
161
184
  return (0, _core.load)(egmFilePath, _pgmLoader.PGMLoader);
162
185
 
163
- case 10:
186
+ case 15:
164
187
  this.geoidHeightModel = _context.sent;
165
188
  console.log('Loading egm file completed!');
166
189
 
@@ -168,10 +191,15 @@ var I3SConverter = function () {
168
191
  this.nodePages.useWriteFunction(_fileUtils.writeFileForSlpk);
169
192
  }
170
193
 
171
- _context.next = 15;
194
+ _context.next = 20;
195
+ return this.loadWorkers();
196
+
197
+ case 20:
198
+ _context.prev = 20;
199
+ _context.next = 23;
172
200
  return this._fetchPreloadOptions();
173
201
 
174
- case 15:
202
+ case 23:
175
203
  preloadOptions = _context.sent;
176
204
  tilesetOptions = {
177
205
  loadOptions: {
@@ -188,32 +216,43 @@ var I3SConverter = function () {
188
216
  }
189
217
 
190
218
  Object.assign(tilesetOptions, preloadOptions);
191
- _context.next = 21;
219
+ _context.next = 29;
192
220
  return (0, _core.load)(inputUrl, this.Loader, tilesetOptions.loadOptions);
193
221
 
194
- case 21:
222
+ case 29:
195
223
  sourceTilesetJson = _context.sent;
196
224
  this.sourceTileset = new _tiles.Tileset3D(sourceTilesetJson, tilesetOptions);
197
- _context.next = 25;
225
+ _context.next = 33;
198
226
  return this._createAndSaveTileset(outputPath, tilesetName);
199
227
 
200
- case 25:
201
- _context.next = 27;
228
+ case 33:
229
+ _context.next = 35;
202
230
  return this._finishConversion({
203
231
  slpk: Boolean(slpk),
204
232
  outputPath: outputPath,
205
233
  tilesetName: tilesetName
206
234
  });
207
235
 
208
- case 27:
236
+ case 35:
209
237
  return _context.abrupt("return", sourceTilesetJson);
210
238
 
211
- case 28:
239
+ case 38:
240
+ _context.prev = 38;
241
+ _context.t0 = _context["catch"](20);
242
+ throw _context.t0;
243
+
244
+ case 41:
245
+ _context.prev = 41;
246
+ workerFarm = _workerUtils.WorkerFarm.getWorkerFarm({});
247
+ workerFarm.destroy();
248
+ return _context.finish(41);
249
+
250
+ case 45:
212
251
  case "end":
213
252
  return _context.stop();
214
253
  }
215
254
  }
216
- }, _callee, this);
255
+ }, _callee, this, [[20, 38, 41, 45]]);
217
256
  }));
218
257
 
219
258
  function convert(_x) {
@@ -283,13 +322,17 @@ var I3SConverter = function () {
283
322
 
284
323
  case 26:
285
324
  _context2.next = 28;
286
- return this.nodePages.save(this.layers0Path, this.fileMap, isCreateSlpk);
325
+ return this.nodePages.save(this.layers0Path, this.writeQueue, isCreateSlpk);
287
326
 
288
327
  case 28:
289
328
  _context2.next = 30;
290
- return this._createSlpk(tilesetPath);
329
+ return this.writeQueue.finalize();
291
330
 
292
331
  case 30:
332
+ _context2.next = 32;
333
+ return this._createSlpk(tilesetPath);
334
+
335
+ case 32:
293
336
  case "end":
294
337
  return _context2.stop();
295
338
  }
@@ -306,7 +349,10 @@ var I3SConverter = function () {
306
349
  }, {
307
350
  key: "_formLayers0",
308
351
  value: function _formLayers0(tilesetName) {
309
- var extent = (0, _coordinateConverter.convertCommonToI3SExtentCoordinate)(this.sourceTileset);
352
+ var _this$sourceTileset, _this$sourceTileset2, _this$sourceTileset2$;
353
+
354
+ 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));
355
+ var extent = [fullExtent.xmin, fullExtent.ymin, fullExtent.xmax, fullExtent.ymax];
310
356
  var layers0data = {
311
357
  version: "{".concat((0, _uuid.v4)().toUpperCase(), "}"),
312
358
  id: 0,
@@ -319,7 +365,8 @@ var I3SConverter = function () {
319
365
  nodePages: {
320
366
  nodesPerPage: HARDCODED_NODES_PER_PAGE
321
367
  },
322
- compressGeometry: this.options.draco
368
+ compressGeometry: this.options.draco,
369
+ fullExtent: fullExtent
323
370
  };
324
371
  this.layers0 = (0, _jsonMapTransform.default)(layers0data, (0, _layers.LAYERS)());
325
372
  }
@@ -358,7 +405,7 @@ var I3SConverter = function () {
358
405
 
359
406
  case 2:
360
407
  if (!this.isContentSupported(sourceRootTile)) {
361
- _context3.next = 21;
408
+ _context3.next = 14;
362
409
  break;
363
410
  }
364
411
 
@@ -376,29 +423,22 @@ var I3SConverter = function () {
376
423
  child = _yield$this$_createNo2[0];
377
424
  childPath = (0, _path.join)(this.layers0Path, 'nodes', child.path);
378
425
 
379
- if (!this.options.slpk) {
380
- _context3.next = 17;
381
- break;
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
+ });
382
435
  }
383
436
 
384
- _context3.next = 14;
385
- return (0, _fileUtils.writeFileForSlpk)(childPath, JSON.stringify(child), '3dNodeIndexDocument.json');
386
-
387
- case 14:
388
- this.fileMap['nodes/1/3dNodeIndexDocument.json.gz'] = _context3.sent;
389
- _context3.next = 19;
390
- break;
391
-
392
- case 17:
393
- _context3.next = 19;
394
- return (0, _fileUtils.writeFile)(childPath, JSON.stringify(child));
395
-
396
- case 19:
397
- _context3.next = 23;
437
+ _context3.next = 16;
398
438
  break;
399
439
 
400
- case 21:
401
- _context3.next = 23;
440
+ case 14:
441
+ _context3.next = 16;
402
442
  return this._addChildrenWithNeighborsAndWriteFile({
403
443
  parentNode: root0,
404
444
  sourceTiles: sourceRootTile.children,
@@ -406,11 +446,11 @@ var I3SConverter = function () {
406
446
  level: 1
407
447
  });
408
448
 
409
- case 23:
410
- _context3.next = 25;
449
+ case 16:
450
+ _context3.next = 18;
411
451
  return sourceRootTile.unloadContent();
412
452
 
413
- case 25:
453
+ case 18:
414
454
  case "end":
415
455
  return _context3.stop();
416
456
  }
@@ -432,24 +472,18 @@ var I3SConverter = function () {
432
472
  while (1) {
433
473
  switch (_context4.prev = _context4.next) {
434
474
  case 0:
435
- if (!this.options.slpk) {
436
- _context4.next = 6;
437
- break;
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
+ });
438
484
  }
439
485
 
440
- _context4.next = 3;
441
- return (0, _fileUtils.writeFileForSlpk)(this.layers0Path, JSON.stringify(this.layers0), '3dSceneLayer.json');
442
-
443
- case 3:
444
- this.fileMap['3dSceneLayer.json.gz'] = _context4.sent;
445
- _context4.next = 8;
446
- break;
447
-
448
- case 6:
449
- _context4.next = 8;
450
- return (0, _fileUtils.writeFile)(this.layers0Path, JSON.stringify(this.layers0));
451
-
452
- case 8:
486
+ case 1:
453
487
  case "end":
454
488
  return _context4.stop();
455
489
  }
@@ -471,24 +505,18 @@ var I3SConverter = function () {
471
505
  while (1) {
472
506
  switch (_context5.prev = _context5.next) {
473
507
  case 0:
474
- if (!this.options.slpk) {
475
- _context5.next = 6;
476
- break;
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
+ });
477
517
  }
478
518
 
479
- _context5.next = 3;
480
- return (0, _fileUtils.writeFileForSlpk)(rootPath, JSON.stringify(root0), '3dNodeIndexDocument.json');
481
-
482
- case 3:
483
- this.fileMap["nodes/".concat(nodePath, "/3dNodeIndexDocument.json.gz")] = _context5.sent;
484
- _context5.next = 8;
485
- break;
486
-
487
- case 6:
488
- _context5.next = 8;
489
- return (0, _fileUtils.writeFile)(rootPath, JSON.stringify(root0));
490
-
491
- case 8:
519
+ case 1:
492
520
  case "end":
493
521
  return _context5.stop();
494
522
  }
@@ -1008,7 +1036,7 @@ var I3SConverter = function () {
1008
1036
 
1009
1037
  case 2:
1010
1038
  _context11.next = 4;
1011
- 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);
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);
1012
1040
 
1013
1041
  case 4:
1014
1042
  resourcesData = _context11.sent;
@@ -1190,51 +1218,35 @@ var I3SConverter = function () {
1190
1218
  while (1) {
1191
1219
  switch (_context13.prev = _context13.next) {
1192
1220
  case 0:
1193
- if (!this.options.slpk) {
1194
- _context13.next = 7;
1195
- break;
1196
- }
1197
-
1198
- slpkGeometryPath = (0, _path.join)(childPath, 'geometries');
1199
- _context13.next = 4;
1200
- return (0, _fileUtils.writeFileForSlpk)(slpkGeometryPath, geometryBuffer, '0.bin');
1201
-
1202
- case 4:
1203
- this.fileMap["".concat(slpkChildPath, "/geometries/0.bin.gz")] = _context13.sent;
1204
- _context13.next = 10;
1205
- break;
1206
-
1207
- case 7:
1208
- geometryPath = (0, _path.join)(childPath, 'geometries/0/');
1209
- _context13.next = 10;
1210
- return (0, _fileUtils.writeFile)(geometryPath, geometryBuffer, 'index.bin');
1211
-
1212
- case 10:
1213
- if (!this.options.draco) {
1214
- _context13.next = 21;
1215
- break;
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
+ });
1216
1232
  }
1217
1233
 
1218
- if (!this.options.slpk) {
1219
- _context13.next = 18;
1220
- break;
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
+ });
1246
+ }
1221
1247
  }
1222
1248
 
1223
- slpkCompressedGeometryPath = (0, _path.join)(childPath, 'geometries');
1224
- _context13.next = 15;
1225
- return (0, _fileUtils.writeFileForSlpk)(slpkCompressedGeometryPath, compressedGeometry, '1.bin');
1226
-
1227
- case 15:
1228
- this.fileMap["".concat(slpkChildPath, "/geometries/1.bin.gz")] = _context13.sent;
1229
- _context13.next = 21;
1230
- break;
1231
-
1232
- case 18:
1233
- compressedGeometryPath = (0, _path.join)(childPath, 'geometries/1/');
1234
- _context13.next = 21;
1235
- return (0, _fileUtils.writeFile)(compressedGeometryPath, compressedGeometry, 'index.bin');
1236
-
1237
- case 21:
1249
+ case 2:
1238
1250
  case "end":
1239
1251
  return _context13.stop();
1240
1252
  }
@@ -1257,30 +1269,32 @@ var I3SConverter = function () {
1257
1269
  while (1) {
1258
1270
  switch (_context14.prev = _context14.next) {
1259
1271
  case 0:
1260
- sharedResources.nodePath = nodePath;
1261
- sharedData = (0, _jsonMapTransform.default)(sharedResources, (0, _sharedResources.SHARED_RESOURCES)());
1262
- sharedDataStr = JSON.stringify(sharedData);
1263
-
1264
- if (!this.options.slpk) {
1265
- _context14.next = 10;
1272
+ if (sharedResources) {
1273
+ _context14.next = 2;
1266
1274
  break;
1267
1275
  }
1268
1276
 
1269
- slpkSharedPath = (0, _path.join)(childPath, 'shared');
1270
- _context14.next = 7;
1271
- return (0, _fileUtils.writeFileForSlpk)(slpkSharedPath, sharedDataStr, 'sharedResource.json');
1277
+ return _context14.abrupt("return");
1272
1278
 
1273
- case 7:
1274
- this.fileMap["".concat(slpkChildPath, "/shared/sharedResource.json.gz")] = _context14.sent;
1275
- _context14.next = 13;
1276
- break;
1279
+ case 2:
1280
+ sharedResources.nodePath = nodePath;
1281
+ sharedData = (0, _jsonMapTransform.default)(sharedResources, (0, _sharedResources.SHARED_RESOURCES)());
1282
+ sharedDataStr = JSON.stringify(sharedData);
1277
1283
 
1278
- case 10:
1279
- sharedPath = (0, _path.join)(childPath, 'shared/');
1280
- _context14.next = 13;
1281
- return (0, _fileUtils.writeFile)(sharedPath, sharedDataStr);
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
+ });
1295
+ }
1282
1296
 
1283
- case 13:
1297
+ case 6:
1284
1298
  case "end":
1285
1299
  return _context14.stop();
1286
1300
  }
@@ -1304,7 +1318,7 @@ var I3SConverter = function () {
1304
1318
  switch (_context15.prev = _context15.next) {
1305
1319
  case 0:
1306
1320
  if (!texture) {
1307
- _context15.next = 33;
1321
+ _context15.next = 25;
1308
1322
  break;
1309
1323
  }
1310
1324
 
@@ -1312,7 +1326,7 @@ var I3SConverter = function () {
1312
1326
  formats = [];
1313
1327
  textureData = texture.bufferView.data;
1314
1328
  _context15.t0 = format;
1315
- _context15.next = _context15.t0 === 'jpg' ? 7 : _context15.t0 === 'png' ? 7 : _context15.t0 === 'ktx2' ? 20 : 32;
1329
+ _context15.next = _context15.t0 === 'jpg' ? 7 : _context15.t0 === 'png' ? 7 : _context15.t0 === 'ktx2' ? 16 : 24;
1316
1330
  break;
1317
1331
 
1318
1332
  case 7:
@@ -1325,7 +1339,7 @@ var I3SConverter = function () {
1325
1339
 
1326
1340
  case 10:
1327
1341
  if (!this.generateTextures) {
1328
- _context15.next = 19;
1342
+ _context15.next = 15;
1329
1343
  break;
1330
1344
  }
1331
1345
 
@@ -1333,30 +1347,28 @@ var I3SConverter = function () {
1333
1347
  name: '1',
1334
1348
  format: 'ktx2'
1335
1349
  });
1336
- _context15.t1 = Uint8Array;
1350
+ ktx2TextureData = (0, _core.encode)(texture.image, _textures.KTX2BasisWriterWorker, _objectSpread(_objectSpread({}, _textures.KTX2BasisWriterWorker.options), {}, {
1351
+ source: this.workerSource.ktx2,
1352
+ reuseWorkers: true,
1353
+ _nodeWorkers: true
1354
+ }));
1337
1355
  _context15.next = 15;
1338
- return (0, _core.encode)(texture.image, _textures.KTX2BasisUniversalTextureWriter);
1339
-
1340
- case 15:
1341
- _context15.t2 = _context15.sent;
1342
- ktx2TextureData = new _context15.t1(_context15.t2);
1343
- _context15.next = 19;
1344
1356
  return this.writeTextureFile(ktx2TextureData, '1', 'ktx2', childPath, slpkChildPath);
1345
1357
 
1346
- case 19:
1347
- return _context15.abrupt("break", 32);
1358
+ case 15:
1359
+ return _context15.abrupt("break", 24);
1348
1360
 
1349
- case 20:
1361
+ case 16:
1350
1362
  formats.push({
1351
1363
  name: '1',
1352
1364
  format: format
1353
1365
  });
1354
- _context15.next = 23;
1366
+ _context15.next = 19;
1355
1367
  return this.writeTextureFile(textureData, '1', format, childPath, slpkChildPath);
1356
1368
 
1357
- case 23:
1369
+ case 19:
1358
1370
  if (!this.generateTextures) {
1359
- _context15.next = 32;
1371
+ _context15.next = 24;
1360
1372
  break;
1361
1373
  }
1362
1374
 
@@ -1364,24 +1376,18 @@ var I3SConverter = function () {
1364
1376
  name: '0',
1365
1377
  format: 'jpg'
1366
1378
  });
1367
- _context15.t3 = Uint8Array;
1368
- _context15.next = 28;
1369
- return (0, _core.encode)(texture.image.data[0], _images.ImageWriter);
1370
-
1371
- case 28:
1372
- _context15.t4 = _context15.sent;
1373
- decodedFromKTX2TextureData = new _context15.t3(_context15.t4);
1374
- _context15.next = 32;
1379
+ decodedFromKTX2TextureData = (0, _core.encode)(texture.image.data[0], _images.ImageWriter);
1380
+ _context15.next = 24;
1375
1381
  return this.writeTextureFile(decodedFromKTX2TextureData, '0', 'jpg', childPath, slpkChildPath);
1376
1382
 
1377
- case 32:
1383
+ case 24:
1378
1384
  if (!this.layers0.textureSetDefinitions.length) {
1379
1385
  this.layers0.textureSetDefinitions.push({
1380
1386
  formats: formats
1381
1387
  });
1382
1388
  }
1383
1389
 
1384
- case 33:
1390
+ case 25:
1385
1391
  case "end":
1386
1392
  return _context15.stop();
1387
1393
  }
@@ -1404,27 +1410,21 @@ var I3SConverter = function () {
1404
1410
  while (1) {
1405
1411
  switch (_context16.prev = _context16.next) {
1406
1412
  case 0:
1407
- if (!this.options.slpk) {
1408
- _context16.next = 8;
1409
- break;
1413
+ if (this.options.slpk) {
1414
+ slpkTexturePath = (0, _path.join)(childPath, 'textures');
1415
+ compress = false;
1416
+ this.writeQueue.enqueue({
1417
+ archiveKey: "".concat(slpkChildPath, "/textures/").concat(name, ".").concat(format),
1418
+ writePromise: (0, _fileUtils.writeFileForSlpk)(slpkTexturePath, textureData, "".concat(name, ".").concat(format), compress)
1419
+ });
1420
+ } else {
1421
+ texturePath = (0, _path.join)(childPath, "textures/".concat(name, "/"));
1422
+ this.writeQueue.enqueue({
1423
+ writePromise: (0, _fileUtils.writeFile)(texturePath, textureData, "index.".concat(format))
1424
+ });
1410
1425
  }
1411
1426
 
1412
- slpkTexturePath = (0, _path.join)(childPath, 'textures');
1413
- compress = false;
1414
- _context16.next = 5;
1415
- return (0, _fileUtils.writeFileForSlpk)(slpkTexturePath, textureData, "".concat(name, ".").concat(format), compress);
1416
-
1417
- case 5:
1418
- this.fileMap["".concat(slpkChildPath, "/textures/").concat(name, ".").concat(format)] = _context16.sent;
1419
- _context16.next = 11;
1420
- break;
1421
-
1422
- case 8:
1423
- texturePath = (0, _path.join)(childPath, "textures/".concat(name, "/"));
1424
- _context16.next = 11;
1425
- return (0, _fileUtils.writeFile)(texturePath, textureData, "index.".concat(format));
1426
-
1427
- case 11:
1427
+ case 1:
1428
1428
  case "end":
1429
1429
  return _context16.stop();
1430
1430
  }
@@ -1441,55 +1441,47 @@ var I3SConverter = function () {
1441
1441
  }, {
1442
1442
  key: "_writeAttributes",
1443
1443
  value: function () {
1444
- var _writeAttributes2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee17(attributes, childPath, slpkChildPath) {
1444
+ var _writeAttributes2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee17() {
1445
1445
  var _this$layers4, _this$layers4$attribu;
1446
1446
 
1447
- var index, folderName, fileBuffer, slpkAttributesPath, attributesPath;
1447
+ var attributes,
1448
+ childPath,
1449
+ slpkChildPath,
1450
+ index,
1451
+ folderName,
1452
+ fileBuffer,
1453
+ slpkAttributesPath,
1454
+ attributesPath,
1455
+ _args17 = arguments;
1448
1456
  return _regenerator.default.wrap(function _callee17$(_context17) {
1449
1457
  while (1) {
1450
1458
  switch (_context17.prev = _context17.next) {
1451
1459
  case 0:
1452
- 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)) {
1453
- _context17.next = 18;
1454
- break;
1455
- }
1456
-
1457
- index = 0;
1458
-
1459
- case 2:
1460
- if (!(index < attributes.length)) {
1461
- _context17.next = 18;
1462
- break;
1463
- }
1464
-
1465
- folderName = this.layers0.attributeStorageInfo[index].key;
1466
- fileBuffer = new Uint8Array(attributes[index]);
1467
-
1468
- if (!this.options.slpk) {
1469
- _context17.next = 12;
1470
- break;
1460
+ attributes = _args17.length > 0 && _args17[0] !== undefined ? _args17[0] : [];
1461
+ childPath = _args17.length > 1 ? _args17[1] : undefined;
1462
+ slpkChildPath = _args17.length > 2 ? _args17[2] : undefined;
1463
+
1464
+ 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) {
1465
+ for (index = 0; index < attributes.length; index++) {
1466
+ folderName = this.layers0.attributeStorageInfo[index].key;
1467
+ fileBuffer = new Uint8Array(attributes[index]);
1468
+
1469
+ if (this.options.slpk) {
1470
+ slpkAttributesPath = (0, _path.join)(childPath, 'attributes', folderName);
1471
+ this.writeQueue.enqueue({
1472
+ archiveKey: "".concat(slpkChildPath, "/attributes/").concat(folderName, ".bin.gz"),
1473
+ writePromise: (0, _fileUtils.writeFileForSlpk)(slpkAttributesPath, fileBuffer, '0.bin')
1474
+ });
1475
+ } else {
1476
+ attributesPath = (0, _path.join)(childPath, "attributes/".concat(folderName, "/0"));
1477
+ this.writeQueue.enqueue({
1478
+ writePromise: (0, _fileUtils.writeFile)(attributesPath, fileBuffer, 'index.bin')
1479
+ });
1480
+ }
1481
+ }
1471
1482
  }
1472
1483
 
1473
- slpkAttributesPath = (0, _path.join)(childPath, 'attributes', folderName);
1474
- _context17.next = 9;
1475
- return (0, _fileUtils.writeFileForSlpk)(slpkAttributesPath, fileBuffer, '0.bin');
1476
-
1477
- case 9:
1478
- this.fileMap["".concat(slpkChildPath, "/attributes/").concat(folderName, ".bin.gz")] = _context17.sent;
1479
- _context17.next = 15;
1480
- break;
1481
-
1482
- case 12:
1483
- attributesPath = (0, _path.join)(childPath, "attributes/".concat(folderName, "/0"));
1484
- _context17.next = 15;
1485
- return (0, _fileUtils.writeFile)(attributesPath, fileBuffer, 'index.bin');
1486
-
1487
- case 15:
1488
- index++;
1489
- _context17.next = 2;
1490
- break;
1491
-
1492
- case 18:
1484
+ case 4:
1493
1485
  case "end":
1494
1486
  return _context17.stop();
1495
1487
  }
@@ -1497,7 +1489,7 @@ var I3SConverter = function () {
1497
1489
  }, _callee17, this);
1498
1490
  }));
1499
1491
 
1500
- function _writeAttributes(_x39, _x40, _x41) {
1492
+ function _writeAttributes() {
1501
1493
  return _writeAttributes2.apply(this, arguments);
1502
1494
  }
1503
1495
 
@@ -1747,7 +1739,7 @@ var I3SConverter = function () {
1747
1739
  }, _callee18, this);
1748
1740
  }));
1749
1741
 
1750
- function _finishConversion(_x42) {
1742
+ function _finishConversion(_x39) {
1751
1743
  return _finishConversion2.apply(this, arguments);
1752
1744
  }
1753
1745
 
@@ -1864,6 +1856,84 @@ var I3SConverter = function () {
1864
1856
 
1865
1857
  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);
1866
1858
  }
1859
+ }, {
1860
+ key: "loadWorkers",
1861
+ value: function () {
1862
+ var _loadWorkers = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee21() {
1863
+ var url, _sourceResponse, _source, _url, _sourceResponse2, _source2, i3sAttributesWorkerUrl, sourceResponse, source;
1864
+
1865
+ return _regenerator.default.wrap(function _callee21$(_context21) {
1866
+ while (1) {
1867
+ switch (_context21.prev = _context21.next) {
1868
+ case 0:
1869
+ console.log("Loading workers source...");
1870
+
1871
+ if (!this.options.draco) {
1872
+ _context21.next = 10;
1873
+ break;
1874
+ }
1875
+
1876
+ url = (0, _workerUtils.getWorkerURL)(_draco.DracoWriterWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1877
+ _context21.next = 5;
1878
+ return (0, _core.fetchFile)(url);
1879
+
1880
+ case 5:
1881
+ _sourceResponse = _context21.sent;
1882
+ _context21.next = 8;
1883
+ return _sourceResponse.text();
1884
+
1885
+ case 8:
1886
+ _source = _context21.sent;
1887
+ this.workerSource.draco = _source;
1888
+
1889
+ case 10:
1890
+ if (!this.generateTextures) {
1891
+ _context21.next = 19;
1892
+ break;
1893
+ }
1894
+
1895
+ _url = (0, _workerUtils.getWorkerURL)(_textures.KTX2BasisWriterWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1896
+ _context21.next = 14;
1897
+ return (0, _core.fetchFile)(_url);
1898
+
1899
+ case 14:
1900
+ _sourceResponse2 = _context21.sent;
1901
+ _context21.next = 17;
1902
+ return _sourceResponse2.text();
1903
+
1904
+ case 17:
1905
+ _source2 = _context21.sent;
1906
+ this.workerSource.ktx2 = _source2;
1907
+
1908
+ case 19:
1909
+ i3sAttributesWorkerUrl = (0, _workerUtils.getWorkerURL)(_i3sAttributesWorker.I3SAttributesWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1910
+ _context21.next = 22;
1911
+ return (0, _core.fetchFile)(i3sAttributesWorkerUrl);
1912
+
1913
+ case 22:
1914
+ sourceResponse = _context21.sent;
1915
+ _context21.next = 25;
1916
+ return sourceResponse.text();
1917
+
1918
+ case 25:
1919
+ source = _context21.sent;
1920
+ this.workerSource.I3SAttributes = source;
1921
+ console.log("Loading workers source completed!");
1922
+
1923
+ case 28:
1924
+ case "end":
1925
+ return _context21.stop();
1926
+ }
1927
+ }
1928
+ }, _callee21, this);
1929
+ }));
1930
+
1931
+ function loadWorkers() {
1932
+ return _loadWorkers.apply(this, arguments);
1933
+ }
1934
+
1935
+ return loadWorkers;
1936
+ }()
1867
1937
  }]);
1868
1938
  return I3SConverter;
1869
1939
  }();