@loaders.gl/tile-converter 3.3.0-alpha.4 → 3.3.0-alpha.6
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.d.ts +1 -1
- package/dist/3d-tiles-attributes-worker.js +2 -3
- package/dist/3d-tiles-attributes-worker.js.map +3 -3
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +5 -5
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -1
- package/dist/3d-tiles-converter/helpers/b3dm-converter.js +21 -17
- package/dist/converter.min.js +23 -20
- package/dist/dist.min.js +38223 -46900
- package/dist/es5/3d-tiles-attributes-worker.js +4 -7
- package/dist/es5/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +12 -111
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +53 -85
- 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 +0 -8
- 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 -5
- package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
- package/dist/es5/3d-tiles-converter/json-templates/tileset.js +0 -6
- package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +1 -1
- package/dist/es5/bundle.js +0 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/constants.js.map +1 -1
- package/dist/es5/converter-cli.js +2 -53
- package/dist/es5/converter-cli.js.map +1 -1
- package/dist/es5/deps-installer/deps-installer.js +5 -35
- package/dist/es5/deps-installer/deps-installer.js.map +1 -1
- package/dist/es5/i3s-attributes-worker.js +3 -6
- package/dist/es5/i3s-attributes-worker.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +2 -28
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js +2 -20
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +0 -11
- package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/feature-attributes.js +5 -34
- package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js +13 -45
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +26 -221
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js +2 -16
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/node-debug.js +4 -23
- package/dist/es5/i3s-converter/helpers/node-debug.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/node-pages.js +50 -86
- package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +43 -360
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/layers.js +1 -15
- package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/metadata.js +0 -2
- package/dist/es5/i3s-converter/json-templates/metadata.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/node.js +2 -12
- package/dist/es5/i3s-converter/json-templates/node.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/scene-server.js +0 -2
- package/dist/es5/i3s-converter/json-templates/scene-server.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/shared-resources.js +6 -29
- 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-converter/types.js.map +1 -1
- package/dist/es5/i3s-server/app.js +0 -5
- package/dist/es5/i3s-server/app.js.map +1 -1
- package/dist/es5/i3s-server/controllers/index-controller.js +0 -16
- package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -1
- package/dist/es5/i3s-server/routes/index.js +1 -10
- package/dist/es5/i3s-server/routes/index.js.map +1 -1
- package/dist/es5/index.js +0 -3
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/utils/compress-util.js +19 -74
- package/dist/es5/lib/utils/compress-util.js.map +1 -1
- package/dist/es5/lib/utils/file-utils.js +10 -38
- package/dist/es5/lib/utils/file-utils.js.map +1 -1
- package/dist/es5/lib/utils/lod-conversion-utils.js +0 -7
- package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/es5/lib/utils/queue.js +0 -14
- package/dist/es5/lib/utils/queue.js.map +1 -1
- package/dist/es5/lib/utils/statistic-utills.js +1 -46
- package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
- package/dist/es5/lib/utils/write-queue.js +0 -52
- package/dist/es5/lib/utils/write-queue.js.map +1 -1
- package/dist/es5/pgm-loader.js +1 -8
- package/dist/es5/pgm-loader.js.map +1 -1
- package/dist/es5/workers/3d-tiles-attributes-worker.js +2 -9
- package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/es5/workers/i3s-attributes-worker.js +1 -9
- package/dist/es5/workers/i3s-attributes-worker.js.map +1 -1
- package/dist/esm/3d-tiles-attributes-worker.js +4 -2
- package/dist/esm/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +8 -40
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +29 -50
- 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 +1 -0
- 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 +1 -4
- package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
- package/dist/esm/3d-tiles-converter/json-templates/tileset.js +0 -3
- package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +1 -1
- package/dist/esm/bundle.js +1 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/converter-cli.js +3 -38
- package/dist/esm/converter-cli.js.map +1 -1
- package/dist/esm/deps-installer/deps-installer.js +6 -7
- package/dist/esm/deps-installer/deps-installer.js.map +1 -1
- package/dist/esm/i3s-attributes-worker.js +3 -1
- package/dist/esm/i3s-attributes-worker.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +4 -23
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js +4 -6
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/create-scene-server-path.js +1 -0
- package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/feature-attributes.js +6 -20
- package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js +3 -22
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +28 -139
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js +7 -12
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/node-debug.js +3 -13
- package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/node-pages.js +2 -21
- package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +49 -137
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/layers.js +1 -11
- 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 +0 -4
- 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 +0 -12
- package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/store.js.map +1 -1
- package/dist/esm/i3s-converter/types.js.map +1 -1
- package/dist/esm/i3s-server/app.js +0 -5
- package/dist/esm/i3s-server/app.js.map +1 -1
- package/dist/esm/i3s-server/controllers/index-controller.js +0 -5
- package/dist/esm/i3s-server/controllers/index-controller.js.map +1 -1
- package/dist/esm/i3s-server/routes/index.js +0 -3
- package/dist/esm/i3s-server/routes/index.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/utils/compress-util.js +19 -12
- package/dist/esm/lib/utils/compress-util.js.map +1 -1
- package/dist/esm/lib/utils/file-utils.js +10 -8
- package/dist/esm/lib/utils/file-utils.js.map +1 -1
- package/dist/esm/lib/utils/lod-conversion-utils.js +2 -6
- package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/esm/lib/utils/queue.js +0 -4
- package/dist/esm/lib/utils/queue.js.map +1 -1
- package/dist/esm/lib/utils/statistic-utills.js +0 -11
- package/dist/esm/lib/utils/statistic-utills.js.map +1 -1
- package/dist/esm/lib/utils/write-queue.js +5 -23
- package/dist/esm/lib/utils/write-queue.js.map +1 -1
- package/dist/esm/pgm-loader.js +3 -1
- package/dist/esm/pgm-loader.js.map +1 -1
- package/dist/esm/workers/3d-tiles-attributes-worker.js +4 -1
- package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/esm/workers/i3s-attributes-worker.js +4 -1
- package/dist/esm/workers/i3s-attributes-worker.js.map +1 -1
- package/dist/i3s-attributes-worker.js +2 -3
- package/dist/i3s-attributes-worker.js.map +3 -3
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-converter.js +2 -0
- package/dist/i3s-converter/i3s-converter.js +5 -1
- package/dist/pgm-loader.d.ts.map +1 -1
- package/dist/pgm-loader.js +2 -1
- package/dist/workers/3d-tiles-attributes-worker.js +1 -1
- package/package.json +15 -15
- package/src/3d-tiles-attributes-worker.ts +1 -1
- package/src/3d-tiles-converter/helpers/b3dm-converter.ts +25 -18
- package/src/i3s-converter/helpers/geometry-converter.ts +2 -0
- package/src/pgm-loader.ts +2 -2
- package/src/workers/3d-tiles-attributes-worker.ts +1 -1
|
@@ -2,18 +2,14 @@ export class Queue extends Array {
|
|
|
2
2
|
enqueue(val) {
|
|
3
3
|
this.push(val);
|
|
4
4
|
}
|
|
5
|
-
|
|
6
5
|
dequeue() {
|
|
7
6
|
return this.shift();
|
|
8
7
|
}
|
|
9
|
-
|
|
10
8
|
peek() {
|
|
11
9
|
return this[0];
|
|
12
10
|
}
|
|
13
|
-
|
|
14
11
|
isEmpty() {
|
|
15
12
|
return this.length === 0;
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
}
|
|
19
15
|
//# sourceMappingURL=queue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"queue.js","names":["Queue","Array","enqueue","val","push","dequeue","shift","peek","isEmpty","length"],"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":"AAAA,OAAO,MAAMA,KAAK,SAAYC,KAAK,CAAI;EACrCC,OAAO,CAACC,GAAM,EAAE;IACd,IAAI,CAACC,IAAI,CAACD,GAAG,CAAC;EAChB;EAEAE,OAAO,GAAkB;IACvB,OAAO,IAAI,CAACC,KAAK,EAAE;EACrB;EAEAC,IAAI,GAAM;IACR,OAAO,IAAI,CAAC,CAAC,CAAC;EAChB;EAEAC,OAAO,GAAG;IACR,OAAO,IAAI,CAACC,MAAM,KAAK,CAAC;EAC1B;AACF"}
|
|
@@ -11,23 +11,18 @@ export function timeConverter(time) {
|
|
|
11
11
|
const seconds = Math.floor(timeInSeconds);
|
|
12
12
|
const milliseconds = time[1] / nanoSecondsInMillisecond;
|
|
13
13
|
let result = '';
|
|
14
|
-
|
|
15
14
|
if (hours) {
|
|
16
15
|
result += "".concat(hours, "h ");
|
|
17
16
|
}
|
|
18
|
-
|
|
19
17
|
if (minutes) {
|
|
20
18
|
result += "".concat(minutes, "m ");
|
|
21
19
|
}
|
|
22
|
-
|
|
23
20
|
if (seconds) {
|
|
24
21
|
result += "".concat(seconds, "s");
|
|
25
22
|
}
|
|
26
|
-
|
|
27
23
|
if (!result) {
|
|
28
24
|
result += "".concat(milliseconds, "ms");
|
|
29
25
|
}
|
|
30
|
-
|
|
31
26
|
return result;
|
|
32
27
|
}
|
|
33
28
|
export async function calculateFilesSize(params) {
|
|
@@ -37,14 +32,12 @@ export async function calculateFilesSize(params) {
|
|
|
37
32
|
tilesetName
|
|
38
33
|
} = params;
|
|
39
34
|
const fullOutputPath = getAbsoluteFilePath(outputPath);
|
|
40
|
-
|
|
41
35
|
try {
|
|
42
36
|
if (slpk) {
|
|
43
37
|
const slpkPath = join(fullOutputPath, "".concat(tilesetName, ".slpk"));
|
|
44
38
|
const stat = await fs.stat(slpkPath);
|
|
45
39
|
return stat.size;
|
|
46
40
|
}
|
|
47
|
-
|
|
48
41
|
const directoryPath = join(fullOutputPath, tilesetName);
|
|
49
42
|
const totalSize = await getTotalFilesSize(directoryPath);
|
|
50
43
|
return totalSize;
|
|
@@ -53,21 +46,17 @@ export async function calculateFilesSize(params) {
|
|
|
53
46
|
return null;
|
|
54
47
|
}
|
|
55
48
|
}
|
|
56
|
-
|
|
57
49
|
async function getTotalFilesSize(dirPath) {
|
|
58
50
|
let totalFileSize = 0;
|
|
59
51
|
const files = await fs.readdir(dirPath);
|
|
60
|
-
|
|
61
52
|
for (const file of files) {
|
|
62
53
|
const fileStat = await fs.stat(join(dirPath, file));
|
|
63
|
-
|
|
64
54
|
if (fileStat.isDirectory()) {
|
|
65
55
|
totalFileSize += await getTotalFilesSize(join(dirPath, file));
|
|
66
56
|
} else {
|
|
67
57
|
totalFileSize += fileStat.size;
|
|
68
58
|
}
|
|
69
59
|
}
|
|
70
|
-
|
|
71
60
|
return totalFileSize;
|
|
72
61
|
}
|
|
73
62
|
//# sourceMappingURL=statistic-utills.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"statistic-utills.js","names":["join","promises","fs","getAbsoluteFilePath","timeConverter","time","nanoSecondsInMillisecond","timeInSeconds","hours","Math","floor","minutes","seconds","milliseconds","result","calculateFilesSize","params","slpk","outputPath","tilesetName","fullOutputPath","slpkPath","stat","size","directoryPath","totalSize","getTotalFilesSize","error","console","log","dirPath","totalFileSize","files","readdir","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":"AAAA,SAAQA,IAAI,QAAO,MAAM;AACzB,SAAQC,QAAQ,IAAIC,EAAE,QAAO,IAAI;AACjC,SAAQC,mBAAmB,QAAO,cAAc;AAEhD,OAAO,SAASC,aAAa,CAACC,IAAI,EAAE;EAClC,MAAMC,wBAAwB,GAAG,GAAG;EACpC,IAAIC,aAAa,GAAGF,IAAI,CAAC,CAAC,CAAC;EAC3B,MAAMG,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACH,aAAa,GAAG,IAAI,CAAC;EAC9CA,aAAa,GAAGA,aAAa,GAAGC,KAAK,GAAG,IAAI;EAC5C,MAAMG,OAAO,GAAGF,IAAI,CAACC,KAAK,CAACH,aAAa,GAAG,EAAE,CAAC;EAC9CA,aAAa,GAAGA,aAAa,GAAGI,OAAO,GAAG,EAAE;EAC5C,MAAMC,OAAO,GAAGH,IAAI,CAACC,KAAK,CAACH,aAAa,CAAC;EACzC,MAAMM,YAAY,GAAGR,IAAI,CAAC,CAAC,CAAC,GAAGC,wBAAwB;EACvD,IAAIQ,MAAM,GAAG,EAAE;EAEf,IAAIN,KAAK,EAAE;IACTM,MAAM,cAAON,KAAK,OAAI;EACxB;EAEA,IAAIG,OAAO,EAAE;IACXG,MAAM,cAAOH,OAAO,OAAI;EAC1B;EAEA,IAAIC,OAAO,EAAE;IACXE,MAAM,cAAOF,OAAO,MAAG;EACzB;EAEA,IAAI,CAACE,MAAM,EAAE;IACXA,MAAM,cAAOD,YAAY,OAAI;EAC/B;EAEA,OAAOC,MAAM;AACf;AAEA,OAAO,eAAeC,kBAAkB,CAACC,MAAM,EAAE;EAC/C,MAAM;IAACC,IAAI;IAAEC,UAAU;IAAEC;EAAW,CAAC,GAAGH,MAAM;EAC9C,MAAMI,cAAc,GAAGjB,mBAAmB,CAACe,UAAU,CAAC;EAEtD,IAAI;IACF,IAAID,IAAI,EAAE;MACR,MAAMI,QAAQ,GAAGrB,IAAI,CAACoB,cAAc,YAAKD,WAAW,WAAQ;MAC5D,MAAMG,IAAI,GAAG,MAAMpB,EAAE,CAACoB,IAAI,CAACD,QAAQ,CAAC;MACpC,OAAOC,IAAI,CAACC,IAAI;IAClB;IAEA,MAAMC,aAAa,GAAGxB,IAAI,CAACoB,cAAc,EAAED,WAAW,CAAC;IACvD,MAAMM,SAAS,GAAG,MAAMC,iBAAiB,CAACF,aAAa,CAAC;IACxD,OAAOC,SAAS;EAClB,CAAC,CAAC,OAAOE,KAAK,EAAE;IACdC,OAAO,CAACC,GAAG,CAAC,8BAA8B,EAAEF,KAAK,CAAC;IAClD,OAAO,IAAI;EACb;AACF;AAEA,eAAeD,iBAAiB,CAACI,OAAO,EAAE;EACxC,IAAIC,aAAa,GAAG,CAAC;EAErB,MAAMC,KAAK,GAAG,MAAM9B,EAAE,CAAC+B,OAAO,CAACH,OAAO,CAAC;EAEvC,KAAK,MAAMI,IAAI,IAAIF,KAAK,EAAE;IACxB,MAAMG,QAAQ,GAAG,MAAMjC,EAAE,CAACoB,IAAI,CAACtB,IAAI,CAAC8B,OAAO,EAAEI,IAAI,CAAC,CAAC;IACnD,IAAIC,QAAQ,CAACC,WAAW,EAAE,EAAE;MAC1BL,aAAa,IAAI,MAAML,iBAAiB,CAAC1B,IAAI,CAAC8B,OAAO,EAAEI,IAAI,CAAC,CAAC;IAC/D,CAAC,MAAM;MACLH,aAAa,IAAII,QAAQ,CAACZ,IAAI;IAChC;EACF;EACA,OAAOQ,aAAa;AACtB"}
|
|
@@ -1,72 +1,59 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
2
|
import { Queue } from './queue';
|
|
3
3
|
import process from 'process';
|
|
4
|
+
|
|
4
5
|
const MEMORY_LIMIT = 4 * 1024 * 1024 * 1024;
|
|
6
|
+
|
|
5
7
|
export default class WriteQueue extends Queue {
|
|
6
|
-
constructor(
|
|
8
|
+
constructor() {
|
|
9
|
+
let listeningInterval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 2000;
|
|
10
|
+
let writeConcurrency = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;
|
|
7
11
|
super();
|
|
8
|
-
|
|
9
12
|
_defineProperty(this, "intervalId", void 0);
|
|
10
|
-
|
|
11
13
|
_defineProperty(this, "writePromise", null);
|
|
12
|
-
|
|
13
14
|
_defineProperty(this, "fileMap", {});
|
|
14
|
-
|
|
15
15
|
_defineProperty(this, "listeningInterval", void 0);
|
|
16
|
-
|
|
17
16
|
_defineProperty(this, "writeConcurrency", void 0);
|
|
18
|
-
|
|
19
17
|
this.listeningInterval = listeningInterval;
|
|
20
18
|
this.writeConcurrency = writeConcurrency;
|
|
21
19
|
}
|
|
22
|
-
|
|
23
20
|
async enqueue(val) {
|
|
24
21
|
super.enqueue(val);
|
|
25
|
-
|
|
26
22
|
if (process.memoryUsage().rss > MEMORY_LIMIT) {
|
|
27
23
|
await this.startWrite();
|
|
28
24
|
}
|
|
29
25
|
}
|
|
30
|
-
|
|
31
26
|
startListening() {
|
|
32
27
|
this.intervalId = setInterval(this.startWrite.bind(this), this.listeningInterval);
|
|
33
28
|
}
|
|
34
|
-
|
|
35
29
|
stopListening() {
|
|
36
30
|
if (this.intervalId) {
|
|
37
31
|
clearInterval(this.intervalId);
|
|
38
32
|
}
|
|
39
33
|
}
|
|
40
|
-
|
|
41
34
|
async startWrite() {
|
|
42
35
|
if (this.writePromise) {
|
|
43
36
|
await this.writePromise;
|
|
44
37
|
this.writePromise = null;
|
|
45
38
|
return;
|
|
46
39
|
}
|
|
47
|
-
|
|
48
40
|
this.writePromise = this.doWrite();
|
|
49
41
|
await this.writePromise;
|
|
50
42
|
this.writePromise = null;
|
|
51
43
|
}
|
|
52
|
-
|
|
53
44
|
async finalize() {
|
|
54
45
|
this.stopListening();
|
|
55
46
|
await this.startWrite();
|
|
56
47
|
}
|
|
57
|
-
|
|
58
48
|
async doWrite() {
|
|
59
49
|
while (this.length) {
|
|
60
50
|
const promises = [];
|
|
61
51
|
const archiveKeys = [];
|
|
62
|
-
|
|
63
52
|
for (let i = 0; i < this.writeConcurrency; i++) {
|
|
64
53
|
const item = this.dequeue();
|
|
65
|
-
|
|
66
54
|
if (!item) {
|
|
67
55
|
break;
|
|
68
56
|
}
|
|
69
|
-
|
|
70
57
|
const {
|
|
71
58
|
archiveKey,
|
|
72
59
|
writePromise
|
|
@@ -74,23 +61,18 @@ export default class WriteQueue extends Queue {
|
|
|
74
61
|
archiveKeys.push(archiveKey);
|
|
75
62
|
promises.push(writePromise);
|
|
76
63
|
}
|
|
77
|
-
|
|
78
64
|
const writeResults = await Promise.allSettled(promises);
|
|
79
65
|
this.updateFileMap(archiveKeys, writeResults);
|
|
80
66
|
}
|
|
81
|
-
|
|
82
67
|
this.writePromise = null;
|
|
83
68
|
}
|
|
84
|
-
|
|
85
69
|
updateFileMap(archiveKeys, writeResults) {
|
|
86
70
|
for (let i = 0; i < archiveKeys.length; i++) {
|
|
87
71
|
const archiveKey = archiveKeys[i];
|
|
88
|
-
|
|
89
72
|
if (archiveKey && 'value' in writeResults[i]) {
|
|
90
73
|
this.fileMap[archiveKey] = writeResults[i].value;
|
|
91
74
|
}
|
|
92
75
|
}
|
|
93
76
|
}
|
|
94
|
-
|
|
95
77
|
}
|
|
96
78
|
//# sourceMappingURL=write-queue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"write-queue.js","names":["Queue","process","MEMORY_LIMIT","WriteQueue","constructor","listeningInterval","writeConcurrency","enqueue","val","memoryUsage","rss","startWrite","startListening","intervalId","setInterval","bind","stopListening","clearInterval","writePromise","doWrite","finalize","length","promises","archiveKeys","i","item","dequeue","archiveKey","push","writeResults","Promise","allSettled","updateFileMap","fileMap","value"],"sources":["../../../../src/lib/utils/write-queue.ts"],"sourcesContent":["import {Queue} from './queue';\nimport process from 'process';\n\n/** Memory limit size is based on testing */\nconst MEMORY_LIMIT = 4 * 1024 * 1024 * 1024; // 4GB\n\nexport type WriteQueueItem = {\n archiveKey?: string;\n writePromise: Promise<string>;\n};\n\nexport default class WriteQueue<T extends WriteQueueItem> extends Queue<T> {\n private intervalId?: NodeJS.Timeout;\n public writePromise: Promise<void> | null = null;\n public fileMap: {[key: string]: string} = {};\n public listeningInterval: number;\n public writeConcurrency: number;\n\n constructor(listeningInterval: number = 2000, writeConcurrency: number = 400) {\n super();\n this.listeningInterval = listeningInterval;\n this.writeConcurrency = writeConcurrency;\n }\n\n async enqueue(val: T) {\n super.enqueue(val);\n /** https://nodejs.org/docs/latest-v14.x/api/process.html#process_process_memoryusage */\n if (process.memoryUsage().rss > MEMORY_LIMIT) {\n await this.startWrite();\n }\n }\n\n startListening() {\n this.intervalId = setInterval(this.startWrite.bind(this), this.listeningInterval);\n }\n\n stopListening() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n }\n\n async startWrite(): Promise<void> {\n if (this.writePromise) {\n await this.writePromise;\n this.writePromise = null;\n return;\n }\n this.writePromise = this.doWrite();\n await this.writePromise;\n this.writePromise = null;\n }\n\n async finalize(): Promise<void> {\n this.stopListening();\n await this.startWrite();\n }\n\n private async doWrite(): Promise<void> {\n while (this.length) {\n const promises: Promise<string>[] = [];\n const archiveKeys: (string | undefined)[] = [];\n for (let i = 0; i < this.writeConcurrency; i++) {\n const item = this.dequeue();\n if (!item) {\n break;\n }\n const {archiveKey, writePromise} = item as WriteQueueItem;\n archiveKeys.push(archiveKey);\n promises.push(writePromise);\n }\n const writeResults = await Promise.allSettled(promises);\n this.updateFileMap(archiveKeys, writeResults);\n }\n this.writePromise = null;\n }\n\n private updateFileMap(\n archiveKeys: (string | undefined)[],\n writeResults: PromiseSettledResult<string>[]\n ) {\n for (let i = 0; i < archiveKeys.length; i++) {\n const archiveKey = archiveKeys[i];\n if (archiveKey && 'value' in writeResults[i]) {\n this.fileMap[archiveKey] = (writeResults[i] as PromiseFulfilledResult<string>).value;\n }\n }\n }\n}\n"],"mappings":";AAAA,SAAQA,KAAK,QAAO,SAAS;AAC7B,OAAOC,OAAO,MAAM,SAAS;;AAG7B,MAAMC,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;;AAO3C,eAAe,MAAMC,UAAU,SAAmCH,KAAK,CAAI;EAOzEI,WAAW,GAAmE;IAAA,IAAlEC,iBAAyB,uEAAG,IAAI;IAAA,IAAEC,gBAAwB,uEAAG,GAAG;IAC1E,KAAK,EAAE;IAAC;IAAA,sCANkC,IAAI;IAAA,iCACN,CAAC,CAAC;IAAA;IAAA;IAM1C,IAAI,CAACD,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACC,gBAAgB,GAAGA,gBAAgB;EAC1C;EAEA,MAAMC,OAAO,CAACC,GAAM,EAAE;IACpB,KAAK,CAACD,OAAO,CAACC,GAAG,CAAC;IAElB,IAAIP,OAAO,CAACQ,WAAW,EAAE,CAACC,GAAG,GAAGR,YAAY,EAAE;MAC5C,MAAM,IAAI,CAACS,UAAU,EAAE;IACzB;EACF;EAEAC,cAAc,GAAG;IACf,IAAI,CAACC,UAAU,GAAGC,WAAW,CAAC,IAAI,CAACH,UAAU,CAACI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAACV,iBAAiB,CAAC;EACnF;EAEAW,aAAa,GAAG;IACd,IAAI,IAAI,CAACH,UAAU,EAAE;MACnBI,aAAa,CAAC,IAAI,CAACJ,UAAU,CAAC;IAChC;EACF;EAEA,MAAMF,UAAU,GAAkB;IAChC,IAAI,IAAI,CAACO,YAAY,EAAE;MACrB,MAAM,IAAI,CAACA,YAAY;MACvB,IAAI,CAACA,YAAY,GAAG,IAAI;MACxB;IACF;IACA,IAAI,CAACA,YAAY,GAAG,IAAI,CAACC,OAAO,EAAE;IAClC,MAAM,IAAI,CAACD,YAAY;IACvB,IAAI,CAACA,YAAY,GAAG,IAAI;EAC1B;EAEA,MAAME,QAAQ,GAAkB;IAC9B,IAAI,CAACJ,aAAa,EAAE;IACpB,MAAM,IAAI,CAACL,UAAU,EAAE;EACzB;EAEA,MAAcQ,OAAO,GAAkB;IACrC,OAAO,IAAI,CAACE,MAAM,EAAE;MAClB,MAAMC,QAA2B,GAAG,EAAE;MACtC,MAAMC,WAAmC,GAAG,EAAE;MAC9C,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAAClB,gBAAgB,EAAEkB,CAAC,EAAE,EAAE;QAC9C,MAAMC,IAAI,GAAG,IAAI,CAACC,OAAO,EAAE;QAC3B,IAAI,CAACD,IAAI,EAAE;UACT;QACF;QACA,MAAM;UAACE,UAAU;UAAET;QAAY,CAAC,GAAGO,IAAsB;QACzDF,WAAW,CAACK,IAAI,CAACD,UAAU,CAAC;QAC5BL,QAAQ,CAACM,IAAI,CAACV,YAAY,CAAC;MAC7B;MACA,MAAMW,YAAY,GAAG,MAAMC,OAAO,CAACC,UAAU,CAACT,QAAQ,CAAC;MACvD,IAAI,CAACU,aAAa,CAACT,WAAW,EAAEM,YAAY,CAAC;IAC/C;IACA,IAAI,CAACX,YAAY,GAAG,IAAI;EAC1B;EAEQc,aAAa,CACnBT,WAAmC,EACnCM,YAA4C,EAC5C;IACA,KAAK,IAAIL,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,WAAW,CAACF,MAAM,EAAEG,CAAC,EAAE,EAAE;MAC3C,MAAMG,UAAU,GAAGJ,WAAW,CAACC,CAAC,CAAC;MACjC,IAAIG,UAAU,IAAI,OAAO,IAAIE,YAAY,CAACL,CAAC,CAAC,EAAE;QAC5C,IAAI,CAACS,OAAO,CAACN,UAAU,CAAC,GAAIE,YAAY,CAACL,CAAC,CAAC,CAAoCU,KAAK;MACtF;IACF;EACF;AACF"}
|
package/dist/esm/pgm-loader.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
const VERSION = typeof "3.3.0-alpha.4" !== 'undefined' ? "3.3.0-alpha.4" : 'latest';
|
|
2
1
|
import { parsePGM } from '@math.gl/geoid';
|
|
2
|
+
|
|
3
|
+
const VERSION = typeof "3.3.0-alpha.6" !== 'undefined' ? "3.3.0-alpha.6" : 'latest';
|
|
4
|
+
|
|
3
5
|
export const PGMLoader = {
|
|
4
6
|
name: 'PGM - Netpbm grayscale image format',
|
|
5
7
|
id: 'pgm',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"pgm-loader.js","names":["parsePGM","VERSION","PGMLoader","name","id","module","version","mimeTypes","parse","arrayBuffer","options","Uint8Array","extensions","cubic"],"sources":["../../src/pgm-loader.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {parsePGM} from '@math.gl/geoid';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * Loader for PGM - Netpbm grayscale image format\n */\nexport const PGMLoader: LoaderWithParser = {\n name: 'PGM - Netpbm grayscale image format',\n id: 'pgm',\n module: 'tile-converter',\n version: VERSION,\n mimeTypes: ['image/x-portable-graymap'],\n // @ts-expect-error LoaderOptions does not have cubic parameter\n parse: async (arrayBuffer, options) => parsePGM(new Uint8Array(arrayBuffer), options),\n extensions: ['pgm'],\n options: {\n // TODO - use pgm namespace\n cubic: false\n }\n};\n"],"mappings":"AACA,SAAQA,QAAQ,QAAO,gBAAgB;;AAIvC,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;;AAK3E,OAAO,MAAMC,SAA2B,GAAG;EACzCC,IAAI,EAAE,qCAAqC;EAC3CC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,gBAAgB;EACxBC,OAAO,EAAEL,OAAO;EAChBM,SAAS,EAAE,CAAC,0BAA0B,CAAC;EAEvCC,KAAK,EAAE,OAAOC,WAAW,EAAEC,OAAO,KAAKV,QAAQ,CAAC,IAAIW,UAAU,CAACF,WAAW,CAAC,EAAEC,OAAO,CAAC;EACrFE,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBF,OAAO,EAAE;IAEPG,KAAK,EAAE;EACT;AACF,CAAC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { createWorker } from '@loaders.gl/worker-utils';
|
|
2
2
|
import B3dmConverter from '../3d-tiles-converter/helpers/b3dm-converter';
|
|
3
3
|
const b3dmConverter = new B3dmConverter();
|
|
4
|
-
createWorker(async (data
|
|
4
|
+
createWorker(async function (data) {
|
|
5
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
6
|
+
return b3dmConverter.convert(data, options.featureAttributes);
|
|
7
|
+
});
|
|
5
8
|
//# sourceMappingURL=3d-tiles-attributes-worker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"3d-tiles-attributes-worker.js","names":["createWorker","B3dmConverter","b3dmConverter","data","options","convert","featureAttributes"],"sources":["../../../src/workers/3d-tiles-attributes-worker.ts"],"sourcesContent":["import {createWorker} from '@loaders.gl/worker-utils';\nimport B3dmConverter from '../3d-tiles-converter/helpers/b3dm-converter';\n\nconst b3dmConverter = new B3dmConverter();\n\ncreateWorker(async (data, options = {}) => b3dmConverter.convert(data, options.featureAttributes));\n"],"mappings":"AAAA,SAAQA,YAAY,QAAO,0BAA0B;AACrD,OAAOC,aAAa,MAAM,8CAA8C;AAExE,MAAMC,aAAa,GAAG,IAAID,aAAa,EAAE;AAEzCD,YAAY,CAAC,gBAAOG,IAAI;EAAA,IAAEC,OAAO,uEAAG,CAAC,CAAC;EAAA,OAAKF,aAAa,CAACG,OAAO,CAACF,IAAI,EAAEC,OAAO,CAACE,iBAAiB,CAAC;AAAA,EAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { createWorker } from '@loaders.gl/worker-utils';
|
|
2
2
|
import { convertAttributes } from '../i3s-converter/helpers/geometry-converter';
|
|
3
|
-
createWorker(async (data
|
|
3
|
+
createWorker(async function (data) {
|
|
4
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
5
|
+
return await convertAttributes(data, options.useCartesianPositions);
|
|
6
|
+
});
|
|
4
7
|
//# sourceMappingURL=i3s-attributes-worker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"i3s-attributes-worker.js","names":["createWorker","convertAttributes","data","options","useCartesianPositions"],"sources":["../../../src/workers/i3s-attributes-worker.ts"],"sourcesContent":["import {createWorker} from '@loaders.gl/worker-utils';\nimport {convertAttributes} from '../i3s-converter/helpers/geometry-converter';\n\ncreateWorker(\n async (data, options = {}) => await convertAttributes(data, options.useCartesianPositions)\n);\n"],"mappings":"AAAA,SAAQA,YAAY,QAAO,0BAA0B;AACrD,SAAQC,iBAAiB,QAAO,6CAA6C;AAE7ED,YAAY,CACV,gBAAOE,IAAI;EAAA,IAAEC,OAAO,uEAAG,CAAC,CAAC;EAAA,OAAK,MAAMF,iBAAiB,CAACC,IAAI,EAAEC,OAAO,CAACC,qBAAqB,CAAC;AAAA,EAC3F"}
|