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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/dist/3d-tiles-attributes-worker.d.ts +3 -3
  2. package/dist/3d-tiles-attributes-worker.d.ts.map +1 -1
  3. package/dist/3d-tiles-attributes-worker.js +2 -3
  4. package/dist/3d-tiles-attributes-worker.js.map +3 -3
  5. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +8 -0
  6. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
  7. package/dist/3d-tiles-converter/3d-tiles-converter.js +57 -43
  8. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +5 -5
  9. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -1
  10. package/dist/3d-tiles-converter/helpers/b3dm-converter.js +21 -17
  11. package/dist/converter-cli.js +29 -4
  12. package/dist/converter.min.js +24 -21
  13. package/dist/deps-installer/deps-installer.d.ts +5 -1
  14. package/dist/deps-installer/deps-installer.d.ts.map +1 -1
  15. package/dist/deps-installer/deps-installer.js +29 -1
  16. package/dist/dist.min.js +42714 -45782
  17. package/dist/es5/3d-tiles-attributes-worker.js +4 -7
  18. package/dist/es5/3d-tiles-attributes-worker.js.map +1 -1
  19. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +125 -210
  20. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  21. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +53 -85
  22. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  23. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +0 -8
  24. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
  25. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +0 -5
  26. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
  27. package/dist/es5/3d-tiles-converter/json-templates/tileset.js +0 -6
  28. package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +1 -1
  29. package/dist/es5/bundle.js +0 -1
  30. package/dist/es5/bundle.js.map +1 -1
  31. package/dist/es5/constants.js.map +1 -1
  32. package/dist/es5/converter-cli.js +25 -58
  33. package/dist/es5/converter-cli.js.map +1 -1
  34. package/dist/es5/deps-installer/deps-installer.js +73 -28
  35. package/dist/es5/deps-installer/deps-installer.js.map +1 -1
  36. package/dist/es5/i3s-attributes-worker.js +3 -6
  37. package/dist/es5/i3s-attributes-worker.js.map +1 -1
  38. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +18 -29
  39. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  40. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +8 -25
  41. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  42. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +0 -11
  43. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
  44. package/dist/es5/i3s-converter/helpers/feature-attributes.js +184 -0
  45. package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -0
  46. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +60 -51
  47. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  48. package/dist/es5/i3s-converter/helpers/geometry-converter.js +504 -350
  49. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  50. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +57 -57
  51. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -1
  52. package/dist/es5/i3s-converter/helpers/node-debug.js +4 -23
  53. package/dist/es5/i3s-converter/helpers/node-debug.js.map +1 -1
  54. package/dist/es5/i3s-converter/helpers/node-index-document.js +517 -0
  55. package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -0
  56. package/dist/es5/i3s-converter/helpers/node-pages.js +478 -168
  57. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
  58. package/dist/es5/i3s-converter/i3s-converter.js +770 -1131
  59. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  60. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js +107 -0
  61. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  62. package/dist/es5/i3s-converter/json-templates/layers.js +2 -107
  63. package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -1
  64. package/dist/es5/i3s-converter/json-templates/metadata.js +0 -2
  65. package/dist/es5/i3s-converter/json-templates/metadata.js.map +1 -1
  66. package/dist/es5/i3s-converter/json-templates/node.js +2 -12
  67. package/dist/es5/i3s-converter/json-templates/node.js.map +1 -1
  68. package/dist/es5/i3s-converter/json-templates/scene-server.js +0 -2
  69. package/dist/es5/i3s-converter/json-templates/scene-server.js.map +1 -1
  70. package/dist/es5/i3s-converter/json-templates/shared-resources.js +9 -32
  71. package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -1
  72. package/dist/es5/i3s-converter/json-templates/store.js.map +1 -1
  73. package/dist/es5/i3s-converter/types.js.map +1 -1
  74. package/dist/es5/i3s-server/app.js +0 -5
  75. package/dist/es5/i3s-server/app.js.map +1 -1
  76. package/dist/es5/i3s-server/controllers/index-controller.js +0 -16
  77. package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -1
  78. package/dist/es5/i3s-server/routes/index.js +1 -10
  79. package/dist/es5/i3s-server/routes/index.js.map +1 -1
  80. package/dist/es5/index.js +0 -3
  81. package/dist/es5/index.js.map +1 -1
  82. package/dist/es5/lib/utils/compress-util.js +19 -74
  83. package/dist/es5/lib/utils/compress-util.js.map +1 -1
  84. package/dist/es5/lib/utils/file-utils.js +103 -47
  85. package/dist/es5/lib/utils/file-utils.js.map +1 -1
  86. package/dist/es5/lib/utils/lod-conversion-utils.js +0 -7
  87. package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
  88. package/dist/es5/lib/utils/queue.js +0 -14
  89. package/dist/es5/lib/utils/queue.js.map +1 -1
  90. package/dist/es5/lib/utils/statistic-utills.js +1 -46
  91. package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
  92. package/dist/es5/lib/utils/write-queue.js +86 -87
  93. package/dist/es5/lib/utils/write-queue.js.map +1 -1
  94. package/dist/es5/pgm-loader.js +1 -8
  95. package/dist/es5/pgm-loader.js.map +1 -1
  96. package/dist/es5/workers/3d-tiles-attributes-worker.js +2 -9
  97. package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -1
  98. package/dist/es5/workers/i3s-attributes-worker.js +2 -10
  99. package/dist/es5/workers/i3s-attributes-worker.js.map +1 -1
  100. package/dist/esm/3d-tiles-attributes-worker.js +4 -2
  101. package/dist/esm/3d-tiles-attributes-worker.js.map +1 -1
  102. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +60 -77
  103. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  104. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +29 -50
  105. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  106. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +1 -0
  107. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
  108. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js +1 -4
  109. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
  110. package/dist/esm/3d-tiles-converter/json-templates/tileset.js +0 -3
  111. package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +1 -1
  112. package/dist/esm/bundle.js +1 -1
  113. package/dist/esm/bundle.js.map +1 -1
  114. package/dist/esm/constants.js.map +1 -1
  115. package/dist/esm/converter-cli.js +26 -43
  116. package/dist/esm/converter-cli.js.map +1 -1
  117. package/dist/esm/deps-installer/deps-installer.js +30 -4
  118. package/dist/esm/deps-installer/deps-installer.js.map +1 -1
  119. package/dist/esm/i3s-attributes-worker.js +3 -1
  120. package/dist/esm/i3s-attributes-worker.js.map +1 -1
  121. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +20 -24
  122. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  123. package/dist/esm/i3s-converter/helpers/coordinate-converter.js +11 -12
  124. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  125. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js +1 -0
  126. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
  127. package/dist/esm/i3s-converter/helpers/feature-attributes.js +158 -0
  128. package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -0
  129. package/dist/esm/i3s-converter/helpers/geometry-attributes.js +39 -33
  130. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  131. package/dist/esm/i3s-converter/helpers/geometry-converter.js +286 -192
  132. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  133. package/dist/esm/i3s-converter/helpers/gltf-attributes.js +59 -48
  134. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -1
  135. package/dist/esm/i3s-converter/helpers/node-debug.js +3 -13
  136. package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -1
  137. package/dist/esm/i3s-converter/helpers/node-index-document.js +202 -0
  138. package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -0
  139. package/dist/esm/i3s-converter/helpers/node-pages.js +161 -87
  140. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
  141. package/dist/esm/i3s-converter/i3s-converter.js +217 -509
  142. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  143. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js +89 -0
  144. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  145. package/dist/esm/i3s-converter/json-templates/layers.js +2 -95
  146. package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -1
  147. package/dist/esm/i3s-converter/json-templates/metadata.js.map +1 -1
  148. package/dist/esm/i3s-converter/json-templates/node.js +0 -4
  149. package/dist/esm/i3s-converter/json-templates/node.js.map +1 -1
  150. package/dist/esm/i3s-converter/json-templates/scene-server.js.map +1 -1
  151. package/dist/esm/i3s-converter/json-templates/shared-resources.js +3 -15
  152. package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -1
  153. package/dist/esm/i3s-converter/json-templates/store.js.map +1 -1
  154. package/dist/esm/i3s-converter/types.js.map +1 -1
  155. package/dist/esm/i3s-server/app.js +0 -5
  156. package/dist/esm/i3s-server/app.js.map +1 -1
  157. package/dist/esm/i3s-server/controllers/index-controller.js +0 -5
  158. package/dist/esm/i3s-server/controllers/index-controller.js.map +1 -1
  159. package/dist/esm/i3s-server/routes/index.js +0 -3
  160. package/dist/esm/i3s-server/routes/index.js.map +1 -1
  161. package/dist/esm/index.js.map +1 -1
  162. package/dist/esm/lib/utils/compress-util.js +19 -12
  163. package/dist/esm/lib/utils/compress-util.js.map +1 -1
  164. package/dist/esm/lib/utils/file-utils.js +54 -11
  165. package/dist/esm/lib/utils/file-utils.js.map +1 -1
  166. package/dist/esm/lib/utils/lod-conversion-utils.js +2 -6
  167. package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
  168. package/dist/esm/lib/utils/queue.js +0 -4
  169. package/dist/esm/lib/utils/queue.js.map +1 -1
  170. package/dist/esm/lib/utils/statistic-utills.js +0 -11
  171. package/dist/esm/lib/utils/statistic-utills.js.map +1 -1
  172. package/dist/esm/lib/utils/write-queue.js +29 -28
  173. package/dist/esm/lib/utils/write-queue.js.map +1 -1
  174. package/dist/esm/pgm-loader.js +3 -1
  175. package/dist/esm/pgm-loader.js.map +1 -1
  176. package/dist/esm/workers/3d-tiles-attributes-worker.js +4 -1
  177. package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -1
  178. package/dist/esm/workers/i3s-attributes-worker.js +4 -1
  179. package/dist/esm/workers/i3s-attributes-worker.js.map +1 -1
  180. package/dist/i3s-attributes-worker.d.ts +7 -3
  181. package/dist/i3s-attributes-worker.d.ts.map +1 -1
  182. package/dist/i3s-attributes-worker.js +2 -3
  183. package/dist/i3s-attributes-worker.js.map +3 -3
  184. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +5 -6
  185. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -1
  186. package/dist/i3s-converter/helpers/batch-ids-extensions.js +18 -4
  187. package/dist/i3s-converter/helpers/coordinate-converter.d.ts +2 -2
  188. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -1
  189. package/dist/i3s-converter/helpers/coordinate-converter.js +8 -6
  190. package/dist/i3s-converter/helpers/feature-attributes.d.ts +56 -0
  191. package/dist/i3s-converter/helpers/feature-attributes.d.ts.map +1 -0
  192. package/dist/i3s-converter/helpers/feature-attributes.js +216 -0
  193. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -1
  194. package/dist/i3s-converter/helpers/geometry-attributes.js +42 -17
  195. package/dist/i3s-converter/helpers/geometry-converter.d.ts +18 -6
  196. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
  197. package/dist/i3s-converter/helpers/geometry-converter.js +337 -92
  198. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -1
  199. package/dist/i3s-converter/helpers/gltf-attributes.js +51 -32
  200. package/dist/i3s-converter/helpers/node-index-document.d.ts +95 -0
  201. package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -0
  202. package/dist/i3s-converter/helpers/node-index-document.js +250 -0
  203. package/dist/i3s-converter/helpers/node-pages.d.ts +81 -42
  204. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -1
  205. package/dist/i3s-converter/helpers/node-pages.js +201 -93
  206. package/dist/i3s-converter/i3s-converter.d.ts +52 -108
  207. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  208. package/dist/i3s-converter/i3s-converter.js +223 -421
  209. package/dist/i3s-converter/json-templates/geometry-definitions.d.ts +7 -0
  210. package/dist/i3s-converter/json-templates/geometry-definitions.d.ts.map +1 -0
  211. package/dist/i3s-converter/json-templates/geometry-definitions.js +87 -0
  212. package/dist/i3s-converter/json-templates/layers.d.ts +1 -30
  213. package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -1
  214. package/dist/i3s-converter/json-templates/layers.js +2 -86
  215. package/dist/i3s-converter/json-templates/shared-resources.js +3 -3
  216. package/dist/i3s-converter/types.d.ts +37 -55
  217. package/dist/i3s-converter/types.d.ts.map +1 -1
  218. package/dist/lib/utils/file-utils.d.ts +17 -1
  219. package/dist/lib/utils/file-utils.d.ts.map +1 -1
  220. package/dist/lib/utils/file-utils.js +64 -7
  221. package/dist/lib/utils/write-queue.d.ts +19 -2
  222. package/dist/lib/utils/write-queue.d.ts.map +1 -1
  223. package/dist/lib/utils/write-queue.js +26 -7
  224. package/dist/pgm-loader.d.ts.map +1 -1
  225. package/dist/pgm-loader.js +2 -1
  226. package/dist/workers/3d-tiles-attributes-worker.js +1 -1
  227. package/dist/workers/i3s-attributes-worker.js +1 -1
  228. package/package.json +18 -16
  229. package/src/3d-tiles-attributes-worker.ts +1 -1
  230. package/src/3d-tiles-converter/3d-tiles-converter.ts +71 -55
  231. package/src/3d-tiles-converter/helpers/b3dm-converter.ts +25 -18
  232. package/src/converter-cli.ts +38 -4
  233. package/src/deps-installer/deps-installer.ts +38 -2
  234. package/src/i3s-attributes-worker.ts +5 -1
  235. package/src/i3s-converter/helpers/batch-ids-extensions.ts +38 -14
  236. package/src/i3s-converter/helpers/coordinate-converter.ts +10 -8
  237. package/src/i3s-converter/helpers/feature-attributes.ts +247 -0
  238. package/src/i3s-converter/helpers/geometry-attributes.ts +46 -18
  239. package/src/i3s-converter/helpers/geometry-converter.ts +405 -108
  240. package/src/i3s-converter/helpers/gltf-attributes.ts +55 -35
  241. package/src/i3s-converter/helpers/node-index-document.ts +315 -0
  242. package/src/i3s-converter/helpers/node-pages.ts +222 -109
  243. package/src/i3s-converter/i3s-converter.ts +269 -500
  244. package/src/i3s-converter/json-templates/geometry-definitions.ts +83 -0
  245. package/src/i3s-converter/json-templates/layers.ts +2 -91
  246. package/src/i3s-converter/json-templates/shared-resources.ts +3 -3
  247. package/src/i3s-converter/types.ts +31 -51
  248. package/src/lib/utils/file-utils.ts +62 -7
  249. package/src/lib/utils/write-queue.ts +43 -10
  250. package/src/pgm-loader.ts +2 -2
  251. package/src/workers/3d-tiles-attributes-worker.ts +1 -1
  252. package/src/workers/i3s-attributes-worker.ts +2 -1
@@ -1,89 +1,75 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.writeFile = writeFile;
9
- exports.writeFileForSlpk = writeFileForSlpk;
7
+ exports.getAbsoluteFilePath = getAbsoluteFilePath;
8
+ exports.isFileExists = isFileExists;
9
+ exports.openJson = openJson;
10
10
  exports.removeDir = removeDir;
11
11
  exports.removeFile = removeFile;
12
- exports.getAbsoluteFilePath = getAbsoluteFilePath;
13
-
12
+ exports.writeFile = writeFile;
13
+ exports.writeFileForSlpk = writeFileForSlpk;
14
14
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
-
16
15
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
16
+ var _core = require("@loaders.gl/core");
17
+ var _loaderUtils = require("@loaders.gl/loader-utils");
18
18
  var _fs = require("fs");
19
-
20
19
  var _path = require("path");
21
-
22
20
  var _compressUtil = require("./compress-util");
23
-
24
21
  function writeFile(_x, _x2) {
25
22
  return _writeFile.apply(this, arguments);
26
23
  }
27
-
28
24
  function _writeFile() {
29
25
  _writeFile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(path, data) {
30
26
  var fileName,
31
- toWriteData,
32
- pathFile,
33
- _args = arguments;
27
+ toWriteData,
28
+ pathFile,
29
+ _args = arguments;
34
30
  return _regenerator.default.wrap(function _callee$(_context) {
35
31
  while (1) {
36
32
  switch (_context.prev = _context.next) {
37
33
  case 0:
38
34
  fileName = _args.length > 2 && _args[2] !== undefined ? _args[2] : 'index.json';
39
-
40
35
  if (!(data instanceof Promise)) {
41
36
  _context.next = 9;
42
37
  break;
43
38
  }
44
-
45
39
  _context.t0 = Uint8Array;
46
40
  _context.next = 5;
47
41
  return data;
48
-
49
42
  case 5:
50
43
  _context.t1 = _context.sent;
51
44
  toWriteData = new _context.t0(_context.t1);
52
45
  _context.next = 10;
53
46
  break;
54
-
55
47
  case 9:
56
48
  if (data instanceof ArrayBuffer) {
57
49
  toWriteData = new Uint8Array(data);
58
50
  } else {
59
51
  toWriteData = data;
60
52
  }
61
-
62
53
  case 10:
63
54
  _context.next = 12;
64
55
  return _fs.promises.mkdir(path, {
65
56
  recursive: true
66
57
  });
67
-
68
58
  case 12:
69
59
  pathFile = (0, _path.join)(path, fileName);
70
60
  _context.prev = 13;
71
61
  _context.next = 16;
72
62
  return _fs.promises.writeFile(pathFile, toWriteData);
73
-
74
63
  case 16:
75
64
  _context.next = 21;
76
65
  break;
77
-
78
66
  case 18:
79
67
  _context.prev = 18;
80
68
  _context.t2 = _context["catch"](13);
81
69
  throw _context.t2;
82
-
83
70
  case 21:
84
71
  console.log("".concat(pathFile, " saved."));
85
72
  return _context.abrupt("return", pathFile);
86
-
87
73
  case 23:
88
74
  case "end":
89
75
  return _context.stop();
@@ -93,50 +79,59 @@ function _writeFile() {
93
79
  }));
94
80
  return _writeFile.apply(this, arguments);
95
81
  }
96
-
97
82
  function writeFileForSlpk(_x3, _x4) {
98
83
  return _writeFileForSlpk.apply(this, arguments);
99
84
  }
100
-
101
85
  function _writeFileForSlpk() {
102
86
  _writeFileForSlpk = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(path, data) {
103
87
  var fileName,
104
- compress,
105
- pathFile,
106
- pathGzFile,
107
- _args2 = arguments;
88
+ compress,
89
+ compressList,
90
+ pathFile,
91
+ pathGzFile,
92
+ _args2 = arguments;
108
93
  return _regenerator.default.wrap(function _callee2$(_context2) {
109
94
  while (1) {
110
95
  switch (_context2.prev = _context2.next) {
111
96
  case 0:
112
97
  fileName = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : 'index.json';
113
98
  compress = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : true;
114
- _context2.next = 4;
99
+ compressList = _args2.length > 4 ? _args2[4] : undefined;
100
+ _context2.next = 5;
115
101
  return writeFile(path, data, fileName);
116
-
117
- case 4:
102
+ case 5:
118
103
  pathFile = _context2.sent;
119
-
120
104
  if (!compress) {
121
- _context2.next = 12;
105
+ _context2.next = 22;
122
106
  break;
123
107
  }
124
-
125
- _context2.next = 8;
108
+ if (!compressList) {
109
+ _context2.next = 16;
110
+ break;
111
+ }
112
+ if (compressList.includes(pathFile)) {
113
+ _context2.next = 13;
114
+ break;
115
+ }
116
+ compressList.push(pathFile);
117
+ return _context2.abrupt("return", "".concat(pathFile, ".gz"));
118
+ case 13:
119
+ return _context2.abrupt("return", null);
120
+ case 14:
121
+ _context2.next = 22;
122
+ break;
123
+ case 16:
124
+ _context2.next = 18;
126
125
  return (0, _compressUtil.compressFileWithGzip)(pathFile);
127
-
128
- case 8:
126
+ case 18:
129
127
  pathGzFile = _context2.sent;
130
- _context2.next = 11;
128
+ _context2.next = 21;
131
129
  return removeFile(pathFile);
132
-
133
- case 11:
130
+ case 21:
134
131
  return _context2.abrupt("return", pathGzFile);
135
-
136
- case 12:
132
+ case 22:
137
133
  return _context2.abrupt("return", pathFile);
138
-
139
- case 13:
134
+ case 23:
140
135
  case "end":
141
136
  return _context2.stop();
142
137
  }
@@ -145,7 +140,68 @@ function _writeFileForSlpk() {
145
140
  }));
146
141
  return _writeFileForSlpk.apply(this, arguments);
147
142
  }
148
-
143
+ function openJson(_x5, _x6) {
144
+ return _openJson.apply(this, arguments);
145
+ }
146
+ function _openJson() {
147
+ _openJson = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(path, fileName) {
148
+ return _regenerator.default.wrap(function _callee3$(_context3) {
149
+ while (1) {
150
+ switch (_context3.prev = _context3.next) {
151
+ case 0:
152
+ return _context3.abrupt("return", new Promise(function (resolve, reject) {
153
+ var count = 0;
154
+ console.log("load ".concat(path, "/").concat(fileName, "."));
155
+ var intervalId = setInterval(function () {
156
+ var pathFile = (0, _path.join)(path, fileName);
157
+ (0, _core.load)(pathFile, _loaderUtils.JSONLoader).then(function (result) {
158
+ clearInterval(intervalId);
159
+ resolve(result);
160
+ }).catch(function () {
161
+ count++;
162
+ if (count > 100) {
163
+ clearInterval(intervalId);
164
+ reject(new Error("Cannon load ".concat(path, "/").concat(fileName, ".")));
165
+ }
166
+ });
167
+ }, 200);
168
+ }));
169
+ case 1:
170
+ case "end":
171
+ return _context3.stop();
172
+ }
173
+ }
174
+ }, _callee3);
175
+ }));
176
+ return _openJson.apply(this, arguments);
177
+ }
178
+ function isFileExists(_x7) {
179
+ return _isFileExists.apply(this, arguments);
180
+ }
181
+ function _isFileExists() {
182
+ _isFileExists = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(fileName) {
183
+ return _regenerator.default.wrap(function _callee4$(_context4) {
184
+ while (1) {
185
+ switch (_context4.prev = _context4.next) {
186
+ case 0:
187
+ _context4.prev = 0;
188
+ _context4.next = 3;
189
+ return _fs.promises.stat(fileName);
190
+ case 3:
191
+ return _context4.abrupt("return", true);
192
+ case 6:
193
+ _context4.prev = 6;
194
+ _context4.t0 = _context4["catch"](0);
195
+ return _context4.abrupt("return", false);
196
+ case 9:
197
+ case "end":
198
+ return _context4.stop();
199
+ }
200
+ }
201
+ }, _callee4, null, [[0, 6]]);
202
+ }));
203
+ return _isFileExists.apply(this, arguments);
204
+ }
149
205
  function removeDir(path) {
150
206
  return _fs.promises.rmdir(path, {
151
207
  recursive: true
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/utils/file-utils.ts"],"names":["writeFile","path","data","fileName","Promise","Uint8Array","toWriteData","ArrayBuffer","fs","mkdir","recursive","pathFile","console","log","writeFileForSlpk","compress","pathGzFile","removeFile","removeDir","rmdir","unlink","getAbsoluteFilePath","filePath","process","cwd"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;SASsBA,S;;;;;yEAAf,iBACLC,IADK,EAELC,IAFK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGLC,YAAAA,QAHK,2DAGc,YAHd;;AAAA,kBAMDD,IAAI,YAAYE,OANf;AAAA;AAAA;AAAA;;AAAA,0BAOeC,UAPf;AAAA;AAAA,mBAOgCH,IAPhC;;AAAA;AAAA;AAOHI,YAAAA,WAPG;AAAA;AAAA;;AAAA;AAQE,gBAAIJ,IAAI,YAAYK,WAApB,EAAiC;AACtCD,cAAAA,WAAW,GAAG,IAAID,UAAJ,CAAeH,IAAf,CAAd;AACD,aAFM,MAEA;AACLI,cAAAA,WAAW,GAAGJ,IAAd;AACD;;AAZI;AAAA;AAAA,mBAaCM,aAAGC,KAAH,CAASR,IAAT,EAAe;AAACS,cAAAA,SAAS,EAAE;AAAZ,aAAf,CAbD;;AAAA;AAcCC,YAAAA,QAdD,GAcY,gBAAKV,IAAL,EAAWE,QAAX,CAdZ;AAAA;AAAA;AAAA,mBAgBGK,aAAGR,SAAH,CAAaW,QAAb,EAAuBL,WAAvB,CAhBH;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAoBLM,YAAAA,OAAO,CAACC,GAAR,WAAeF,QAAf;AApBK,6CAqBEA,QArBF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAgCeG,gB;;;;;gFAAf,kBACLb,IADK,EAELC,IAFK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGLC,YAAAA,QAHK,8DAGc,YAHd;AAILY,YAAAA,QAJK,8DAIe,IAJf;AAAA;AAAA,mBAMkBf,SAAS,CAACC,IAAD,EAAOC,IAAP,EAAaC,QAAb,CAN3B;;AAAA;AAMCQ,YAAAA,QAND;;AAAA,iBAODI,QAPC;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAQsB,wCAAqBJ,QAArB,CARtB;;AAAA;AAQGK,YAAAA,UARH;AAAA;AAAA,mBAUGC,UAAU,CAACN,QAAD,CAVb;;AAAA;AAAA,8CAWIK,UAXJ;;AAAA;AAAA,8CAaEL,QAbF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAqBA,SAASO,SAAT,CAAmBjB,IAAnB,EAAiC;AACtC,SAAOO,aAAGW,KAAH,CAASlB,IAAT,EAAe;AAACS,IAAAA,SAAS,EAAE;AAAZ,GAAf,CAAP;AACD;;AAOM,SAASO,UAAT,CAAoBhB,IAApB,EAAkC;AACvC,SAAOO,aAAGY,MAAH,CAAUnB,IAAV,CAAP;AACD;;AAMM,SAASoB,mBAAT,CAA6BC,QAA7B,EAA+C;AACpD,SAAO,sBAAWA,QAAX,IAAuBA,QAAvB,GAAkC,gBAAKC,OAAO,CAACC,GAAR,EAAL,EAAoBF,QAApB,CAAzC;AACD","sourcesContent":["import {promises as fs} from 'fs';\nimport {isAbsolute, join} from 'path';\nimport {compressFileWithGzip} from './compress-util';\n\n/**\n * Write a file with data and name fileName to path\n *\n * @param path - output path\n * @param data - file content\n * @param fileName - name of output file (default: index.json)\n */\nexport async function writeFile(\n path: string,\n data: string | Uint8Array | ArrayBuffer | Promise<ArrayBuffer>,\n fileName: string = 'index.json'\n): Promise<string> {\n let toWriteData: string | Uint8Array;\n if (data instanceof Promise) {\n toWriteData = new Uint8Array(await data);\n } else if (data instanceof ArrayBuffer) {\n toWriteData = new Uint8Array(data as ArrayBuffer);\n } else {\n toWriteData = data;\n }\n await fs.mkdir(path, {recursive: true});\n const pathFile = join(path, fileName);\n try {\n await fs.writeFile(pathFile, toWriteData);\n } catch (err) {\n throw err;\n }\n console.log(`${pathFile} saved.`); // eslint-disable-line\n return pathFile;\n}\n\n/**\n * Write a file with data and name fileName to path - specific one for further packaging into slpk\n *\n * @param path - output path\n * @param data - file content\n * @param fileName - name of output file (default: index.json)\n * @param compress - if need to compress file with gzip (default: true)\n */\nexport async function writeFileForSlpk(\n path: string,\n data: string | Uint8Array | ArrayBuffer | Promise<ArrayBuffer>,\n fileName: string = 'index.json',\n compress: boolean = true\n): Promise<string> {\n const pathFile = await writeFile(path, data, fileName);\n if (compress) {\n const pathGzFile = await compressFileWithGzip(pathFile);\n // After compression, we don't need an uncompressed file\n await removeFile(pathFile);\n return pathGzFile;\n }\n return pathFile;\n}\n\n/**\n * Remove dir with path\n *\n * @param path\n */\nexport function removeDir(path: string) {\n return fs.rmdir(path, {recursive: true});\n}\n\n/**\n * Remove file with path\n *\n * @param path\n */\nexport function removeFile(path: string) {\n return fs.unlink(path);\n}\n\n/**\n * Generates absolute file path\n * @param filePath\n */\nexport function getAbsoluteFilePath(filePath: string) {\n return isAbsolute(filePath) ? filePath : join(process.cwd(), filePath); // eslint-disable-line no-undef\n}\n"],"file":"file-utils.js"}
1
+ {"version":3,"file":"file-utils.js","names":["writeFile","path","data","fileName","Promise","Uint8Array","toWriteData","ArrayBuffer","fs","mkdir","recursive","pathFile","join","console","log","writeFileForSlpk","compress","compressList","includes","push","compressFileWithGzip","pathGzFile","removeFile","openJson","resolve","reject","count","intervalId","setInterval","load","JSONLoader","then","result","clearInterval","catch","Error","isFileExists","stat","removeDir","rmdir","unlink","getAbsoluteFilePath","filePath","isAbsolute","process","cwd"],"sources":["../../../../src/lib/utils/file-utils.ts"],"sourcesContent":["import {load} from '@loaders.gl/core';\nimport {JSONLoader} from '@loaders.gl/loader-utils';\nimport {promises as fs} from 'fs';\nimport {isAbsolute, join} from 'path';\nimport {compressFileWithGzip} from './compress-util';\n\n/**\n * Write a file with data and name fileName to path\n *\n * @param path - output path\n * @param data - file content\n * @param fileName - name of output file (default: index.json)\n */\nexport async function writeFile(\n path: string,\n data: string | Uint8Array | ArrayBuffer | Promise<ArrayBuffer>,\n fileName: string = 'index.json'\n): Promise<string> {\n let toWriteData: string | Uint8Array;\n if (data instanceof Promise) {\n toWriteData = new Uint8Array(await data);\n } else if (data instanceof ArrayBuffer) {\n toWriteData = new Uint8Array(data as ArrayBuffer);\n } else {\n toWriteData = data;\n }\n await fs.mkdir(path, {recursive: true});\n const pathFile = join(path, fileName);\n try {\n await fs.writeFile(pathFile, toWriteData);\n } catch (err) {\n throw err;\n }\n console.log(`${pathFile} saved.`); // eslint-disable-line\n return pathFile;\n}\n\n/**\n * Write a file with data and name fileName to path - specific one for further packaging into slpk\n *\n * @param path - output path\n * @param data - file content\n * @param fileName - name of output file (default: index.json)\n * @param compress - if need to compress file with gzip (default: true)\n * @param compressList - if set - the file should be added to this list and compressed in the end of conversion\n */\nexport async function writeFileForSlpk(\n path: string,\n data: string | Uint8Array | ArrayBuffer | Promise<ArrayBuffer>,\n fileName: string = 'index.json',\n compress: boolean = true,\n compressList?: string[] | null\n): Promise<string | null> {\n const pathFile = await writeFile(path, data, fileName);\n if (compress) {\n if (compressList) {\n if (!compressList.includes(pathFile)) {\n compressList.push(pathFile);\n return `${pathFile}.gz`;\n } else {\n return null;\n }\n } else {\n const pathGzFile = await compressFileWithGzip(pathFile);\n // After compression, we don't need an uncompressed file\n await removeFile(pathFile);\n return pathGzFile;\n }\n }\n return pathFile;\n}\n\n/**\n * Open json file\n * @param path - path to the file\n * @param fileName - file name\n * @returns object\n */\nexport async function openJson(path: string, fileName: string): Promise<{[key: string]: any}> {\n return new Promise((resolve, reject) => {\n let count = 0;\n console.log(`load ${path}/${fileName}.`); // eslint-disable-line\n const intervalId = setInterval(() => {\n const pathFile = join(path, fileName);\n load(pathFile, JSONLoader)\n .then((result) => {\n clearInterval(intervalId);\n resolve(result);\n })\n .catch(() => {\n count++;\n if (count > 100) {\n clearInterval(intervalId);\n reject(new Error(`Cannon load ${path}/${fileName}.`));\n }\n });\n }, 200);\n });\n}\n\n/**\n * Check if the file exists\n * @param fileName - full name of file\n * @returns true if file exists, otherwise - false\n */\nexport async function isFileExists(fileName: string): Promise<boolean> {\n try {\n await fs.stat(fileName);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Remove dir with path\n *\n * @param path\n */\nexport function removeDir(path: string) {\n return fs.rmdir(path, {recursive: true});\n}\n\n/**\n * Remove file with path\n *\n * @param path\n */\nexport function removeFile(path: string) {\n return fs.unlink(path);\n}\n\n/**\n * Generates absolute file path\n * @param filePath\n */\nexport function getAbsoluteFilePath(filePath: string) {\n return isAbsolute(filePath) ? filePath : join(process.cwd(), filePath);\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AAAqD,SAS/BA,SAAS;EAAA;AAAA;AAAA;EAAA,uEAAxB,iBACLC,IAAY,EACZC,IAA8D;IAAA;MAAA;MAAA;MAAA;IAAA;MAAA;QAAA;UAAA;YAC9DC,QAAgB,2DAAG,YAAY;YAAA,MAG3BD,IAAI,YAAYE,OAAO;cAAA;cAAA;YAAA;YAAA,cACPC,UAAU;YAAA;YAAA,OAAOH,IAAI;UAAA;YAAA;YAAvCI,WAAW;YAAA;YAAA;UAAA;YACN,IAAIJ,IAAI,YAAYK,WAAW,EAAE;cACtCD,WAAW,GAAG,IAAID,UAAU,CAACH,IAAI,CAAgB;YACnD,CAAC,MAAM;cACLI,WAAW,GAAGJ,IAAI;YACpB;UAAC;YAAA;YAAA,OACKM,YAAE,CAACC,KAAK,CAACR,IAAI,EAAE;cAACS,SAAS,EAAE;YAAI,CAAC,CAAC;UAAA;YACjCC,QAAQ,GAAG,IAAAC,UAAI,EAACX,IAAI,EAAEE,QAAQ,CAAC;YAAA;YAAA;YAAA,OAE7BK,YAAE,CAACR,SAAS,CAACW,QAAQ,EAAEL,WAAW,CAAC;UAAA;YAAA;YAAA;UAAA;YAAA;YAAA;YAAA;UAAA;YAI3CO,OAAO,CAACC,GAAG,WAAIH,QAAQ,aAAU;YAAC,iCAC3BA,QAAQ;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAChB;EAAA;AAAA;AAAA,SAWqBI,gBAAgB;EAAA;AAAA;AAAA;EAAA,8EAA/B,kBACLd,IAAY,EACZC,IAA8D;IAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA;MAAA;QAAA;UAAA;YAC9DC,QAAgB,8DAAG,YAAY;YAC/Ba,QAAiB,8DAAG,IAAI;YACxBC,YAA8B;YAAA;YAAA,OAEPjB,SAAS,CAACC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,CAAC;UAAA;YAAhDQ,QAAQ;YAAA,KACVK,QAAQ;cAAA;cAAA;YAAA;YAAA,KACNC,YAAY;cAAA;cAAA;YAAA;YAAA,IACTA,YAAY,CAACC,QAAQ,CAACP,QAAQ,CAAC;cAAA;cAAA;YAAA;YAClCM,YAAY,CAACE,IAAI,CAACR,QAAQ,CAAC;YAAC,4CAClBA,QAAQ;UAAA;YAAA,kCAEX,IAAI;UAAA;YAAA;YAAA;UAAA;YAAA;YAAA,OAGY,IAAAS,kCAAoB,EAACT,QAAQ,CAAC;UAAA;YAAjDU,UAAU;YAAA;YAAA,OAEVC,UAAU,CAACX,QAAQ,CAAC;UAAA;YAAA,kCACnBU,UAAU;UAAA;YAAA,kCAGdV,QAAQ;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAChB;EAAA;AAAA;AAAA,SAQqBY,QAAQ;EAAA;AAAA;AAAA;EAAA,sEAAvB,kBAAwBtB,IAAY,EAAEE,QAAgB;IAAA;MAAA;QAAA;UAAA;YAAA,kCACpD,IAAIC,OAAO,CAAC,UAACoB,OAAO,EAAEC,MAAM,EAAK;cACtC,IAAIC,KAAK,GAAG,CAAC;cACbb,OAAO,CAACC,GAAG,gBAASb,IAAI,cAAIE,QAAQ,OAAI;cACxC,IAAMwB,UAAU,GAAGC,WAAW,CAAC,YAAM;gBACnC,IAAMjB,QAAQ,GAAG,IAAAC,UAAI,EAACX,IAAI,EAAEE,QAAQ,CAAC;gBACrC,IAAA0B,UAAI,EAAClB,QAAQ,EAAEmB,uBAAU,CAAC,CACvBC,IAAI,CAAC,UAACC,MAAM,EAAK;kBAChBC,aAAa,CAACN,UAAU,CAAC;kBACzBH,OAAO,CAACQ,MAAM,CAAC;gBACjB,CAAC,CAAC,CACDE,KAAK,CAAC,YAAM;kBACXR,KAAK,EAAE;kBACP,IAAIA,KAAK,GAAG,GAAG,EAAE;oBACfO,aAAa,CAACN,UAAU,CAAC;oBACzBF,MAAM,CAAC,IAAIU,KAAK,uBAAgBlC,IAAI,cAAIE,QAAQ,OAAI,CAAC;kBACvD;gBACF,CAAC,CAAC;cACN,CAAC,EAAE,GAAG,CAAC;YACT,CAAC,CAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACH;EAAA;AAAA;AAAA,SAOqBiC,YAAY;EAAA;AAAA;AAAA;EAAA,0EAA3B,kBAA4BjC,QAAgB;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA;YAAA,OAEzCK,YAAE,CAAC6B,IAAI,CAAClC,QAAQ,CAAC;UAAA;YAAA,kCAChB,IAAI;UAAA;YAAA;YAAA;YAAA,kCAEJ,KAAK;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAEf;EAAA;AAAA;AAOM,SAASmC,SAAS,CAACrC,IAAY,EAAE;EACtC,OAAOO,YAAE,CAAC+B,KAAK,CAACtC,IAAI,EAAE;IAACS,SAAS,EAAE;EAAI,CAAC,CAAC;AAC1C;;AAOO,SAASY,UAAU,CAACrB,IAAY,EAAE;EACvC,OAAOO,YAAE,CAACgC,MAAM,CAACvC,IAAI,CAAC;AACxB;;AAMO,SAASwC,mBAAmB,CAACC,QAAgB,EAAE;EACpD,OAAO,IAAAC,gBAAU,EAACD,QAAQ,CAAC,GAAGA,QAAQ,GAAG,IAAA9B,UAAI,EAACgC,OAAO,CAACC,GAAG,EAAE,EAAEH,QAAQ,CAAC;AACxE"}
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.convertGeometricErrorToScreenThreshold = convertGeometricErrorToScreenThreshold;
7
7
  exports.convertScreenThresholdToGeometricError = convertScreenThresholdToGeometricError;
8
8
  var DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR = 16;
9
-
10
9
  function convertGeometricErrorToScreenThreshold(tile, coordinates) {
11
10
  var lodSelection = [];
12
11
  var boundingVolume = tile.boundingVolume;
@@ -19,7 +18,6 @@ function convertGeometricErrorToScreenThreshold(tile, coordinates) {
19
18
  metricType: 'maxScreenThresholdSQ',
20
19
  maxError: Math.PI * 0.25 * maxScreenThreshold.maxError * maxScreenThreshold.maxError
21
20
  };
22
-
23
21
  if (boundingVolume.constructor.name === 'OrientedBoundingBox') {
24
22
  lodSelection.push(maxScreenThresholdSQ);
25
23
  lodSelection.push(maxScreenThreshold);
@@ -27,26 +25,21 @@ function convertGeometricErrorToScreenThreshold(tile, coordinates) {
27
25
  lodSelection.push(maxScreenThreshold);
28
26
  lodSelection.push(maxScreenThresholdSQ);
29
27
  }
30
-
31
28
  return lodSelection;
32
29
  }
33
30
 
34
31
  function convertScreenThresholdToGeometricError(node) {
35
32
  var metricData = node.header.lodSelection.maxScreenThreshold || {};
36
33
  var maxError = metricData.maxError;
37
-
38
34
  if (!maxError) {
39
35
  var sqMetricData = node.header.lodSelection.maxScreenThresholdSQ;
40
-
41
36
  if (sqMetricData) {
42
37
  maxError = Math.sqrt(sqMetricData.maxError / (Math.PI * 0.25));
43
38
  }
44
39
  }
45
-
46
40
  if (!maxError) {
47
41
  maxError = DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR;
48
42
  }
49
-
50
43
  return node.header.mbs[3] * 2 * DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR / maxError;
51
44
  }
52
45
  //# sourceMappingURL=lod-conversion-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/utils/lod-conversion-utils.ts"],"names":["DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR","convertGeometricErrorToScreenThreshold","tile","coordinates","lodSelection","boundingVolume","lodMetricValue","maxScreenThreshold","metricType","maxError","mbs","maxScreenThresholdSQ","Math","PI","constructor","name","push","convertScreenThresholdToGeometricError","node","metricData","header","sqMetricData","sqrt"],"mappings":";;;;;;;AAIA,IAAMA,kCAAkC,GAAG,EAA3C;;AA6BO,SAASC,sCAAT,CAAgDC,IAAhD,EAA8DC,WAA9D,EAA4F;AACjG,MAAMC,YAAsD,GAAG,EAA/D;AACA,MAAMC,cAAc,GAAGH,IAAI,CAACG,cAA5B;AACA,MAAMC,cAAc,GAAGJ,IAAI,CAACI,cAAL,IAAuB,GAA9C;AACA,MAAMC,kBAAkB,GAAG;AACzBC,IAAAA,UAAU,EAAE,oBADa;AAEzBC,IAAAA,QAAQ,EAAGN,WAAW,CAACO,GAAZ,CAAgB,CAAhB,IAAqB,CAArB,GAAyBV,kCAA1B,GAAgEM;AAFjD,GAA3B;AAIA,MAAMK,oBAAoB,GAAG;AAC3BH,IAAAA,UAAU,EAAE,sBADe;AAE3BC,IAAAA,QAAQ,EAAEG,IAAI,CAACC,EAAL,GAAU,IAAV,GAAiBN,kBAAkB,CAACE,QAApC,GAA+CF,kBAAkB,CAACE;AAFjD,GAA7B;;AAKA,MAAIJ,cAAc,CAACS,WAAf,CAA2BC,IAA3B,KAAoC,qBAAxC,EAA+D;AAC7DX,IAAAA,YAAY,CAACY,IAAb,CAAkBL,oBAAlB;AACAP,IAAAA,YAAY,CAACY,IAAb,CAAkBT,kBAAlB;AACD,GAHD,MAGO;AACLH,IAAAA,YAAY,CAACY,IAAb,CAAkBT,kBAAlB;AACAH,IAAAA,YAAY,CAACY,IAAb,CAAkBL,oBAAlB;AACD;;AAED,SAAOP,YAAP;AACD;;AAOM,SAASa,sCAAT,CAAgDC,IAAhD,EAAsE;AAC3E,MAAMC,UAAU,GAAGD,IAAI,CAACE,MAAL,CAAYhB,YAAZ,CAAyBG,kBAAzB,IAA+C,EAAlE;AACA,MAAIE,QAAQ,GAAGU,UAAU,CAACV,QAA1B;;AACA,MAAI,CAACA,QAAL,EAAe;AACb,QAAMY,YAAY,GAAGH,IAAI,CAACE,MAAL,CAAYhB,YAAZ,CAAyBO,oBAA9C;;AACA,QAAIU,YAAJ,EAAkB;AAChBZ,MAAAA,QAAQ,GAAGG,IAAI,CAACU,IAAL,CAAUD,YAAY,CAACZ,QAAb,IAAyBG,IAAI,CAACC,EAAL,GAAU,IAAnC,CAAV,CAAX;AACD;AACF;;AAED,MAAI,CAACJ,QAAL,EAAe;AACbA,IAAAA,QAAQ,GAAGT,kCAAX;AACD;;AAED,SAAQkB,IAAI,CAACE,MAAL,CAAYV,GAAZ,CAAgB,CAAhB,IAAqB,CAArB,GAAyBV,kCAA1B,GAAgES,QAAvE;AACD","sourcesContent":["import {BoundingVolumes} from '@loaders.gl/i3s';\nimport {Tile3D} from '@loaders.gl/tiles';\n\n// https://cesium.com/docs/cesiumjs-ref-doc/Cesium3DTileset.html\nconst DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR = 16;\n/**\n * Do conversion from geometric error to screen threshold\n * \n * In 3DTiles we have HLOD logic and parent tile also has bigger lodMetric value then its children.\n * In I3s we have reverse logic related to maxError. Parent has lower maxError than its child.\n * In nodes where are no children tile.lodMetricValue is 0. This is because of logic of HLOD in 3DTiles\n * 3DTiles spec:\n * https://github.com/CesiumGS/3d-tiles/tree/master/specification#geometric-error\n * I3S spec:\n * https://github.com/Esri/i3s-spec/blob/master/docs/1.7/lodSelection.cmn.md\n * To avoid infinity values when we do calculations of maxError we shold replace 0 with value which allows us\n * to make child maxError bigger than his parent maxError.\n * \n * @param tile - 3d-tiles tile Object\n * @param coordinates - node converted coordinates\n * @returns An array of LOD metrics in format compatible with i3s 3DNodeIndexDocument.lodSelection\n * @example \n * [\n {\n \"metricType\": \"maxScreenThresholdSQ\",\n \"maxError\": 870638.071285568\n },\n {\n \"metricType\": \"maxScreenThreshold\",\n \"maxError\": 1052.8679031638949\n }\n ]\n */\nexport function convertGeometricErrorToScreenThreshold(tile: Tile3D, coordinates: BoundingVolumes) {\n const lodSelection: {metricType: string; maxError: number}[] = [];\n const boundingVolume = tile.boundingVolume;\n const lodMetricValue = tile.lodMetricValue || 0.1;\n const maxScreenThreshold = {\n metricType: 'maxScreenThreshold',\n maxError: (coordinates.mbs[3] * 2 * DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR) / lodMetricValue\n };\n const maxScreenThresholdSQ = {\n metricType: 'maxScreenThresholdSQ',\n maxError: Math.PI * 0.25 * maxScreenThreshold.maxError * maxScreenThreshold.maxError\n };\n\n if (boundingVolume.constructor.name === 'OrientedBoundingBox') {\n lodSelection.push(maxScreenThresholdSQ);\n lodSelection.push(maxScreenThreshold);\n } else {\n lodSelection.push(maxScreenThreshold);\n lodSelection.push(maxScreenThresholdSQ);\n }\n\n return lodSelection;\n}\n\n/**\n * Convert LOD metric from \"Screen Threshold\" to \"Screen Space Error\"\n * @param node - i3s node data\n * @returns lod metric in 3d-tiles format\n */\nexport function convertScreenThresholdToGeometricError(node: Tile3D): number {\n const metricData = node.header.lodSelection.maxScreenThreshold || {};\n let maxError = metricData.maxError;\n if (!maxError) {\n const sqMetricData = node.header.lodSelection.maxScreenThresholdSQ;\n if (sqMetricData) {\n maxError = Math.sqrt(sqMetricData.maxError / (Math.PI * 0.25));\n }\n }\n\n if (!maxError) {\n maxError = DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR;\n }\n\n return (node.header.mbs[3] * 2 * DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR) / maxError;\n}\n"],"file":"lod-conversion-utils.js"}
1
+ {"version":3,"file":"lod-conversion-utils.js","names":["DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR","convertGeometricErrorToScreenThreshold","tile","coordinates","lodSelection","boundingVolume","lodMetricValue","maxScreenThreshold","metricType","maxError","mbs","maxScreenThresholdSQ","Math","PI","constructor","name","push","convertScreenThresholdToGeometricError","node","metricData","header","sqMetricData","sqrt"],"sources":["../../../../src/lib/utils/lod-conversion-utils.ts"],"sourcesContent":["import {BoundingVolumes} from '@loaders.gl/i3s';\nimport {Tile3D} from '@loaders.gl/tiles';\n\n// https://cesium.com/docs/cesiumjs-ref-doc/Cesium3DTileset.html\nconst DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR = 16;\n/**\n * Do conversion from geometric error to screen threshold\n * \n * In 3DTiles we have HLOD logic and parent tile also has bigger lodMetric value then its children.\n * In I3s we have reverse logic related to maxError. Parent has lower maxError than its child.\n * In nodes where are no children tile.lodMetricValue is 0. This is because of logic of HLOD in 3DTiles\n * 3DTiles spec:\n * https://github.com/CesiumGS/3d-tiles/tree/master/specification#geometric-error\n * I3S spec:\n * https://github.com/Esri/i3s-spec/blob/master/docs/1.7/lodSelection.cmn.md\n * To avoid infinity values when we do calculations of maxError we shold replace 0 with value which allows us\n * to make child maxError bigger than his parent maxError.\n * \n * @param tile - 3d-tiles tile Object\n * @param coordinates - node converted coordinates\n * @returns An array of LOD metrics in format compatible with i3s 3DNodeIndexDocument.lodSelection\n * @example \n * [\n {\n \"metricType\": \"maxScreenThresholdSQ\",\n \"maxError\": 870638.071285568\n },\n {\n \"metricType\": \"maxScreenThreshold\",\n \"maxError\": 1052.8679031638949\n }\n ]\n */\nexport function convertGeometricErrorToScreenThreshold(tile: Tile3D, coordinates: BoundingVolumes) {\n const lodSelection: {metricType: string; maxError: number}[] = [];\n const boundingVolume = tile.boundingVolume;\n const lodMetricValue = tile.lodMetricValue || 0.1;\n const maxScreenThreshold = {\n metricType: 'maxScreenThreshold',\n maxError: (coordinates.mbs[3] * 2 * DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR) / lodMetricValue\n };\n const maxScreenThresholdSQ = {\n metricType: 'maxScreenThresholdSQ',\n maxError: Math.PI * 0.25 * maxScreenThreshold.maxError * maxScreenThreshold.maxError\n };\n\n if (boundingVolume.constructor.name === 'OrientedBoundingBox') {\n lodSelection.push(maxScreenThresholdSQ);\n lodSelection.push(maxScreenThreshold);\n } else {\n lodSelection.push(maxScreenThreshold);\n lodSelection.push(maxScreenThresholdSQ);\n }\n\n return lodSelection;\n}\n\n/**\n * Convert LOD metric from \"Screen Threshold\" to \"Screen Space Error\"\n * @param node - i3s node data\n * @returns lod metric in 3d-tiles format\n */\nexport function convertScreenThresholdToGeometricError(node: Tile3D): number {\n const metricData = node.header.lodSelection.maxScreenThreshold || {};\n let maxError = metricData.maxError;\n if (!maxError) {\n const sqMetricData = node.header.lodSelection.maxScreenThresholdSQ;\n if (sqMetricData) {\n maxError = Math.sqrt(sqMetricData.maxError / (Math.PI * 0.25));\n }\n }\n\n if (!maxError) {\n maxError = DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR;\n }\n\n return (node.header.mbs[3] * 2 * DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR) / maxError;\n}\n"],"mappings":";;;;;;;AAIA,IAAMA,kCAAkC,GAAG,EAAE;AA6BtC,SAASC,sCAAsC,CAACC,IAAY,EAAEC,WAA4B,EAAE;EACjG,IAAMC,YAAsD,GAAG,EAAE;EACjE,IAAMC,cAAc,GAAGH,IAAI,CAACG,cAAc;EAC1C,IAAMC,cAAc,GAAGJ,IAAI,CAACI,cAAc,IAAI,GAAG;EACjD,IAAMC,kBAAkB,GAAG;IACzBC,UAAU,EAAE,oBAAoB;IAChCC,QAAQ,EAAGN,WAAW,CAACO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAGV,kCAAkC,GAAIM;EAC5E,CAAC;EACD,IAAMK,oBAAoB,GAAG;IAC3BH,UAAU,EAAE,sBAAsB;IAClCC,QAAQ,EAAEG,IAAI,CAACC,EAAE,GAAG,IAAI,GAAGN,kBAAkB,CAACE,QAAQ,GAAGF,kBAAkB,CAACE;EAC9E,CAAC;EAED,IAAIJ,cAAc,CAACS,WAAW,CAACC,IAAI,KAAK,qBAAqB,EAAE;IAC7DX,YAAY,CAACY,IAAI,CAACL,oBAAoB,CAAC;IACvCP,YAAY,CAACY,IAAI,CAACT,kBAAkB,CAAC;EACvC,CAAC,MAAM;IACLH,YAAY,CAACY,IAAI,CAACT,kBAAkB,CAAC;IACrCH,YAAY,CAACY,IAAI,CAACL,oBAAoB,CAAC;EACzC;EAEA,OAAOP,YAAY;AACrB;;AAOO,SAASa,sCAAsC,CAACC,IAAY,EAAU;EAC3E,IAAMC,UAAU,GAAGD,IAAI,CAACE,MAAM,CAAChB,YAAY,CAACG,kBAAkB,IAAI,CAAC,CAAC;EACpE,IAAIE,QAAQ,GAAGU,UAAU,CAACV,QAAQ;EAClC,IAAI,CAACA,QAAQ,EAAE;IACb,IAAMY,YAAY,GAAGH,IAAI,CAACE,MAAM,CAAChB,YAAY,CAACO,oBAAoB;IAClE,IAAIU,YAAY,EAAE;MAChBZ,QAAQ,GAAGG,IAAI,CAACU,IAAI,CAACD,YAAY,CAACZ,QAAQ,IAAIG,IAAI,CAACC,EAAE,GAAG,IAAI,CAAC,CAAC;IAChE;EACF;EAEA,IAAI,CAACJ,QAAQ,EAAE;IACbA,QAAQ,GAAGT,kCAAkC;EAC/C;EAEA,OAAQkB,IAAI,CAACE,MAAM,CAACV,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAGV,kCAAkC,GAAIS,QAAQ;AACjF"}
@@ -1,38 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.Queue = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
11
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
12
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
13
  var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
21
-
22
14
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
23
-
24
15
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
25
-
26
16
  var Queue = function (_Array) {
27
17
  (0, _inherits2.default)(Queue, _Array);
28
-
29
18
  var _super = _createSuper(Queue);
30
-
31
19
  function Queue() {
32
20
  (0, _classCallCheck2.default)(this, Queue);
33
21
  return _super.apply(this, arguments);
34
22
  }
35
-
36
23
  (0, _createClass2.default)(Queue, [{
37
24
  key: "enqueue",
38
25
  value: function enqueue(val) {
@@ -56,6 +43,5 @@ var Queue = function (_Array) {
56
43
  }]);
57
44
  return Queue;
58
45
  }((0, _wrapNativeSuper2.default)(Array));
59
-
60
46
  exports.Queue = Queue;
61
47
  //# sourceMappingURL=queue.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/utils/queue.ts"],"names":["Queue","val","push","shift","length","Array"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;IAAaA,K;;;;;;;;;;;;WACX,iBAAQC,GAAR,EAAgB;AACd,WAAKC,IAAL,CAAUD,GAAV;AACD;;;WAED,mBAAyB;AACvB,aAAO,KAAKE,KAAL,EAAP;AACD;;;WAED,gBAAU;AACR,aAAO,KAAK,CAAL,CAAP;AACD;;;WAED,mBAAU;AACR,aAAO,KAAKC,MAAL,KAAgB,CAAvB;AACD;;;iCAf2BC,K","sourcesContent":["export class Queue<T> extends Array<T> {\n enqueue(val: T) {\n this.push(val);\n }\n\n dequeue(): T | undefined {\n return this.shift();\n }\n\n peek(): T {\n return this[0];\n }\n\n isEmpty() {\n return this.length === 0;\n }\n}\n"],"file":"queue.js"}
1
+ {"version":3,"file":"queue.js","names":["Queue","val","push","shift","length","Array"],"sources":["../../../../src/lib/utils/queue.ts"],"sourcesContent":["export class Queue<T> extends Array<T> {\n enqueue(val: T) {\n this.push(val);\n }\n\n dequeue(): T | undefined {\n return this.shift();\n }\n\n peek(): T {\n return this[0];\n }\n\n isEmpty() {\n return this.length === 0;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;IAAaA,KAAK;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA,OAChB,iBAAQC,GAAM,EAAE;MACd,IAAI,CAACC,IAAI,CAACD,GAAG,CAAC;IAChB;EAAC;IAAA;IAAA,OAED,mBAAyB;MACvB,OAAO,IAAI,CAACE,KAAK,EAAE;IACrB;EAAC;IAAA;IAAA,OAED,gBAAU;MACR,OAAO,IAAI,CAAC,CAAC,CAAC;IAChB;EAAC;IAAA;IAAA,OAED,mBAAU;MACR,OAAO,IAAI,CAACC,MAAM,KAAK,CAAC;IAC1B;EAAC;EAAA;AAAA,iCAf2BC,KAAK;AAAA"}
@@ -1,29 +1,19 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.timeConverter = timeConverter;
9
7
  exports.calculateFilesSize = calculateFilesSize;
10
-
8
+ exports.timeConverter = timeConverter;
11
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
-
13
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
-
15
11
  var _path = require("path");
16
-
17
12
  var _fs = require("fs");
18
-
19
13
  var _fileUtils = require("./file-utils");
20
-
21
14
  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; } } }; }
22
-
23
15
  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); }
24
-
25
16
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
26
-
27
17
  function timeConverter(time) {
28
18
  var nanoSecondsInMillisecond = 1e6;
29
19
  var timeInSeconds = time[0];
@@ -34,30 +24,23 @@ function timeConverter(time) {
34
24
  var seconds = Math.floor(timeInSeconds);
35
25
  var milliseconds = time[1] / nanoSecondsInMillisecond;
36
26
  var result = '';
37
-
38
27
  if (hours) {
39
28
  result += "".concat(hours, "h ");
40
29
  }
41
-
42
30
  if (minutes) {
43
31
  result += "".concat(minutes, "m ");
44
32
  }
45
-
46
33
  if (seconds) {
47
34
  result += "".concat(seconds, "s");
48
35
  }
49
-
50
36
  if (!result) {
51
37
  result += "".concat(milliseconds, "ms");
52
38
  }
53
-
54
39
  return result;
55
40
  }
56
-
57
41
  function calculateFilesSize(_x) {
58
42
  return _calculateFilesSize.apply(this, arguments);
59
43
  }
60
-
61
44
  function _calculateFilesSize() {
62
45
  _calculateFilesSize = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(params) {
63
46
  var slpk, outputPath, tilesetName, fullOutputPath, slpkPath, stat, directoryPath, totalSize;
@@ -68,35 +51,28 @@ function _calculateFilesSize() {
68
51
  slpk = params.slpk, outputPath = params.outputPath, tilesetName = params.tilesetName;
69
52
  fullOutputPath = (0, _fileUtils.getAbsoluteFilePath)(outputPath);
70
53
  _context.prev = 2;
71
-
72
54
  if (!slpk) {
73
55
  _context.next = 9;
74
56
  break;
75
57
  }
76
-
77
58
  slpkPath = (0, _path.join)(fullOutputPath, "".concat(tilesetName, ".slpk"));
78
59
  _context.next = 7;
79
60
  return _fs.promises.stat(slpkPath);
80
-
81
61
  case 7:
82
62
  stat = _context.sent;
83
63
  return _context.abrupt("return", stat.size);
84
-
85
64
  case 9:
86
65
  directoryPath = (0, _path.join)(fullOutputPath, tilesetName);
87
66
  _context.next = 12;
88
67
  return getTotalFilesSize(directoryPath);
89
-
90
68
  case 12:
91
69
  totalSize = _context.sent;
92
70
  return _context.abrupt("return", totalSize);
93
-
94
71
  case 16:
95
72
  _context.prev = 16;
96
73
  _context.t0 = _context["catch"](2);
97
74
  console.log('Calculate file sizes error: ', _context.t0);
98
75
  return _context.abrupt("return", null);
99
-
100
76
  case 20:
101
77
  case "end":
102
78
  return _context.stop();
@@ -106,15 +82,12 @@ function _calculateFilesSize() {
106
82
  }));
107
83
  return _calculateFilesSize.apply(this, arguments);
108
84
  }
109
-
110
85
  function getTotalFilesSize(_x2) {
111
86
  return _getTotalFilesSize.apply(this, arguments);
112
87
  }
113
-
114
88
  function _getTotalFilesSize() {
115
89
  _getTotalFilesSize = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(dirPath) {
116
90
  var totalFileSize, files, _iterator, _step, file, fileStat;
117
-
118
91
  return _regenerator.default.wrap(function _callee2$(_context2) {
119
92
  while (1) {
120
93
  switch (_context2.prev = _context2.next) {
@@ -122,68 +95,50 @@ function _getTotalFilesSize() {
122
95
  totalFileSize = 0;
123
96
  _context2.next = 3;
124
97
  return _fs.promises.readdir(dirPath);
125
-
126
98
  case 3:
127
99
  files = _context2.sent;
128
100
  _iterator = _createForOfIteratorHelper(files);
129
101
  _context2.prev = 5;
130
-
131
102
  _iterator.s();
132
-
133
103
  case 7:
134
104
  if ((_step = _iterator.n()).done) {
135
105
  _context2.next = 22;
136
106
  break;
137
107
  }
138
-
139
108
  file = _step.value;
140
109
  _context2.next = 11;
141
110
  return _fs.promises.stat((0, _path.join)(dirPath, file));
142
-
143
111
  case 11:
144
112
  fileStat = _context2.sent;
145
-
146
113
  if (!fileStat.isDirectory()) {
147
114
  _context2.next = 19;
148
115
  break;
149
116
  }
150
-
151
117
  _context2.t0 = totalFileSize;
152
118
  _context2.next = 16;
153
119
  return getTotalFilesSize((0, _path.join)(dirPath, file));
154
-
155
120
  case 16:
156
121
  totalFileSize = _context2.t0 += _context2.sent;
157
122
  _context2.next = 20;
158
123
  break;
159
-
160
124
  case 19:
161
125
  totalFileSize += fileStat.size;
162
-
163
126
  case 20:
164
127
  _context2.next = 7;
165
128
  break;
166
-
167
129
  case 22:
168
130
  _context2.next = 27;
169
131
  break;
170
-
171
132
  case 24:
172
133
  _context2.prev = 24;
173
134
  _context2.t1 = _context2["catch"](5);
174
-
175
135
  _iterator.e(_context2.t1);
176
-
177
136
  case 27:
178
137
  _context2.prev = 27;
179
-
180
138
  _iterator.f();
181
-
182
139
  return _context2.finish(27);
183
-
184
140
  case 30:
185
141
  return _context2.abrupt("return", totalFileSize);
186
-
187
142
  case 31:
188
143
  case "end":
189
144
  return _context2.stop();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/utils/statistic-utills.ts"],"names":["timeConverter","time","nanoSecondsInMillisecond","timeInSeconds","hours","Math","floor","minutes","seconds","milliseconds","result","calculateFilesSize","params","slpk","outputPath","tilesetName","fullOutputPath","slpkPath","fs","stat","size","directoryPath","getTotalFilesSize","totalSize","console","log","dirPath","totalFileSize","readdir","files","file","fileStat","isDirectory"],"mappings":"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","sourcesContent":["import {join} from 'path';\nimport {promises as fs} from 'fs';\nimport {getAbsoluteFilePath} from './file-utils';\n\nexport function timeConverter(time) {\n const nanoSecondsInMillisecond = 1e6;\n let timeInSeconds = time[0];\n const hours = Math.floor(timeInSeconds / 3600);\n timeInSeconds = timeInSeconds - hours * 3600;\n const minutes = Math.floor(timeInSeconds / 60);\n timeInSeconds = timeInSeconds - minutes * 60;\n const seconds = Math.floor(timeInSeconds);\n const milliseconds = time[1] / nanoSecondsInMillisecond;\n let result = '';\n\n if (hours) {\n result += `${hours}h `;\n }\n\n if (minutes) {\n result += `${minutes}m `;\n }\n\n if (seconds) {\n result += `${seconds}s`;\n }\n\n if (!result) {\n result += `${milliseconds}ms`;\n }\n\n return result;\n}\n\nexport async function calculateFilesSize(params) {\n const {slpk, outputPath, tilesetName} = params;\n const fullOutputPath = getAbsoluteFilePath(outputPath);\n\n try {\n if (slpk) {\n const slpkPath = join(fullOutputPath, `${tilesetName}.slpk`);\n const stat = await fs.stat(slpkPath);\n return stat.size;\n }\n\n const directoryPath = join(fullOutputPath, tilesetName);\n const totalSize = await getTotalFilesSize(directoryPath);\n return totalSize;\n } catch (error) {\n console.log('Calculate file sizes error: ', error); // eslint-disable-line\n return null;\n }\n}\n\nasync function getTotalFilesSize(dirPath) {\n let totalFileSize = 0;\n\n const files = await fs.readdir(dirPath);\n\n for (const file of files) {\n const fileStat = await fs.stat(join(dirPath, file));\n if (fileStat.isDirectory()) {\n totalFileSize += await getTotalFilesSize(join(dirPath, file));\n } else {\n totalFileSize += fileStat.size;\n }\n }\n return totalFileSize;\n}\n"],"file":"statistic-utills.js"}
1
+ {"version":3,"file":"statistic-utills.js","names":["timeConverter","time","nanoSecondsInMillisecond","timeInSeconds","hours","Math","floor","minutes","seconds","milliseconds","result","calculateFilesSize","params","slpk","outputPath","tilesetName","fullOutputPath","getAbsoluteFilePath","slpkPath","join","fs","stat","size","directoryPath","getTotalFilesSize","totalSize","console","log","dirPath","totalFileSize","readdir","files","file","fileStat","isDirectory"],"sources":["../../../../src/lib/utils/statistic-utills.ts"],"sourcesContent":["import {join} from 'path';\nimport {promises as fs} from 'fs';\nimport {getAbsoluteFilePath} from './file-utils';\n\nexport function timeConverter(time) {\n const nanoSecondsInMillisecond = 1e6;\n let timeInSeconds = time[0];\n const hours = Math.floor(timeInSeconds / 3600);\n timeInSeconds = timeInSeconds - hours * 3600;\n const minutes = Math.floor(timeInSeconds / 60);\n timeInSeconds = timeInSeconds - minutes * 60;\n const seconds = Math.floor(timeInSeconds);\n const milliseconds = time[1] / nanoSecondsInMillisecond;\n let result = '';\n\n if (hours) {\n result += `${hours}h `;\n }\n\n if (minutes) {\n result += `${minutes}m `;\n }\n\n if (seconds) {\n result += `${seconds}s`;\n }\n\n if (!result) {\n result += `${milliseconds}ms`;\n }\n\n return result;\n}\n\nexport async function calculateFilesSize(params) {\n const {slpk, outputPath, tilesetName} = params;\n const fullOutputPath = getAbsoluteFilePath(outputPath);\n\n try {\n if (slpk) {\n const slpkPath = join(fullOutputPath, `${tilesetName}.slpk`);\n const stat = await fs.stat(slpkPath);\n return stat.size;\n }\n\n const directoryPath = join(fullOutputPath, tilesetName);\n const totalSize = await getTotalFilesSize(directoryPath);\n return totalSize;\n } catch (error) {\n console.log('Calculate file sizes error: ', error); // eslint-disable-line\n return null;\n }\n}\n\nasync function getTotalFilesSize(dirPath) {\n let totalFileSize = 0;\n\n const files = await fs.readdir(dirPath);\n\n for (const file of files) {\n const fileStat = await fs.stat(join(dirPath, file));\n if (fileStat.isDirectory()) {\n totalFileSize += await getTotalFilesSize(join(dirPath, file));\n } else {\n totalFileSize += fileStat.size;\n }\n }\n return totalFileSize;\n}\n"],"mappings":"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"}