@loaders.gl/tile-converter 3.1.7 → 3.2.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/dist/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.min.js +20 -20
  24. package/dist/deps-installer/deps-installer.d.ts +4 -0
  25. package/dist/deps-installer/deps-installer.d.ts.map +1 -0
  26. package/dist/deps-installer/deps-installer.js +21 -0
  27. package/dist/dist.min.js +1082 -1131
  28. package/dist/es5/3d-tiles-attributes-worker.js +29 -0
  29. package/dist/es5/3d-tiles-attributes-worker.js.map +1 -0
  30. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +104 -44
  31. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  32. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +34 -43
  33. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  34. package/dist/es5/i3s-attributes-worker.js +29 -0
  35. package/dist/es5/i3s-attributes-worker.js.map +1 -0
  36. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +19 -11
  37. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  38. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +2 -2
  39. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  40. package/dist/es5/i3s-converter/helpers/geometry-converter.js +267 -178
  41. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  42. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +71 -0
  43. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  44. package/dist/es5/i3s-converter/helpers/node-pages.js +43 -52
  45. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
  46. package/dist/es5/i3s-converter/i3s-converter.js +264 -219
  47. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  48. package/dist/es5/index.js +8 -0
  49. package/dist/es5/index.js.map +1 -1
  50. package/dist/es5/lib/utils/compress-util.js +14 -17
  51. package/dist/es5/lib/utils/compress-util.js.map +1 -1
  52. package/dist/es5/lib/utils/file-utils.js +39 -14
  53. package/dist/es5/lib/utils/file-utils.js.map +1 -1
  54. package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
  55. package/dist/es5/lib/utils/queue.js +61 -0
  56. package/dist/es5/lib/utils/queue.js.map +1 -0
  57. package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
  58. package/dist/es5/lib/utils/write-queue.js +225 -0
  59. package/dist/es5/lib/utils/write-queue.js.map +1 -0
  60. package/dist/es5/pgm-loader.js +1 -1
  61. package/dist/es5/pgm-loader.js.map +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 +32 -5
  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 +23 -23
  71. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  72. package/dist/esm/i3s-attributes-worker.js +16 -0
  73. package/dist/esm/i3s-attributes-worker.js.map +1 -0
  74. package/dist/esm/i3s-converter/helpers/coordinate-converter.js +19 -11
  75. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  76. package/dist/esm/i3s-converter/helpers/geometry-attributes.js +2 -2
  77. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  78. package/dist/esm/i3s-converter/helpers/geometry-converter.js +117 -58
  79. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  80. package/dist/esm/i3s-converter/helpers/gltf-attributes.js +54 -0
  81. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  82. package/dist/esm/i3s-converter/helpers/node-pages.js +12 -9
  83. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
  84. package/dist/esm/i3s-converter/i3s-converter.js +115 -28
  85. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  86. package/dist/esm/index.js +1 -0
  87. package/dist/esm/index.js.map +1 -1
  88. package/dist/esm/lib/utils/compress-util.js +6 -8
  89. package/dist/esm/lib/utils/compress-util.js.map +1 -1
  90. package/dist/esm/lib/utils/file-utils.js +11 -1
  91. package/dist/esm/lib/utils/file-utils.js.map +1 -1
  92. package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
  93. package/dist/esm/lib/utils/queue.js +19 -0
  94. package/dist/esm/lib/utils/queue.js.map +1 -0
  95. package/dist/esm/lib/utils/statistic-utills.js.map +1 -1
  96. package/dist/esm/lib/utils/write-queue.js +88 -0
  97. package/dist/esm/lib/utils/write-queue.js.map +1 -0
  98. package/dist/esm/pgm-loader.js +1 -1
  99. package/dist/esm/pgm-loader.js.map +1 -1
  100. package/dist/esm/workers/3d-tiles-attributes-worker.js +5 -0
  101. package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -0
  102. package/dist/esm/workers/i3s-attributes-worker.js +4 -0
  103. package/dist/esm/workers/i3s-attributes-worker.js.map +1 -0
  104. package/dist/i3s-attributes-worker.d.ts +33 -0
  105. package/dist/i3s-attributes-worker.d.ts.map +1 -0
  106. package/dist/i3s-attributes-worker.js +10 -0
  107. package/dist/i3s-attributes-worker.js.map +7 -0
  108. package/dist/i3s-converter/helpers/coordinate-converter.d.ts +41 -0
  109. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -0
  110. package/dist/i3s-converter/helpers/coordinate-converter.js +122 -0
  111. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts +9 -0
  112. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts.map +1 -0
  113. package/dist/i3s-converter/helpers/create-scene-server-path.js +28 -0
  114. package/dist/i3s-converter/helpers/geometry-attributes.d.ts +8 -0
  115. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -0
  116. package/dist/i3s-converter/helpers/geometry-attributes.js +177 -0
  117. package/dist/i3s-converter/helpers/geometry-converter.d.ts +29 -0
  118. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -0
  119. package/dist/i3s-converter/helpers/geometry-converter.js +901 -0
  120. package/dist/i3s-converter/helpers/gltf-attributes.d.ts +9 -0
  121. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -0
  122. package/dist/i3s-converter/helpers/gltf-attributes.js +56 -0
  123. package/dist/i3s-converter/helpers/node-debug.d.ts +8 -0
  124. package/dist/i3s-converter/helpers/node-debug.d.ts.map +1 -0
  125. package/dist/i3s-converter/helpers/node-debug.js +114 -0
  126. package/dist/i3s-converter/helpers/node-pages.d.ts +117 -0
  127. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -0
  128. package/dist/i3s-converter/helpers/node-pages.js +208 -0
  129. package/dist/i3s-converter/i3s-converter.d.ts +325 -0
  130. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -0
  131. package/dist/i3s-converter/i3s-converter.js +1056 -0
  132. package/dist/i3s-converter/json-templates/layers.d.ts +95 -0
  133. package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -0
  134. package/dist/i3s-converter/json-templates/layers.js +199 -0
  135. package/dist/i3s-converter/json-templates/metadata.d.ts +22 -0
  136. package/dist/i3s-converter/json-templates/metadata.d.ts.map +1 -0
  137. package/dist/i3s-converter/json-templates/metadata.js +25 -0
  138. package/dist/i3s-converter/json-templates/node.d.ts +61 -0
  139. package/dist/i3s-converter/json-templates/node.d.ts.map +1 -0
  140. package/dist/i3s-converter/json-templates/node.js +89 -0
  141. package/dist/i3s-converter/json-templates/scene-server.d.ts +28 -0
  142. package/dist/i3s-converter/json-templates/scene-server.d.ts.map +1 -0
  143. package/dist/i3s-converter/json-templates/scene-server.js +31 -0
  144. package/dist/i3s-converter/json-templates/shared-resources.d.ts +14 -0
  145. package/dist/i3s-converter/json-templates/shared-resources.d.ts.map +1 -0
  146. package/dist/i3s-converter/json-templates/shared-resources.js +129 -0
  147. package/dist/i3s-converter/json-templates/store.d.ts +95 -0
  148. package/dist/i3s-converter/json-templates/store.d.ts.map +1 -0
  149. package/dist/i3s-converter/json-templates/store.js +103 -0
  150. package/dist/i3s-converter/types.d.ts +114 -0
  151. package/dist/i3s-converter/types.d.ts.map +1 -0
  152. package/dist/i3s-converter/types.js +2 -0
  153. package/dist/i3s-server/app.d.ts +3 -0
  154. package/dist/i3s-server/app.d.ts.map +1 -0
  155. package/dist/i3s-server/app.js +14 -0
  156. package/dist/i3s-server/controllers/index-controller.d.ts +2 -0
  157. package/dist/i3s-server/controllers/index-controller.d.ts.map +1 -0
  158. package/dist/i3s-server/controllers/index-controller.js +23 -0
  159. package/dist/i3s-server/routes/index.d.ts +3 -0
  160. package/dist/i3s-server/routes/index.d.ts.map +1 -0
  161. package/dist/i3s-server/routes/index.js +16 -0
  162. package/dist/index.d.ts +6 -0
  163. package/dist/index.d.ts.map +1 -0
  164. package/dist/index.js +16 -0
  165. package/dist/lib/utils/compress-util.d.ts +45 -0
  166. package/dist/lib/utils/compress-util.d.ts.map +1 -0
  167. package/dist/lib/utils/compress-util.js +257 -0
  168. package/{src → dist}/lib/utils/file-utils.d.ts +6 -14
  169. package/dist/lib/utils/file-utils.d.ts.map +1 -0
  170. package/dist/lib/utils/file-utils.js +81 -0
  171. package/dist/lib/utils/lod-conversion-utils.d.ts +41 -0
  172. package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -0
  173. package/dist/lib/utils/lod-conversion-utils.js +76 -0
  174. package/dist/lib/utils/queue.d.ts +7 -0
  175. package/dist/lib/utils/queue.d.ts.map +1 -0
  176. package/dist/lib/utils/queue.js +18 -0
  177. package/dist/lib/utils/statistic-utills.d.ts +3 -0
  178. package/dist/lib/utils/statistic-utills.d.ts.map +1 -0
  179. package/dist/lib/utils/statistic-utills.js +64 -0
  180. package/dist/lib/utils/write-queue.d.ts +22 -0
  181. package/dist/lib/utils/write-queue.d.ts.map +1 -0
  182. package/dist/lib/utils/write-queue.js +62 -0
  183. package/dist/pgm-loader.d.ts +6 -0
  184. package/dist/pgm-loader.d.ts.map +1 -0
  185. package/dist/pgm-loader.js +23 -0
  186. package/dist/workers/3d-tiles-attributes-worker.d.ts +2 -0
  187. package/dist/workers/3d-tiles-attributes-worker.d.ts.map +1 -0
  188. package/dist/workers/3d-tiles-attributes-worker.js +9 -0
  189. package/dist/workers/i3s-attributes-worker.d.ts +2 -0
  190. package/dist/workers/i3s-attributes-worker.d.ts.map +1 -0
  191. package/dist/workers/i3s-attributes-worker.js +5 -0
  192. package/package.json +20 -18
  193. package/src/3d-tiles-attributes-worker.ts +43 -0
  194. package/src/3d-tiles-converter/3d-tiles-converter.ts +48 -5
  195. package/src/3d-tiles-converter/helpers/b3dm-converter.ts +21 -18
  196. package/src/i3s-attributes-worker.ts +46 -0
  197. package/src/i3s-converter/helpers/coordinate-converter.ts +29 -24
  198. package/src/i3s-converter/helpers/geometry-attributes.ts +4 -3
  199. package/src/i3s-converter/helpers/{geometry-converter.js → geometry-converter.ts} +421 -175
  200. package/src/i3s-converter/helpers/gltf-attributes.ts +68 -0
  201. package/src/i3s-converter/helpers/node-pages.ts +25 -17
  202. package/src/i3s-converter/i3s-converter.ts +124 -69
  203. package/src/i3s-converter/types.ts +90 -8
  204. package/src/index.ts +1 -0
  205. package/src/lib/utils/{compress-util.js → compress-util.ts} +105 -18
  206. package/src/lib/utils/file-utils.ts +84 -0
  207. package/src/lib/utils/{lod-conversion-utils.js → lod-conversion-utils.ts} +27 -5
  208. package/src/lib/utils/queue.ts +17 -0
  209. package/src/lib/utils/{statistic-utills.js → statistic-utills.ts} +0 -0
  210. package/src/lib/utils/write-queue.ts +75 -0
  211. package/src/workers/3d-tiles-attributes-worker.ts +6 -0
  212. package/src/workers/i3s-attributes-worker.ts +6 -0
  213. package/dist/es5/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  214. package/dist/es5/lib/utils/compress-util.d.ts +0 -53
  215. package/dist/es5/lib/utils/file-utils.d.ts +0 -43
  216. package/dist/es5/lib/utils/lod-conversion-utils.d.ts +0 -32
  217. package/dist/esm/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  218. package/dist/esm/lib/utils/compress-util.d.ts +0 -53
  219. package/dist/esm/lib/utils/file-utils.d.ts +0 -43
  220. package/dist/esm/lib/utils/lod-conversion-utils.d.ts +0 -32
  221. package/src/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  222. package/src/lib/utils/compress-util.d.ts +0 -53
  223. package/src/lib/utils/file-utils.js +0 -38
  224. 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,14 @@ 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.next = 19;
170
186
  return this._fetchPreloadOptions();
171
187
 
172
- case 15:
188
+ case 19:
173
189
  preloadOptions = _context.sent;
174
190
  tilesetOptions = {
175
191
  loadOptions: {
@@ -186,27 +202,29 @@ var I3SConverter = function () {
186
202
  }
187
203
 
188
204
  Object.assign(tilesetOptions, preloadOptions);
189
- _context.next = 21;
205
+ _context.next = 25;
190
206
  return (0, _core.load)(inputUrl, this.Loader, tilesetOptions.loadOptions);
191
207
 
192
- case 21:
208
+ case 25:
193
209
  sourceTilesetJson = _context.sent;
194
210
  this.sourceTileset = new _tiles.Tileset3D(sourceTilesetJson, tilesetOptions);
195
- _context.next = 25;
211
+ _context.next = 29;
196
212
  return this._createAndSaveTileset(outputPath, tilesetName);
197
213
 
198
- case 25:
199
- _context.next = 27;
214
+ case 29:
215
+ _context.next = 31;
200
216
  return this._finishConversion({
201
217
  slpk: Boolean(slpk),
202
218
  outputPath: outputPath,
203
219
  tilesetName: tilesetName
204
220
  });
205
221
 
206
- case 27:
222
+ case 31:
223
+ workerFarm = _workerUtils.WorkerFarm.getWorkerFarm({});
224
+ workerFarm.destroy();
207
225
  return _context.abrupt("return", sourceTilesetJson);
208
226
 
209
- case 28:
227
+ case 34:
210
228
  case "end":
211
229
  return _context.stop();
212
230
  }
@@ -264,23 +282,34 @@ var I3SConverter = function () {
264
282
 
265
283
  case 19:
266
284
  this.layers0.materialDefinitions = this.materialDefinitions;
267
- _context2.next = 22;
285
+
286
+ if (this.layersHasTexture === false) {
287
+ this.layers0.store.defaultGeometrySchema.ordering = this.layers0.store.defaultGeometrySchema.ordering.filter(function (attribute) {
288
+ return attribute !== 'uv0';
289
+ });
290
+ }
291
+
292
+ _context2.next = 23;
268
293
  return this._writeLayers0();
269
294
 
270
- case 22:
295
+ case 23:
271
296
  (0, _createSceneServerPath.createSceneServerPath)(tilesetName, this.layers0, tilesetPath);
272
- _context2.next = 25;
297
+ _context2.next = 26;
273
298
  return this._writeNodeIndexDocument(root0, 'root', (0, _path.join)(this.layers0Path, 'nodes', 'root'));
274
299
 
275
- case 25:
276
- _context2.next = 27;
277
- return this.nodePages.save(this.layers0Path, this.fileMap, isCreateSlpk);
300
+ case 26:
301
+ _context2.next = 28;
302
+ return this.nodePages.save(this.layers0Path, this.writeQueue, isCreateSlpk);
278
303
 
279
- case 27:
280
- _context2.next = 29;
304
+ case 28:
305
+ _context2.next = 30;
306
+ return this.writeQueue.finalize();
307
+
308
+ case 30:
309
+ _context2.next = 32;
281
310
  return this._createSlpk(tilesetPath);
282
311
 
283
- case 29:
312
+ case 32:
284
313
  case "end":
285
314
  return _context2.stop();
286
315
  }
@@ -297,7 +326,10 @@ var I3SConverter = function () {
297
326
  }, {
298
327
  key: "_formLayers0",
299
328
  value: function _formLayers0(tilesetName) {
300
- var extent = (0, _coordinateConverter.convertCommonToI3SExtentCoordinate)(this.sourceTileset);
329
+ var _this$sourceTileset, _this$sourceTileset2, _this$sourceTileset2$;
330
+
331
+ 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));
332
+ var extent = [fullExtent.xmin, fullExtent.ymin, fullExtent.xmax, fullExtent.ymax];
301
333
  var layers0data = {
302
334
  version: "{".concat((0, _uuid.v4)().toUpperCase(), "}"),
303
335
  id: 0,
@@ -349,7 +381,7 @@ var I3SConverter = function () {
349
381
 
350
382
  case 2:
351
383
  if (!this.isContentSupported(sourceRootTile)) {
352
- _context3.next = 21;
384
+ _context3.next = 14;
353
385
  break;
354
386
  }
355
387
 
@@ -367,29 +399,22 @@ var I3SConverter = function () {
367
399
  child = _yield$this$_createNo2[0];
368
400
  childPath = (0, _path.join)(this.layers0Path, 'nodes', child.path);
369
401
 
370
- if (!this.options.slpk) {
371
- _context3.next = 17;
372
- break;
402
+ if (this.options.slpk) {
403
+ this.writeQueue.enqueue({
404
+ archiveKey: 'nodes/1/3dNodeIndexDocument.json.gz',
405
+ writePromise: (0, _fileUtils.writeFileForSlpk)(childPath, JSON.stringify(child), '3dNodeIndexDocument.json')
406
+ });
407
+ } else {
408
+ this.writeQueue.enqueue({
409
+ writePromise: (0, _fileUtils.writeFile)(childPath, JSON.stringify(child))
410
+ });
373
411
  }
374
412
 
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;
413
+ _context3.next = 16;
389
414
  break;
390
415
 
391
- case 21:
392
- _context3.next = 23;
416
+ case 14:
417
+ _context3.next = 16;
393
418
  return this._addChildrenWithNeighborsAndWriteFile({
394
419
  parentNode: root0,
395
420
  sourceTiles: sourceRootTile.children,
@@ -397,11 +422,11 @@ var I3SConverter = function () {
397
422
  level: 1
398
423
  });
399
424
 
400
- case 23:
401
- _context3.next = 25;
425
+ case 16:
426
+ _context3.next = 18;
402
427
  return sourceRootTile.unloadContent();
403
428
 
404
- case 25:
429
+ case 18:
405
430
  case "end":
406
431
  return _context3.stop();
407
432
  }
@@ -423,24 +448,18 @@ var I3SConverter = function () {
423
448
  while (1) {
424
449
  switch (_context4.prev = _context4.next) {
425
450
  case 0:
426
- if (!this.options.slpk) {
427
- _context4.next = 6;
428
- break;
451
+ if (this.options.slpk) {
452
+ this.writeQueue.enqueue({
453
+ archiveKey: '3dSceneLayer.json.gz',
454
+ writePromise: (0, _fileUtils.writeFileForSlpk)(this.layers0Path, JSON.stringify(this.layers0), '3dSceneLayer.json')
455
+ });
456
+ } else {
457
+ this.writeQueue.enqueue({
458
+ writePromise: (0, _fileUtils.writeFile)(this.layers0Path, JSON.stringify(this.layers0))
459
+ });
429
460
  }
430
461
 
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:
462
+ case 1:
444
463
  case "end":
445
464
  return _context4.stop();
446
465
  }
@@ -462,24 +481,18 @@ var I3SConverter = function () {
462
481
  while (1) {
463
482
  switch (_context5.prev = _context5.next) {
464
483
  case 0:
465
- if (!this.options.slpk) {
466
- _context5.next = 6;
467
- break;
484
+ if (this.options.slpk) {
485
+ this.writeQueue.enqueue({
486
+ archiveKey: "nodes/".concat(nodePath, "/3dNodeIndexDocument.json.gz"),
487
+ writePromise: (0, _fileUtils.writeFileForSlpk)(rootPath, JSON.stringify(root0), '3dNodeIndexDocument.json')
488
+ });
489
+ } else {
490
+ this.writeQueue.enqueue({
491
+ writePromise: (0, _fileUtils.writeFile)(rootPath, JSON.stringify(root0))
492
+ });
468
493
  }
469
494
 
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:
495
+ case 1:
483
496
  case "end":
484
497
  return _context5.stop();
485
498
  }
@@ -880,11 +893,12 @@ var I3SConverter = function () {
880
893
 
881
894
  case 17:
882
895
  if ((_step5 = _iterator5.n()).done) {
883
- _context10.next = 32;
896
+ _context10.next = 33;
884
897
  break;
885
898
  }
886
899
 
887
900
  resources = _step5.value;
901
+ this.layersHasTexture = this.layersHasTexture || Boolean(resources.texture);
888
902
 
889
903
  if (this.generateBoundingVolumes && resources.boundingVolumes) {
890
904
  boundingVolumes = resources.boundingVolumes;
@@ -900,14 +914,14 @@ var I3SConverter = function () {
900
914
  node = this._createNodeIndexDocument(parentTile, boundingVolumes, lodSelection, nodeInPage, resources);
901
915
 
902
916
  if (!nodeInPage.mesh) {
903
- _context10.next = 27;
917
+ _context10.next = 28;
904
918
  break;
905
919
  }
906
920
 
907
- _context10.next = 27;
921
+ _context10.next = 28;
908
922
  return this._writeResources(resources, node.path);
909
923
 
910
- case 27:
924
+ case 28:
911
925
  if (this.validate) {
912
926
  this.boundingVolumeWarnings = (0, _nodeDebug.validateNodeBoundingVolumes)(node);
913
927
 
@@ -919,30 +933,30 @@ var I3SConverter = function () {
919
933
  nodes.push(node);
920
934
  nodesInPage.push(nodeInPage);
921
935
 
922
- case 30:
936
+ case 31:
923
937
  _context10.next = 17;
924
938
  break;
925
939
 
926
- case 32:
927
- _context10.next = 37;
940
+ case 33:
941
+ _context10.next = 38;
928
942
  break;
929
943
 
930
- case 34:
931
- _context10.prev = 34;
944
+ case 35:
945
+ _context10.prev = 35;
932
946
  _context10.t0 = _context10["catch"](15);
933
947
 
934
948
  _iterator5.e(_context10.t0);
935
949
 
936
- case 37:
937
- _context10.prev = 37;
950
+ case 38:
951
+ _context10.prev = 38;
938
952
 
939
953
  _iterator5.f();
940
954
 
941
- return _context10.finish(37);
955
+ return _context10.finish(38);
942
956
 
943
- case 40:
957
+ case 41:
944
958
  sourceTile.unloadContent();
945
- _context10.next = 43;
959
+ _context10.next = 44;
946
960
  return this._addChildrenWithNeighborsAndWriteFile({
947
961
  parentNode: nodes[0],
948
962
  sourceTiles: sourceTile.children,
@@ -950,15 +964,15 @@ var I3SConverter = function () {
950
964
  level: level + 1
951
965
  });
952
966
 
953
- case 43:
967
+ case 44:
954
968
  return _context10.abrupt("return", nodes);
955
969
 
956
- case 44:
970
+ case 45:
957
971
  case "end":
958
972
  return _context10.stop();
959
973
  }
960
974
  }
961
- }, _callee10, this, [[15, 34, 37, 40]]);
975
+ }, _callee10, this, [[15, 35, 38, 41]]);
962
976
  }));
963
977
 
964
978
  function _createNode(_x16, _x17, _x18, _x19) {
@@ -998,7 +1012,7 @@ var I3SConverter = function () {
998
1012
 
999
1013
  case 2:
1000
1014
  _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);
1015
+ 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
1016
 
1003
1017
  case 4:
1004
1018
  resourcesData = _context11.sent;
@@ -1180,51 +1194,35 @@ var I3SConverter = function () {
1180
1194
  while (1) {
1181
1195
  switch (_context13.prev = _context13.next) {
1182
1196
  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;
1197
+ if (this.options.slpk) {
1198
+ slpkGeometryPath = (0, _path.join)(childPath, 'geometries');
1199
+ this.writeQueue.enqueue({
1200
+ archiveKey: "".concat(slpkChildPath, "/geometries/0.bin.gz"),
1201
+ writePromise: (0, _fileUtils.writeFileForSlpk)(slpkGeometryPath, geometryBuffer, '0.bin')
1202
+ });
1203
+ } else {
1204
+ geometryPath = (0, _path.join)(childPath, 'geometries/0/');
1205
+ this.writeQueue.enqueue({
1206
+ writePromise: (0, _fileUtils.writeFile)(geometryPath, geometryBuffer, 'index.bin')
1207
+ });
1206
1208
  }
1207
1209
 
1208
- if (!this.options.slpk) {
1209
- _context13.next = 18;
1210
- break;
1210
+ if (this.options.draco) {
1211
+ if (this.options.slpk) {
1212
+ slpkCompressedGeometryPath = (0, _path.join)(childPath, 'geometries');
1213
+ this.writeQueue.enqueue({
1214
+ archiveKey: "".concat(slpkChildPath, "/geometries/1.bin.gz"),
1215
+ writePromise: (0, _fileUtils.writeFileForSlpk)(slpkCompressedGeometryPath, compressedGeometry, '1.bin')
1216
+ });
1217
+ } else {
1218
+ compressedGeometryPath = (0, _path.join)(childPath, 'geometries/1/');
1219
+ this.writeQueue.enqueue({
1220
+ writePromise: (0, _fileUtils.writeFile)(compressedGeometryPath, compressedGeometry, 'index.bin')
1221
+ });
1222
+ }
1211
1223
  }
1212
1224
 
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:
1225
+ case 2:
1228
1226
  case "end":
1229
1227
  return _context13.stop();
1230
1228
  }
@@ -1247,30 +1245,32 @@ var I3SConverter = function () {
1247
1245
  while (1) {
1248
1246
  switch (_context14.prev = _context14.next) {
1249
1247
  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;
1248
+ if (sharedResources) {
1249
+ _context14.next = 2;
1256
1250
  break;
1257
1251
  }
1258
1252
 
1259
- slpkSharedPath = (0, _path.join)(childPath, 'shared');
1260
- _context14.next = 7;
1261
- return (0, _fileUtils.writeFileForSlpk)(slpkSharedPath, sharedDataStr, 'sharedResource.json');
1253
+ return _context14.abrupt("return");
1262
1254
 
1263
- case 7:
1264
- this.fileMap["".concat(slpkChildPath, "/shared/sharedResource.json.gz")] = _context14.sent;
1265
- _context14.next = 13;
1266
- break;
1255
+ case 2:
1256
+ sharedResources.nodePath = nodePath;
1257
+ sharedData = (0, _jsonMapTransform.default)(sharedResources, (0, _sharedResources.SHARED_RESOURCES)());
1258
+ sharedDataStr = JSON.stringify(sharedData);
1267
1259
 
1268
- case 10:
1269
- sharedPath = (0, _path.join)(childPath, 'shared/');
1270
- _context14.next = 13;
1271
- return (0, _fileUtils.writeFile)(sharedPath, sharedDataStr);
1260
+ if (this.options.slpk) {
1261
+ slpkSharedPath = (0, _path.join)(childPath, 'shared');
1262
+ this.writeQueue.enqueue({
1263
+ archiveKey: "".concat(slpkChildPath, "/shared/sharedResource.json.gz"),
1264
+ writePromise: (0, _fileUtils.writeFileForSlpk)(slpkSharedPath, sharedDataStr, 'sharedResource.json')
1265
+ });
1266
+ } else {
1267
+ sharedPath = (0, _path.join)(childPath, 'shared/');
1268
+ this.writeQueue.enqueue({
1269
+ writePromise: (0, _fileUtils.writeFile)(sharedPath, sharedDataStr)
1270
+ });
1271
+ }
1272
1272
 
1273
- case 13:
1273
+ case 6:
1274
1274
  case "end":
1275
1275
  return _context14.stop();
1276
1276
  }
@@ -1325,7 +1325,7 @@ var I3SConverter = function () {
1325
1325
  });
1326
1326
  _context15.t1 = Uint8Array;
1327
1327
  _context15.next = 15;
1328
- return (0, _core.encode)(texture.image, _textures.KTX2BasisUniversalTextureWriter);
1328
+ return (0, _core.encode)(texture.image, _textures.KTX2BasisWriter);
1329
1329
 
1330
1330
  case 15:
1331
1331
  _context15.t2 = _context15.sent;
@@ -1394,27 +1394,21 @@ var I3SConverter = function () {
1394
1394
  while (1) {
1395
1395
  switch (_context16.prev = _context16.next) {
1396
1396
  case 0:
1397
- if (!this.options.slpk) {
1398
- _context16.next = 8;
1399
- break;
1397
+ if (this.options.slpk) {
1398
+ slpkTexturePath = (0, _path.join)(childPath, 'textures');
1399
+ compress = false;
1400
+ this.writeQueue.enqueue({
1401
+ archiveKey: "".concat(slpkChildPath, "/textures/").concat(name, ".").concat(format),
1402
+ writePromise: (0, _fileUtils.writeFileForSlpk)(slpkTexturePath, textureData, "".concat(name, ".").concat(format), compress)
1403
+ });
1404
+ } else {
1405
+ texturePath = (0, _path.join)(childPath, "textures/".concat(name, "/"));
1406
+ this.writeQueue.enqueue({
1407
+ writePromise: (0, _fileUtils.writeFile)(texturePath, textureData, "index.".concat(format))
1408
+ });
1400
1409
  }
1401
1410
 
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:
1411
+ case 1:
1418
1412
  case "end":
1419
1413
  return _context16.stop();
1420
1414
  }
@@ -1431,55 +1425,47 @@ var I3SConverter = function () {
1431
1425
  }, {
1432
1426
  key: "_writeAttributes",
1433
1427
  value: function () {
1434
- var _writeAttributes2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee17(attributes, childPath, slpkChildPath) {
1428
+ var _writeAttributes2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee17() {
1435
1429
  var _this$layers4, _this$layers4$attribu;
1436
1430
 
1437
- var index, folderName, fileBuffer, slpkAttributesPath, attributesPath;
1431
+ var attributes,
1432
+ childPath,
1433
+ slpkChildPath,
1434
+ index,
1435
+ folderName,
1436
+ fileBuffer,
1437
+ slpkAttributesPath,
1438
+ attributesPath,
1439
+ _args17 = arguments;
1438
1440
  return _regenerator.default.wrap(function _callee17$(_context17) {
1439
1441
  while (1) {
1440
1442
  switch (_context17.prev = _context17.next) {
1441
1443
  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;
1444
+ attributes = _args17.length > 0 && _args17[0] !== undefined ? _args17[0] : [];
1445
+ childPath = _args17.length > 1 ? _args17[1] : undefined;
1446
+ slpkChildPath = _args17.length > 2 ? _args17[2] : undefined;
1447
+
1448
+ 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) {
1449
+ for (index = 0; index < attributes.length; index++) {
1450
+ folderName = this.layers0.attributeStorageInfo[index].key;
1451
+ fileBuffer = new Uint8Array(attributes[index]);
1452
+
1453
+ if (this.options.slpk) {
1454
+ slpkAttributesPath = (0, _path.join)(childPath, 'attributes', folderName);
1455
+ this.writeQueue.enqueue({
1456
+ archiveKey: "".concat(slpkChildPath, "/attributes/").concat(folderName, ".bin.gz"),
1457
+ writePromise: (0, _fileUtils.writeFileForSlpk)(slpkAttributesPath, fileBuffer, '0.bin')
1458
+ });
1459
+ } else {
1460
+ attributesPath = (0, _path.join)(childPath, "attributes/".concat(folderName, "/0"));
1461
+ this.writeQueue.enqueue({
1462
+ writePromise: (0, _fileUtils.writeFile)(attributesPath, fileBuffer, 'index.bin')
1463
+ });
1464
+ }
1465
+ }
1461
1466
  }
1462
1467
 
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:
1468
+ case 4:
1483
1469
  case "end":
1484
1470
  return _context17.stop();
1485
1471
  }
@@ -1487,7 +1473,7 @@ var I3SConverter = function () {
1487
1473
  }, _callee17, this);
1488
1474
  }));
1489
1475
 
1490
- function _writeAttributes(_x39, _x40, _x41) {
1476
+ function _writeAttributes() {
1491
1477
  return _writeAttributes2.apply(this, arguments);
1492
1478
  }
1493
1479
 
@@ -1737,7 +1723,7 @@ var I3SConverter = function () {
1737
1723
  }, _callee18, this);
1738
1724
  }));
1739
1725
 
1740
- function _finishConversion(_x42) {
1726
+ function _finishConversion(_x39) {
1741
1727
  return _finishConversion2.apply(this, arguments);
1742
1728
  }
1743
1729
 
@@ -1854,6 +1840,65 @@ var I3SConverter = function () {
1854
1840
 
1855
1841
  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
1842
  }
1843
+ }, {
1844
+ key: "loadWorkers",
1845
+ value: function () {
1846
+ var _loadWorkers = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee21() {
1847
+ var url, _sourceResponse, _source, i3sAttributesWorkerUrl, sourceResponse, source;
1848
+
1849
+ return _regenerator.default.wrap(function _callee21$(_context21) {
1850
+ while (1) {
1851
+ switch (_context21.prev = _context21.next) {
1852
+ case 0:
1853
+ console.log("Loading workers source...");
1854
+
1855
+ if (!this.options.draco) {
1856
+ _context21.next = 10;
1857
+ break;
1858
+ }
1859
+
1860
+ url = (0, _workerUtils.getWorkerURL)(_draco.DracoWriterWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1861
+ _context21.next = 5;
1862
+ return (0, _core.fetchFile)(url);
1863
+
1864
+ case 5:
1865
+ _sourceResponse = _context21.sent;
1866
+ _context21.next = 8;
1867
+ return _sourceResponse.text();
1868
+
1869
+ case 8:
1870
+ _source = _context21.sent;
1871
+ this.workerSource.draco = _source;
1872
+
1873
+ case 10:
1874
+ i3sAttributesWorkerUrl = (0, _workerUtils.getWorkerURL)(_i3sAttributesWorker.I3SAttributesWorker, _objectSpread({}, (0, _core.getLoaderOptions)()));
1875
+ _context21.next = 13;
1876
+ return (0, _core.fetchFile)(i3sAttributesWorkerUrl);
1877
+
1878
+ case 13:
1879
+ sourceResponse = _context21.sent;
1880
+ _context21.next = 16;
1881
+ return sourceResponse.text();
1882
+
1883
+ case 16:
1884
+ source = _context21.sent;
1885
+ this.workerSource.I3SAttributes = source;
1886
+ console.log("Loading workers source completed!");
1887
+
1888
+ case 19:
1889
+ case "end":
1890
+ return _context21.stop();
1891
+ }
1892
+ }
1893
+ }, _callee21, this);
1894
+ }));
1895
+
1896
+ function loadWorkers() {
1897
+ return _loadWorkers.apply(this, arguments);
1898
+ }
1899
+
1900
+ return loadWorkers;
1901
+ }()
1857
1902
  }]);
1858
1903
  return I3SConverter;
1859
1904
  }();