@loaders.gl/tile-converter 3.4.0-alpha.1 → 3.4.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d-tiles-attributes-worker.js +2 -2
- package/dist/3d-tiles-attributes-worker.js.map +3 -3
- package/dist/converter.min.js +2956 -178
- package/dist/deps-installer/deps-installer.d.ts.map +1 -1
- package/dist/deps-installer/deps-installer.js +4 -1
- package/dist/dist.min.js +30025 -27482
- package/dist/es5/3d-tiles-attributes-worker.js +1 -2
- package/dist/es5/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +264 -287
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +89 -113
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +0 -2
- package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
- package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +1 -1
- package/dist/es5/constants.js.map +1 -1
- package/dist/es5/converter-cli.js +67 -81
- package/dist/es5/converter-cli.js.map +1 -1
- package/dist/es5/deps-installer/deps-installer.js +64 -69
- package/dist/es5/deps-installer/deps-installer.js.map +1 -1
- package/dist/es5/i3s-attributes-worker.js +1 -2
- package/dist/es5/i3s-attributes-worker.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +0 -8
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js +0 -5
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +14 -16
- package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/feature-attributes.js +1 -11
- package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js +3 -10
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +397 -449
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js +0 -2
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/node-debug.js +1 -9
- package/dist/es5/i3s-converter/helpers/node-debug.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/node-index-document.js +293 -318
- package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/node-pages.js +279 -319
- package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +964 -1030
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/geometry-definitions.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/metadata.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/node.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/scene-server.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/shared-resources.js +1 -1
- package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/store.js.map +1 -1
- package/dist/es5/i3s-server/controllers/index-controller.js +28 -30
- package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -1
- package/dist/es5/i3s-server/routes/index.js +15 -18
- package/dist/es5/i3s-server/routes/index.js.map +1 -1
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/utils/compress-util.js +198 -218
- package/dist/es5/lib/utils/compress-util.js.map +1 -1
- package/dist/es5/lib/utils/file-utils.js +118 -128
- package/dist/es5/lib/utils/file-utils.js.map +1 -1
- package/dist/es5/lib/utils/lod-conversion-utils.js +0 -1
- package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/es5/lib/utils/queue.js.map +1 -1
- package/dist/es5/lib/utils/statistic-utills.js +81 -85
- package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
- package/dist/es5/lib/utils/write-queue.js +84 -92
- package/dist/es5/lib/utils/write-queue.js.map +1 -1
- package/dist/es5/pgm-loader.js +7 -10
- package/dist/es5/pgm-loader.js.map +1 -1
- package/dist/es5/workers/3d-tiles-attributes-worker.js +7 -9
- package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/es5/workers/i3s-attributes-worker.js +10 -12
- package/dist/es5/workers/i3s-attributes-worker.js.map +1 -1
- package/dist/esm/3d-tiles-attributes-worker.js +1 -3
- package/dist/esm/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +1 -15
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +0 -12
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +0 -1
- package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js +0 -3
- package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
- package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +1 -1
- package/dist/esm/bundle.js +0 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/converter-cli.js +0 -11
- package/dist/esm/converter-cli.js.map +1 -1
- package/dist/esm/deps-installer/deps-installer.js +2 -5
- package/dist/esm/deps-installer/deps-installer.js.map +1 -1
- package/dist/esm/i3s-attributes-worker.js +1 -3
- package/dist/esm/i3s-attributes-worker.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +0 -8
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js +0 -5
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/create-scene-server-path.js +0 -1
- package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/feature-attributes.js +0 -11
- package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js +0 -7
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +0 -48
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js +0 -3
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/node-debug.js +1 -9
- package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/node-index-document.js +0 -14
- package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/node-pages.js +0 -18
- package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +4 -42
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/geometry-definitions.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/metadata.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/node.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/scene-server.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -1
- package/dist/esm/i3s-server/controllers/index-controller.js +0 -2
- package/dist/esm/i3s-server/controllers/index-controller.js.map +1 -1
- package/dist/esm/i3s-server/routes/index.js +0 -1
- package/dist/esm/i3s-server/routes/index.js.map +1 -1
- package/dist/esm/lib/utils/compress-util.js +1 -17
- package/dist/esm/lib/utils/compress-util.js.map +1 -1
- package/dist/esm/lib/utils/file-utils.js +0 -7
- package/dist/esm/lib/utils/file-utils.js.map +1 -1
- package/dist/esm/lib/utils/lod-conversion-utils.js +0 -2
- package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/esm/lib/utils/queue.js.map +1 -1
- package/dist/esm/lib/utils/statistic-utills.js.map +1 -1
- package/dist/esm/lib/utils/write-queue.js +0 -2
- package/dist/esm/lib/utils/write-queue.js.map +1 -1
- package/dist/esm/pgm-loader.js +1 -3
- package/dist/esm/pgm-loader.js.map +1 -1
- package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/esm/workers/i3s-attributes-worker.js.map +1 -1
- package/dist/i3s-attributes-worker.js +2 -2
- package/dist/i3s-attributes-worker.js.map +3 -3
- package/dist/i3s-converter/helpers/node-pages.js +1 -1
- package/package.json +21 -20
- package/src/deps-installer/deps-installer.ts +4 -1
|
@@ -28,52 +28,50 @@ function _writeFile() {
|
|
|
28
28
|
pathFile,
|
|
29
29
|
_args = arguments;
|
|
30
30
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
31
|
-
while (1) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
_context.next = 9;
|
|
37
|
-
break;
|
|
38
|
-
}
|
|
39
|
-
_context.t0 = Uint8Array;
|
|
40
|
-
_context.next = 5;
|
|
41
|
-
return data;
|
|
42
|
-
case 5:
|
|
43
|
-
_context.t1 = _context.sent;
|
|
44
|
-
toWriteData = new _context.t0(_context.t1);
|
|
45
|
-
_context.next = 10;
|
|
31
|
+
while (1) switch (_context.prev = _context.next) {
|
|
32
|
+
case 0:
|
|
33
|
+
fileName = _args.length > 2 && _args[2] !== undefined ? _args[2] : 'index.json';
|
|
34
|
+
if (!(data instanceof Promise)) {
|
|
35
|
+
_context.next = 9;
|
|
46
36
|
break;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
37
|
+
}
|
|
38
|
+
_context.t0 = Uint8Array;
|
|
39
|
+
_context.next = 5;
|
|
40
|
+
return data;
|
|
41
|
+
case 5:
|
|
42
|
+
_context.t1 = _context.sent;
|
|
43
|
+
toWriteData = new _context.t0(_context.t1);
|
|
44
|
+
_context.next = 10;
|
|
45
|
+
break;
|
|
46
|
+
case 9:
|
|
47
|
+
if (data instanceof ArrayBuffer) {
|
|
48
|
+
toWriteData = new Uint8Array(data);
|
|
49
|
+
} else {
|
|
50
|
+
toWriteData = data;
|
|
51
|
+
}
|
|
52
|
+
case 10:
|
|
53
|
+
_context.next = 12;
|
|
54
|
+
return _fs.promises.mkdir(path, {
|
|
55
|
+
recursive: true
|
|
56
|
+
});
|
|
57
|
+
case 12:
|
|
58
|
+
pathFile = (0, _path.join)(path, fileName);
|
|
59
|
+
_context.prev = 13;
|
|
60
|
+
_context.next = 16;
|
|
61
|
+
return _fs.promises.writeFile(pathFile, toWriteData);
|
|
62
|
+
case 16:
|
|
63
|
+
_context.next = 21;
|
|
64
|
+
break;
|
|
65
|
+
case 18:
|
|
66
|
+
_context.prev = 18;
|
|
67
|
+
_context.t2 = _context["catch"](13);
|
|
68
|
+
throw _context.t2;
|
|
69
|
+
case 21:
|
|
70
|
+
console.log("".concat(pathFile, " saved."));
|
|
71
|
+
return _context.abrupt("return", pathFile);
|
|
72
|
+
case 23:
|
|
73
|
+
case "end":
|
|
74
|
+
return _context.stop();
|
|
77
75
|
}
|
|
78
76
|
}, _callee, null, [[13, 18]]);
|
|
79
77
|
}));
|
|
@@ -91,50 +89,48 @@ function _writeFileForSlpk() {
|
|
|
91
89
|
pathGzFile,
|
|
92
90
|
_args2 = arguments;
|
|
93
91
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
94
|
-
while (1) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
if (!compress) {
|
|
105
|
-
_context2.next = 22;
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
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:
|
|
92
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
93
|
+
case 0:
|
|
94
|
+
fileName = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : 'index.json';
|
|
95
|
+
compress = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : true;
|
|
96
|
+
compressList = _args2.length > 4 ? _args2[4] : undefined;
|
|
97
|
+
_context2.next = 5;
|
|
98
|
+
return writeFile(path, data, fileName);
|
|
99
|
+
case 5:
|
|
100
|
+
pathFile = _context2.sent;
|
|
101
|
+
if (!compress) {
|
|
121
102
|
_context2.next = 22;
|
|
122
103
|
break;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
104
|
+
}
|
|
105
|
+
if (!compressList) {
|
|
106
|
+
_context2.next = 16;
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
if (compressList.includes(pathFile)) {
|
|
110
|
+
_context2.next = 13;
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
compressList.push(pathFile);
|
|
114
|
+
return _context2.abrupt("return", "".concat(pathFile, ".gz"));
|
|
115
|
+
case 13:
|
|
116
|
+
return _context2.abrupt("return", null);
|
|
117
|
+
case 14:
|
|
118
|
+
_context2.next = 22;
|
|
119
|
+
break;
|
|
120
|
+
case 16:
|
|
121
|
+
_context2.next = 18;
|
|
122
|
+
return (0, _compressUtil.compressFileWithGzip)(pathFile);
|
|
123
|
+
case 18:
|
|
124
|
+
pathGzFile = _context2.sent;
|
|
125
|
+
_context2.next = 21;
|
|
126
|
+
return removeFile(pathFile);
|
|
127
|
+
case 21:
|
|
128
|
+
return _context2.abrupt("return", pathGzFile);
|
|
129
|
+
case 22:
|
|
130
|
+
return _context2.abrupt("return", pathFile);
|
|
131
|
+
case 23:
|
|
132
|
+
case "end":
|
|
133
|
+
return _context2.stop();
|
|
138
134
|
}
|
|
139
135
|
}, _callee2);
|
|
140
136
|
}));
|
|
@@ -146,30 +142,28 @@ function openJson(_x5, _x6) {
|
|
|
146
142
|
function _openJson() {
|
|
147
143
|
_openJson = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(path, fileName) {
|
|
148
144
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
149
|
-
while (1) {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
var
|
|
156
|
-
|
|
157
|
-
(
|
|
145
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
146
|
+
case 0:
|
|
147
|
+
return _context3.abrupt("return", new Promise(function (resolve, reject) {
|
|
148
|
+
var count = 0;
|
|
149
|
+
console.log("load ".concat(path, "/").concat(fileName, "."));
|
|
150
|
+
var intervalId = setInterval(function () {
|
|
151
|
+
var pathFile = (0, _path.join)(path, fileName);
|
|
152
|
+
(0, _core.load)(pathFile, _loaderUtils.JSONLoader).then(function (result) {
|
|
153
|
+
clearInterval(intervalId);
|
|
154
|
+
resolve(result);
|
|
155
|
+
}).catch(function () {
|
|
156
|
+
count++;
|
|
157
|
+
if (count > 100) {
|
|
158
158
|
clearInterval(intervalId);
|
|
159
|
-
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
}, 200);
|
|
168
|
-
}));
|
|
169
|
-
case 1:
|
|
170
|
-
case "end":
|
|
171
|
-
return _context3.stop();
|
|
172
|
-
}
|
|
159
|
+
reject(new Error("Cannon load ".concat(path, "/").concat(fileName, ".")));
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}, 200);
|
|
163
|
+
}));
|
|
164
|
+
case 1:
|
|
165
|
+
case "end":
|
|
166
|
+
return _context3.stop();
|
|
173
167
|
}
|
|
174
168
|
}, _callee3);
|
|
175
169
|
}));
|
|
@@ -181,22 +175,20 @@ function isFileExists(_x7) {
|
|
|
181
175
|
function _isFileExists() {
|
|
182
176
|
_isFileExists = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(fileName) {
|
|
183
177
|
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
184
|
-
while (1) {
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
return _context4.stop();
|
|
199
|
-
}
|
|
178
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
179
|
+
case 0:
|
|
180
|
+
_context4.prev = 0;
|
|
181
|
+
_context4.next = 3;
|
|
182
|
+
return _fs.promises.stat(fileName);
|
|
183
|
+
case 3:
|
|
184
|
+
return _context4.abrupt("return", true);
|
|
185
|
+
case 6:
|
|
186
|
+
_context4.prev = 6;
|
|
187
|
+
_context4.t0 = _context4["catch"](0);
|
|
188
|
+
return _context4.abrupt("return", false);
|
|
189
|
+
case 9:
|
|
190
|
+
case "end":
|
|
191
|
+
return _context4.stop();
|
|
200
192
|
}
|
|
201
193
|
}, _callee4, null, [[0, 6]]);
|
|
202
194
|
}));
|
|
@@ -207,11 +199,9 @@ function removeDir(path) {
|
|
|
207
199
|
recursive: true
|
|
208
200
|
});
|
|
209
201
|
}
|
|
210
|
-
|
|
211
202
|
function removeFile(path) {
|
|
212
203
|
return _fs.promises.unlink(path);
|
|
213
204
|
}
|
|
214
|
-
|
|
215
205
|
function getAbsoluteFilePath(filePath) {
|
|
216
206
|
return (0, _path.isAbsolute)(filePath) ? filePath : (0, _path.join)(process.cwd(), filePath);
|
|
217
207
|
}
|
|
@@ -1 +1 @@
|
|
|
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"}
|
|
1
|
+
{"version":3,"file":"file-utils.js","names":["_core","require","_loaderUtils","_fs","_path","_compressUtil","writeFile","_x","_x2","_writeFile","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","path","data","fileName","toWriteData","pathFile","_args","wrap","_callee$","_context","prev","next","length","undefined","Promise","t0","Uint8Array","t1","sent","ArrayBuffer","fs","mkdir","recursive","join","t2","console","log","concat","abrupt","stop","writeFileForSlpk","_x3","_x4","_writeFileForSlpk","_callee2","compress","compressList","pathGzFile","_args2","_callee2$","_context2","includes","push","compressFileWithGzip","removeFile","openJson","_x5","_x6","_openJson","_callee3","_callee3$","_context3","resolve","reject","count","intervalId","setInterval","load","JSONLoader","then","result","clearInterval","catch","Error","isFileExists","_x7","_isFileExists","_callee4","_callee4$","_context4","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":"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"}
|
|
@@ -27,7 +27,6 @@ function convertGeometricErrorToScreenThreshold(tile, coordinates) {
|
|
|
27
27
|
}
|
|
28
28
|
return lodSelection;
|
|
29
29
|
}
|
|
30
|
-
|
|
31
30
|
function convertScreenThresholdToGeometricError(node) {
|
|
32
31
|
var metricData = node.header.lodSelection.maxScreenThreshold || {};
|
|
33
32
|
var maxError = metricData.maxError;
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,sCAAsCA,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,sCAAsCA,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 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"queue.js","names":["Queue","_Array","_inherits2","default","_super","_createSuper","_classCallCheck2","apply","arguments","_createClass2","key","value","enqueue","val","push","dequeue","shift","peek","isEmpty","length","_wrapNativeSuper2","Array","exports"],"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,aAAAC,MAAA;EAAA,IAAAC,UAAA,CAAAC,OAAA,EAAAH,KAAA,EAAAC,MAAA;EAAA,IAAAG,MAAA,GAAAC,YAAA,CAAAL,KAAA;EAAA,SAAAA,MAAA;IAAA,IAAAM,gBAAA,CAAAH,OAAA,QAAAH,KAAA;IAAA,OAAAI,MAAA,CAAAG,KAAA,OAAAC,SAAA;EAAA;EAAA,IAAAC,aAAA,CAAAN,OAAA,EAAAH,KAAA;IAAAU,GAAA;IAAAC,KAAA,EAChB,SAAAC,QAAQC,GAAM,EAAE;MACd,IAAI,CAACC,IAAI,CAACD,GAAG,CAAC;IAChB;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAED,SAAAI,QAAA,EAAyB;MACvB,OAAO,IAAI,CAACC,KAAK,EAAE;IACrB;EAAC;IAAAN,GAAA;IAAAC,KAAA,EAED,SAAAM,KAAA,EAAU;MACR,OAAO,IAAI,CAAC,CAAC,CAAC;IAChB;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAO,QAAA,EAAU;MACR,OAAO,IAAI,CAACC,MAAM,KAAK,CAAC;IAC1B;EAAC;EAAA,OAAAnB,KAAA;AAAA,MAAAoB,iBAAA,CAAAjB,OAAA,EAf2BkB,KAAK;AAAAC,OAAA,CAAAtB,KAAA,GAAAA,KAAA"}
|
|
@@ -13,7 +13,7 @@ var _fs = require("fs");
|
|
|
13
13
|
var _fileUtils = require("./file-utils");
|
|
14
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; } } }; }
|
|
15
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); }
|
|
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++)
|
|
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; }
|
|
17
17
|
function timeConverter(time) {
|
|
18
18
|
var nanoSecondsInMillisecond = 1e6;
|
|
19
19
|
var timeInSeconds = time[0];
|
|
@@ -45,38 +45,36 @@ function _calculateFilesSize() {
|
|
|
45
45
|
_calculateFilesSize = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(params) {
|
|
46
46
|
var slpk, outputPath, tilesetName, fullOutputPath, slpkPath, stat, directoryPath, totalSize;
|
|
47
47
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
48
|
-
while (1) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return _context.stop();
|
|
79
|
-
}
|
|
48
|
+
while (1) switch (_context.prev = _context.next) {
|
|
49
|
+
case 0:
|
|
50
|
+
slpk = params.slpk, outputPath = params.outputPath, tilesetName = params.tilesetName;
|
|
51
|
+
fullOutputPath = (0, _fileUtils.getAbsoluteFilePath)(outputPath);
|
|
52
|
+
_context.prev = 2;
|
|
53
|
+
if (!slpk) {
|
|
54
|
+
_context.next = 9;
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
slpkPath = (0, _path.join)(fullOutputPath, "".concat(tilesetName, ".slpk"));
|
|
58
|
+
_context.next = 7;
|
|
59
|
+
return _fs.promises.stat(slpkPath);
|
|
60
|
+
case 7:
|
|
61
|
+
stat = _context.sent;
|
|
62
|
+
return _context.abrupt("return", stat.size);
|
|
63
|
+
case 9:
|
|
64
|
+
directoryPath = (0, _path.join)(fullOutputPath, tilesetName);
|
|
65
|
+
_context.next = 12;
|
|
66
|
+
return getTotalFilesSize(directoryPath);
|
|
67
|
+
case 12:
|
|
68
|
+
totalSize = _context.sent;
|
|
69
|
+
return _context.abrupt("return", totalSize);
|
|
70
|
+
case 16:
|
|
71
|
+
_context.prev = 16;
|
|
72
|
+
_context.t0 = _context["catch"](2);
|
|
73
|
+
console.log('Calculate file sizes error: ', _context.t0);
|
|
74
|
+
return _context.abrupt("return", null);
|
|
75
|
+
case 20:
|
|
76
|
+
case "end":
|
|
77
|
+
return _context.stop();
|
|
80
78
|
}
|
|
81
79
|
}, _callee, null, [[2, 16]]);
|
|
82
80
|
}));
|
|
@@ -89,60 +87,58 @@ function _getTotalFilesSize() {
|
|
|
89
87
|
_getTotalFilesSize = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(dirPath) {
|
|
90
88
|
var totalFileSize, files, _iterator, _step, file, fileStat;
|
|
91
89
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
92
|
-
while (1) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
_context2.next = 22;
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
file = _step.value;
|
|
109
|
-
_context2.next = 11;
|
|
110
|
-
return _fs.promises.stat((0, _path.join)(dirPath, file));
|
|
111
|
-
case 11:
|
|
112
|
-
fileStat = _context2.sent;
|
|
113
|
-
if (!fileStat.isDirectory()) {
|
|
114
|
-
_context2.next = 19;
|
|
115
|
-
break;
|
|
116
|
-
}
|
|
117
|
-
_context2.t0 = totalFileSize;
|
|
118
|
-
_context2.next = 16;
|
|
119
|
-
return getTotalFilesSize((0, _path.join)(dirPath, file));
|
|
120
|
-
case 16:
|
|
121
|
-
totalFileSize = _context2.t0 += _context2.sent;
|
|
122
|
-
_context2.next = 20;
|
|
123
|
-
break;
|
|
124
|
-
case 19:
|
|
125
|
-
totalFileSize += fileStat.size;
|
|
126
|
-
case 20:
|
|
127
|
-
_context2.next = 7;
|
|
90
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
91
|
+
case 0:
|
|
92
|
+
totalFileSize = 0;
|
|
93
|
+
_context2.next = 3;
|
|
94
|
+
return _fs.promises.readdir(dirPath);
|
|
95
|
+
case 3:
|
|
96
|
+
files = _context2.sent;
|
|
97
|
+
_iterator = _createForOfIteratorHelper(files);
|
|
98
|
+
_context2.prev = 5;
|
|
99
|
+
_iterator.s();
|
|
100
|
+
case 7:
|
|
101
|
+
if ((_step = _iterator.n()).done) {
|
|
102
|
+
_context2.next = 22;
|
|
128
103
|
break;
|
|
129
|
-
|
|
130
|
-
|
|
104
|
+
}
|
|
105
|
+
file = _step.value;
|
|
106
|
+
_context2.next = 11;
|
|
107
|
+
return _fs.promises.stat((0, _path.join)(dirPath, file));
|
|
108
|
+
case 11:
|
|
109
|
+
fileStat = _context2.sent;
|
|
110
|
+
if (!fileStat.isDirectory()) {
|
|
111
|
+
_context2.next = 19;
|
|
131
112
|
break;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
113
|
+
}
|
|
114
|
+
_context2.t0 = totalFileSize;
|
|
115
|
+
_context2.next = 16;
|
|
116
|
+
return getTotalFilesSize((0, _path.join)(dirPath, file));
|
|
117
|
+
case 16:
|
|
118
|
+
totalFileSize = _context2.t0 += _context2.sent;
|
|
119
|
+
_context2.next = 20;
|
|
120
|
+
break;
|
|
121
|
+
case 19:
|
|
122
|
+
totalFileSize += fileStat.size;
|
|
123
|
+
case 20:
|
|
124
|
+
_context2.next = 7;
|
|
125
|
+
break;
|
|
126
|
+
case 22:
|
|
127
|
+
_context2.next = 27;
|
|
128
|
+
break;
|
|
129
|
+
case 24:
|
|
130
|
+
_context2.prev = 24;
|
|
131
|
+
_context2.t1 = _context2["catch"](5);
|
|
132
|
+
_iterator.e(_context2.t1);
|
|
133
|
+
case 27:
|
|
134
|
+
_context2.prev = 27;
|
|
135
|
+
_iterator.f();
|
|
136
|
+
return _context2.finish(27);
|
|
137
|
+
case 30:
|
|
138
|
+
return _context2.abrupt("return", totalFileSize);
|
|
139
|
+
case 31:
|
|
140
|
+
case "end":
|
|
141
|
+
return _context2.stop();
|
|
146
142
|
}
|
|
147
143
|
}, _callee2, null, [[5, 24, 27, 30]]);
|
|
148
144
|
}));
|
|
@@ -1 +1 @@
|
|
|
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","
|
|
1
|
+
{"version":3,"file":"statistic-utills.js","names":["_path","require","_fs","_fileUtils","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","timeConverter","time","nanoSecondsInMillisecond","timeInSeconds","hours","Math","floor","minutes","seconds","milliseconds","result","concat","calculateFilesSize","_x","_calculateFilesSize","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","params","slpk","outputPath","tilesetName","fullOutputPath","slpkPath","stat","directoryPath","totalSize","wrap","_callee$","_context","prev","getAbsoluteFilePath","join","fs","sent","abrupt","size","getTotalFilesSize","t0","console","log","stop","_x2","_getTotalFilesSize","_callee2","dirPath","totalFileSize","files","_iterator","_step","file","fileStat","_callee2$","_context2","readdir","isDirectory","t1","finish"],"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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"}
|