@loaders.gl/tile-converter 4.0.0-alpha.9 → 4.0.0-beta.1
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/bin/i3s-server.js +4 -0
- package/bin/slpk-extractor.js +4 -0
- package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +5 -5
- package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +10 -5
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -1
- package/dist/3d-tiles-converter/helpers/load-i3s.d.ts +10 -0
- package/dist/3d-tiles-converter/helpers/load-i3s.d.ts.map +1 -0
- package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts +2 -1
- package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts.map +1 -1
- package/dist/converter.min.js +172 -103
- package/dist/deps-installer/deps-installer.d.ts +3 -2
- package/dist/deps-installer/deps-installer.d.ts.map +1 -1
- package/dist/dist.min.js +32715 -32567
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +97 -117
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +24 -22
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/load-i3s.js +63 -0
- package/dist/es5/3d-tiles-converter/helpers/load-i3s.js.map +1 -0
- package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
- package/dist/es5/converter-cli.js +25 -65
- package/dist/es5/converter-cli.js.map +1 -1
- package/dist/es5/deps-installer/deps-installer.js +113 -39
- package/dist/es5/deps-installer/deps-installer.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +45 -15
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/feature-attributes.js +8 -18
- package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js +83 -43
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +100 -102
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/load-3d-tiles.js +70 -4
- package/dist/es5/i3s-converter/helpers/load-3d-tiles.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/node-index-document.js +3 -2
- package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +47 -12
- package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +187 -174
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/i3s-converter/types.js +11 -11
- package/dist/es5/i3s-converter/types.js.map +1 -1
- package/dist/es5/i3s-server/README.md +46 -2
- package/dist/es5/i3s-server/app.js +23 -15
- package/dist/es5/i3s-server/app.js.map +1 -1
- package/dist/es5/i3s-server/bin/www.js +33 -0
- package/dist/es5/i3s-server/bin/www.js.map +1 -0
- package/dist/es5/i3s-server/controllers/index-controller.js +23 -22
- package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -1
- package/dist/es5/i3s-server/controllers/slpk-controller.js +35 -38
- package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -1
- package/dist/es5/i3s-server/routes/index.js +2 -2
- package/dist/es5/i3s-server/routes/index.js.map +1 -1
- package/dist/es5/i3s-server/routes/slpk-router.js +14 -13
- package/dist/es5/i3s-server/routes/slpk-router.js.map +1 -1
- package/dist/es5/i3s-server/utils/create-scene-server.js +7 -4
- package/dist/es5/i3s-server/utils/create-scene-server.js.map +1 -1
- package/dist/es5/i3s-server/utils/server-utils.js +49 -0
- package/dist/es5/i3s-server/utils/server-utils.js.map +1 -0
- package/dist/es5/lib/utils/cli-utils.js +57 -0
- package/dist/es5/lib/utils/cli-utils.js.map +1 -0
- package/dist/es5/lib/utils/compress-util.js +1 -1
- package/dist/es5/lib/utils/compress-util.js.map +1 -1
- package/dist/es5/lib/utils/lod-conversion-utils.js +10 -4
- package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/es5/pgm-loader.js +11 -3
- package/dist/es5/pgm-loader.js.map +1 -1
- package/dist/es5/slpk-extractor/slpk-extractor.js +171 -0
- package/dist/es5/slpk-extractor/slpk-extractor.js.map +1 -0
- package/dist/es5/slpk-extractor-cli.js +117 -0
- package/dist/es5/slpk-extractor-cli.js.map +1 -0
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +51 -58
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +12 -11
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/load-i3s.js +32 -0
- package/dist/esm/3d-tiles-converter/helpers/load-i3s.js.map +1 -0
- package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
- package/dist/esm/converter-cli.js +8 -48
- package/dist/esm/converter-cli.js.map +1 -1
- package/dist/esm/deps-installer/deps-installer.js +38 -12
- package/dist/esm/deps-installer/deps-installer.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +28 -11
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/feature-attributes.js +10 -8
- package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js +77 -34
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +60 -61
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/load-3d-tiles.js +33 -4
- package/dist/esm/i3s-converter/helpers/load-3d-tiles.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/node-index-document.js +2 -1
- package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js +37 -12
- package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +101 -73
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/i3s-converter/types.js +9 -9
- package/dist/esm/i3s-converter/types.js.map +1 -1
- package/dist/esm/i3s-server/README.md +46 -2
- package/dist/esm/i3s-server/app.js +13 -11
- package/dist/esm/i3s-server/app.js.map +1 -1
- package/dist/esm/i3s-server/bin/i3s-server.min.js +516 -0
- package/dist/esm/i3s-server/bin/www.js +30 -0
- package/dist/esm/i3s-server/bin/www.js.map +1 -0
- package/dist/esm/i3s-server/controllers/index-controller.js +4 -7
- package/dist/esm/i3s-server/controllers/index-controller.js.map +1 -1
- package/dist/esm/i3s-server/controllers/slpk-controller.js +9 -26
- package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -1
- package/dist/esm/i3s-server/routes/index.js +1 -1
- package/dist/esm/i3s-server/routes/index.js.map +1 -1
- package/dist/esm/i3s-server/routes/slpk-router.js +5 -11
- package/dist/esm/i3s-server/routes/slpk-router.js.map +1 -1
- package/dist/esm/i3s-server/utils/create-scene-server.js +2 -5
- package/dist/esm/i3s-server/utils/create-scene-server.js.map +1 -1
- package/dist/esm/i3s-server/utils/server-utils.js +40 -0
- package/dist/esm/i3s-server/utils/server-utils.js.map +1 -0
- package/dist/esm/lib/utils/cli-utils.js +47 -0
- package/dist/esm/lib/utils/cli-utils.js.map +1 -0
- package/dist/esm/lib/utils/compress-util.js +1 -1
- package/dist/esm/lib/utils/compress-util.js.map +1 -1
- package/dist/esm/lib/utils/lod-conversion-utils.js +6 -4
- package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/esm/pgm-loader.js +7 -4
- package/dist/esm/pgm-loader.js.map +1 -1
- package/dist/esm/slpk-extractor/slpk-extractor.js +63 -0
- package/dist/esm/slpk-extractor/slpk-extractor.js.map +1 -0
- package/dist/esm/slpk-extractor-cli.js +74 -0
- package/dist/esm/slpk-extractor-cli.js.map +1 -0
- package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +15 -2
- package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/coordinate-converter.d.ts +1 -2
- package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/feature-attributes.d.ts +8 -8
- package/dist/i3s-converter/helpers/feature-attributes.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-converter.d.ts +9 -9
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/gltf-attributes.d.ts +3 -3
- package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/load-3d-tiles.d.ts +15 -0
- package/dist/i3s-converter/helpers/load-3d-tiles.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts +4 -5
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.d.ts +3 -2
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/types.d.ts +48 -7
- package/dist/i3s-converter/types.d.ts.map +1 -1
- package/dist/i3s-server/app.d.ts +1 -2
- package/dist/i3s-server/app.d.ts.map +1 -1
- package/dist/i3s-server/bin/www.d.ts +3 -0
- package/dist/i3s-server/bin/www.d.ts.map +1 -0
- package/dist/i3s-server/controllers/index-controller.d.ts +6 -1
- package/dist/i3s-server/controllers/index-controller.d.ts.map +1 -1
- package/dist/i3s-server/controllers/slpk-controller.d.ts +13 -2
- package/dist/i3s-server/controllers/slpk-controller.d.ts.map +1 -1
- package/dist/i3s-server/routes/index.d.ts +1 -2
- package/dist/i3s-server/routes/index.d.ts.map +1 -1
- package/dist/i3s-server/routes/slpk-router.d.ts +2 -2
- package/dist/i3s-server/routes/slpk-router.d.ts.map +1 -1
- package/dist/i3s-server/utils/create-scene-server.d.ts +11 -5
- package/dist/i3s-server/utils/create-scene-server.d.ts.map +1 -1
- package/dist/i3s-server/utils/server-utils.d.ts +24 -0
- package/dist/i3s-server/utils/server-utils.d.ts.map +1 -0
- package/dist/lib/utils/cli-utils.d.ts +34 -0
- package/dist/lib/utils/cli-utils.d.ts.map +1 -0
- package/dist/lib/utils/lod-conversion-utils.d.ts +2 -2
- package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -1
- package/dist/pgm-loader.d.ts +9 -2
- package/dist/pgm-loader.d.ts.map +1 -1
- package/dist/slpk-extractor/slpk-extractor.d.ts +23 -0
- package/dist/slpk-extractor/slpk-extractor.d.ts.map +1 -0
- package/dist/slpk-extractor-cli.d.ts +17 -0
- package/dist/slpk-extractor-cli.d.ts.map +1 -0
- package/dist/slpk-extractor.min.js +189 -0
- package/package.json +27 -21
- package/src/3d-tiles-converter/3d-tiles-converter.ts +65 -69
- package/src/3d-tiles-converter/helpers/b3dm-converter.ts +23 -19
- package/src/3d-tiles-converter/helpers/load-i3s.ts +52 -0
- package/src/3d-tiles-converter/helpers/texture-atlas.ts +6 -2
- package/src/converter-cli.ts +16 -74
- package/src/deps-installer/deps-installer.ts +56 -11
- package/src/i3s-converter/helpers/batch-ids-extensions.ts +77 -32
- package/src/i3s-converter/helpers/coordinate-converter.ts +1 -2
- package/src/i3s-converter/helpers/feature-attributes.ts +23 -18
- package/src/i3s-converter/helpers/geometry-attributes.ts +81 -44
- package/src/i3s-converter/helpers/geometry-converter.ts +149 -126
- package/src/i3s-converter/helpers/gltf-attributes.ts +9 -10
- package/src/i3s-converter/helpers/load-3d-tiles.ts +61 -5
- package/src/i3s-converter/helpers/node-index-document.ts +5 -1
- package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +70 -21
- package/src/i3s-converter/i3s-converter.ts +145 -73
- package/src/i3s-converter/types.ts +49 -7
- package/src/i3s-server/README.md +46 -2
- package/src/i3s-server/{app.js → app.ts} +11 -9
- package/src/i3s-server/bin/www.ts +38 -0
- package/src/i3s-server/controllers/{index-controller.js → index-controller.ts} +10 -9
- package/src/i3s-server/controllers/slpk-controller.ts +32 -0
- package/src/i3s-server/routes/{index.js → index.ts} +2 -1
- package/src/i3s-server/routes/{slpk-router.js → slpk-router.ts} +5 -10
- package/src/i3s-server/utils/create-scene-server.ts +20 -0
- package/src/i3s-server/utils/server-utils.ts +70 -0
- package/src/lib/utils/cli-utils.ts +78 -0
- package/src/lib/utils/compress-util.ts +1 -1
- package/src/lib/utils/lod-conversion-utils.ts +10 -6
- package/src/pgm-loader.ts +15 -7
- package/src/slpk-extractor/slpk-extractor.ts +101 -0
- package/src/slpk-extractor-cli.ts +128 -0
- package/dist/3d-tiles-attributes-worker.d.ts +0 -28
- package/dist/3d-tiles-attributes-worker.d.ts.map +0 -1
- package/dist/3d-tiles-attributes-worker.js +0 -3
- package/dist/3d-tiles-attributes-worker.js.map +0 -7
- package/dist/3d-tiles-converter/3d-tiles-converter.js +0 -288
- package/dist/3d-tiles-converter/helpers/b3dm-converter.js +0 -269
- package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +0 -23
- package/dist/3d-tiles-converter/helpers/texture-atlas.js +0 -52
- package/dist/3d-tiles-converter/json-templates/tileset.js +0 -43
- package/dist/bundle.js +0 -5
- package/dist/constants.js +0 -4
- package/dist/converter-cli.js +0 -280
- package/dist/deps-installer/deps-installer.js +0 -63
- package/dist/es5/3d-tiles-attributes-worker.js +0 -25
- package/dist/es5/3d-tiles-attributes-worker.js.map +0 -1
- package/dist/es5/i3s-attributes-worker.js +0 -25
- package/dist/es5/i3s-attributes-worker.js.map +0 -1
- package/dist/es5/i3s-server/bin/www +0 -102
- package/dist/es5/workers/3d-tiles-attributes-worker.js +0 -28
- package/dist/es5/workers/3d-tiles-attributes-worker.js.map +0 -1
- package/dist/es5/workers/i3s-attributes-worker.js +0 -30
- package/dist/es5/workers/i3s-attributes-worker.js.map +0 -1
- package/dist/esm/3d-tiles-attributes-worker.js +0 -16
- package/dist/esm/3d-tiles-attributes-worker.js.map +0 -1
- package/dist/esm/i3s-attributes-worker.js +0 -16
- package/dist/esm/i3s-attributes-worker.js.map +0 -1
- package/dist/esm/i3s-server/bin/www +0 -102
- package/dist/esm/workers/3d-tiles-attributes-worker.js +0 -8
- package/dist/esm/workers/3d-tiles-attributes-worker.js.map +0 -1
- package/dist/esm/workers/i3s-attributes-worker.js +0 -7
- package/dist/esm/workers/i3s-attributes-worker.js.map +0 -1
- package/dist/i3s-attributes-worker.d.ts +0 -45
- package/dist/i3s-attributes-worker.d.ts.map +0 -1
- package/dist/i3s-attributes-worker.js +0 -9
- package/dist/i3s-attributes-worker.js.map +0 -7
- package/dist/i3s-converter/helpers/batch-ids-extensions.js +0 -138
- package/dist/i3s-converter/helpers/coordinate-converter.js +0 -123
- package/dist/i3s-converter/helpers/create-scene-server-path.js +0 -28
- package/dist/i3s-converter/helpers/feature-attributes.js +0 -216
- package/dist/i3s-converter/helpers/geometry-attributes.js +0 -202
- package/dist/i3s-converter/helpers/geometry-converter.js +0 -1225
- package/dist/i3s-converter/helpers/gltf-attributes.js +0 -128
- package/dist/i3s-converter/helpers/load-3d-tiles.js +0 -53
- package/dist/i3s-converter/helpers/node-debug.js +0 -120
- package/dist/i3s-converter/helpers/node-index-document.js +0 -268
- package/dist/i3s-converter/helpers/node-pages.js +0 -316
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +0 -76
- package/dist/i3s-converter/helpers/tileset-traversal.js +0 -29
- package/dist/i3s-converter/i3s-converter.js +0 -911
- package/dist/i3s-converter/json-templates/geometry-definitions.js +0 -87
- package/dist/i3s-converter/json-templates/layers.js +0 -139
- package/dist/i3s-converter/json-templates/metadata.js +0 -25
- package/dist/i3s-converter/json-templates/node.js +0 -89
- package/dist/i3s-converter/json-templates/scene-server.js +0 -31
- package/dist/i3s-converter/json-templates/shared-resources.js +0 -129
- package/dist/i3s-converter/json-templates/store.js +0 -103
- package/dist/i3s-converter/types.js +0 -17
- package/dist/i3s-server/app.js +0 -22
- package/dist/i3s-server/controllers/index-controller.js +0 -23
- package/dist/i3s-server/controllers/slpk-controller.js +0 -32
- package/dist/i3s-server/routes/index.js +0 -16
- package/dist/i3s-server/routes/slpk-router.js +0 -33
- package/dist/i3s-server/utils/create-scene-server.js +0 -14
- package/dist/index.js +0 -10
- package/dist/lib/utils/compress-util.js +0 -257
- package/dist/lib/utils/file-utils.js +0 -139
- package/dist/lib/utils/geometry-utils.js +0 -18
- package/dist/lib/utils/lod-conversion-utils.js +0 -76
- package/dist/lib/utils/queue.js +0 -18
- package/dist/lib/utils/statistic-utills.js +0 -64
- package/dist/lib/utils/write-queue.js +0 -80
- package/dist/pgm-loader.js +0 -24
- package/dist/workers/3d-tiles-attributes-worker.d.ts +0 -2
- package/dist/workers/3d-tiles-attributes-worker.d.ts.map +0 -1
- package/dist/workers/3d-tiles-attributes-worker.js +0 -9
- package/dist/workers/i3s-attributes-worker.d.ts +0 -2
- package/dist/workers/i3s-attributes-worker.d.ts.map +0 -1
- package/dist/workers/i3s-attributes-worker.js +0 -5
- package/src/3d-tiles-attributes-worker.ts +0 -43
- package/src/i3s-attributes-worker.ts +0 -59
- package/src/i3s-server/bin/www +0 -102
- package/src/i3s-server/controllers/slpk-controller.js +0 -38
- package/src/i3s-server/utils/create-scene-server.js +0 -15
- package/src/workers/3d-tiles-attributes-worker.ts +0 -6
- package/src/workers/i3s-attributes-worker.ts +0 -7
|
@@ -1,316 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const path_1 = require("path");
|
|
7
|
-
const json_map_transform_1 = __importDefault(require("json-map-transform"));
|
|
8
|
-
const metadata_1 = require("../json-templates/metadata");
|
|
9
|
-
const file_utils_1 = require("../../lib/utils/file-utils");
|
|
10
|
-
/**
|
|
11
|
-
* class NodePages - wrapper of nodePages array
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* import {writeFile} from './helpers/write-file';
|
|
15
|
-
*
|
|
16
|
-
* // create an instance of the class
|
|
17
|
-
* const nodePages = new NodePages(writeFile, HARDCODED_NODES_PER_PAGE);
|
|
18
|
-
* ...
|
|
19
|
-
* // push root node
|
|
20
|
-
* const parent = await nodePages.push({
|
|
21
|
-
lodThreshold: HARDCODED_MAX_SCREEN_THRESHOLD_SQ,
|
|
22
|
-
obb: coordinates.obb,
|
|
23
|
-
children: []
|
|
24
|
-
});
|
|
25
|
-
* ...
|
|
26
|
-
* // push node with parent relation
|
|
27
|
-
* const nodeInPage = {
|
|
28
|
-
lodThreshold: HARDCODED_MAX_SCREEN_THRESHOLD_SQ,
|
|
29
|
-
obb: coordinates.obb,
|
|
30
|
-
children: [],
|
|
31
|
-
mesh: {
|
|
32
|
-
geometry: {
|
|
33
|
-
definition: 0
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
* const node = await this.nodePages.push(nodeInPage, parent.index);
|
|
38
|
-
* ...
|
|
39
|
-
* // save all the nodePages in the end of pushing all the nodes
|
|
40
|
-
* await this.nodePages.save(layers0path);
|
|
41
|
-
*/
|
|
42
|
-
class NodePages {
|
|
43
|
-
/**
|
|
44
|
-
* @constructs
|
|
45
|
-
* Create a nodePages instance.
|
|
46
|
-
* @param writeFileFunc - function to save one nodePage into a file
|
|
47
|
-
* @param nodesPerPage - length limit for one nodePage. An additional nodePage is created when this limit is met
|
|
48
|
-
*/
|
|
49
|
-
constructor(writeFileFunc, nodesPerPage, converter) {
|
|
50
|
-
this.length = 0;
|
|
51
|
-
this.nodesPerPage = nodesPerPage;
|
|
52
|
-
this.nodesCounter = 0;
|
|
53
|
-
// @ts-expect-error
|
|
54
|
-
this.nodePages = [{}];
|
|
55
|
-
this.nodePages[0].nodes = [];
|
|
56
|
-
this.writeFile = writeFileFunc;
|
|
57
|
-
this.converter = converter;
|
|
58
|
-
this.length = 0;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Setup function to save node pages
|
|
62
|
-
* @param func - function which should be used to save node pages
|
|
63
|
-
*/
|
|
64
|
-
useWriteFunction(func) {
|
|
65
|
-
this.writeFile = func;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Get file path and file name of the node page with the particular id
|
|
69
|
-
* @param nodePageId - node page id
|
|
70
|
-
* @returns file path and file name
|
|
71
|
-
*/
|
|
72
|
-
getNodePageFileName(nodePageId) {
|
|
73
|
-
let filePath;
|
|
74
|
-
let fileName;
|
|
75
|
-
if (this.converter.options.slpk) {
|
|
76
|
-
filePath = (0, path_1.join)(this.converter.layers0Path, 'nodepages');
|
|
77
|
-
fileName = `${nodePageId.toString()}.json`;
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
filePath = (0, path_1.join)(this.converter.layers0Path, 'nodepages', nodePageId.toString());
|
|
81
|
-
fileName = 'index.json';
|
|
82
|
-
}
|
|
83
|
-
return { filePath, fileName };
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Load node page from a file on the disk
|
|
87
|
-
* @param nodePageId - node page id
|
|
88
|
-
* @returns - node page data
|
|
89
|
-
*/
|
|
90
|
-
async loadNodePage(nodePageId) {
|
|
91
|
-
const { filePath, fileName } = this.getNodePageFileName(nodePageId);
|
|
92
|
-
const fullName = (0, path_1.join)(filePath, fileName);
|
|
93
|
-
if (await (0, file_utils_1.isFileExists)(fullName)) {
|
|
94
|
-
console.log(`load ${fullName}.`); // eslint-disable-line
|
|
95
|
-
return (await (0, file_utils_1.openJson)(filePath, fileName));
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
return { nodes: [] };
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Get nodepage id by node id
|
|
103
|
-
* @param id node id
|
|
104
|
-
* @returns node page id
|
|
105
|
-
*/
|
|
106
|
-
getPageIndexByNodeId(id) {
|
|
107
|
-
return Math.floor(id / this.nodesPerPage);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Get node page data by node id
|
|
111
|
-
* @param id node id
|
|
112
|
-
* @returns node page data
|
|
113
|
-
*/
|
|
114
|
-
async getPageByNodeId(id) {
|
|
115
|
-
const pageIndex = this.getPageIndexByNodeId(id);
|
|
116
|
-
if (this.converter.options.instantNodeWriting) {
|
|
117
|
-
return await this.loadNodePage(pageIndex);
|
|
118
|
-
}
|
|
119
|
-
return this.nodePages[pageIndex];
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Get the node by its end-to-end index
|
|
123
|
-
* @param id - end-to-end index of the node
|
|
124
|
-
* @return the node object
|
|
125
|
-
*/
|
|
126
|
-
async getNodeById(id, nodePage) {
|
|
127
|
-
const nodeIndex = id % this.nodesPerPage;
|
|
128
|
-
nodePage = nodePage || (await this.getPageByNodeId(id));
|
|
129
|
-
return nodePage.nodes[nodeIndex];
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Add a child id into the parent node.children array
|
|
133
|
-
* @param parentId - end-to-end parent node index
|
|
134
|
-
* @param childId - end-to-end child node index
|
|
135
|
-
*/
|
|
136
|
-
async addChildRelation(parentId, childId) {
|
|
137
|
-
if (parentId === null || parentId === undefined) {
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
const parentNode = await this.getNodeById(parentId);
|
|
141
|
-
parentNode.children?.push(childId);
|
|
142
|
-
await this.saveNode(parentNode);
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Put new node in nodePages array
|
|
146
|
-
* @param node - node object
|
|
147
|
-
* @param parentId - index of parent node
|
|
148
|
-
* @return
|
|
149
|
-
*/
|
|
150
|
-
async push(node, parentId) {
|
|
151
|
-
node.index = this.nodesCounter++;
|
|
152
|
-
if (!this.converter.options.instantNodeWriting) {
|
|
153
|
-
let currentNodePage = this.nodePages[this.nodePages.length - 1];
|
|
154
|
-
if (currentNodePage.nodes.length === this.nodesPerPage) {
|
|
155
|
-
currentNodePage = { nodes: [] };
|
|
156
|
-
this.nodePages.push(currentNodePage);
|
|
157
|
-
}
|
|
158
|
-
currentNodePage.nodes.push(node);
|
|
159
|
-
}
|
|
160
|
-
await this.addChildRelation(parentId, node.index);
|
|
161
|
-
NodePages.updateResourceInMesh(node);
|
|
162
|
-
await this.saveNode(node);
|
|
163
|
-
return node;
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Save node to the file on the disk
|
|
167
|
-
* @param node - node data
|
|
168
|
-
*/
|
|
169
|
-
async saveNode(node) {
|
|
170
|
-
if (!this.converter.options.instantNodeWriting) {
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
const nodePageIndex = this.getPageIndexByNodeId(node.index);
|
|
175
|
-
const nodePage = await this.getPageByNodeId(node.index);
|
|
176
|
-
const { filePath, fileName } = this.getNodePageFileName(nodePageIndex);
|
|
177
|
-
const nodeToUpdate = await this.getNodeById(node.index, nodePage);
|
|
178
|
-
if (nodeToUpdate) {
|
|
179
|
-
NodePages.updateAll(nodeToUpdate, node);
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
nodePage.nodes.push(node);
|
|
183
|
-
}
|
|
184
|
-
const nodePageStr = JSON.stringify(nodePage);
|
|
185
|
-
if (this.converter.options.slpk) {
|
|
186
|
-
await this.converter.writeQueue.enqueue({
|
|
187
|
-
archiveKey: `nodePages/${nodePageIndex.toString()}.json.gz`,
|
|
188
|
-
writePromise: () => this.writeFile(filePath, nodePageStr, fileName, true, this.converter.compressList)
|
|
189
|
-
}, true);
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
await this.converter.writeQueue.enqueue({
|
|
193
|
-
writePromise: () => this.writeFile(filePath, nodePageStr)
|
|
194
|
-
}, true);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Save metadata file (for slpk only)
|
|
200
|
-
*/
|
|
201
|
-
async saveMetadata() {
|
|
202
|
-
const metadata = (0, json_map_transform_1.default)({ nodeCount: this.nodesCounter }, (0, metadata_1.METADATA)());
|
|
203
|
-
const compress = false;
|
|
204
|
-
await this.converter.writeQueue.enqueue({
|
|
205
|
-
archiveKey: 'metadata.json',
|
|
206
|
-
writePromise: () => this.writeFile(this.converter.layers0Path, JSON.stringify(metadata), 'metadata.json', compress)
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Save all the node pages
|
|
211
|
-
* Run this method when all nodes is pushed in nodePages
|
|
212
|
-
*/
|
|
213
|
-
async save() {
|
|
214
|
-
if (this.converter.options.instantNodeWriting) {
|
|
215
|
-
await this.saveMetadata();
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
if (this.converter.options.slpk) {
|
|
219
|
-
for (const [index, nodePage] of this.nodePages.entries()) {
|
|
220
|
-
const nodePageStr = JSON.stringify(nodePage);
|
|
221
|
-
const slpkPath = (0, path_1.join)(this.converter.layers0Path, 'nodepages');
|
|
222
|
-
await this.converter.writeQueue.enqueue({
|
|
223
|
-
archiveKey: `nodePages/${index.toString()}.json.gz`,
|
|
224
|
-
writePromise: () => this.writeFile(slpkPath, nodePageStr, `${index.toString()}.json`)
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
await this.saveMetadata();
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
for (const [index, nodePage] of this.nodePages.entries()) {
|
|
231
|
-
const nodePageStr = JSON.stringify(nodePage);
|
|
232
|
-
const nodePagePath = (0, path_1.join)(this.converter.layers0Path, 'nodepages', index.toString());
|
|
233
|
-
await this.converter.writeQueue.enqueue({
|
|
234
|
-
writePromise: () => this.writeFile(nodePagePath, nodePageStr)
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* Update resource index in node.mesh object
|
|
241
|
-
* @param node - node object
|
|
242
|
-
*/
|
|
243
|
-
static updateResourceInMesh(node) {
|
|
244
|
-
if (node.mesh && isFinite(node.index)) {
|
|
245
|
-
node.mesh.geometry.resource = node.index;
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Update all fields in the node excluding id
|
|
250
|
-
* @param node - node object
|
|
251
|
-
* @param data - NodeInPage data to replace original data
|
|
252
|
-
*/
|
|
253
|
-
static updateAll(node, data) {
|
|
254
|
-
Object.assign(node, data, { index: node.index });
|
|
255
|
-
NodePages.updateResourceInMesh(node);
|
|
256
|
-
return node;
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* Update material in node.mesh object by node id
|
|
260
|
-
* @param id - end-to-end index of the node
|
|
261
|
-
* @param materialId - id from scene layer materialDefinitions
|
|
262
|
-
*/
|
|
263
|
-
static updateMaterialByNodeId(node, materialId) {
|
|
264
|
-
if (!node.mesh) {
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
node.mesh.material = {
|
|
268
|
-
definition: materialId,
|
|
269
|
-
resource: node.index
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Update vertexCount in node.mesh.geometry object by node id
|
|
274
|
-
* @param id - end-to-end index of the node
|
|
275
|
-
* @param vertexCount - vertex count for particular node
|
|
276
|
-
*/
|
|
277
|
-
static updateVertexCountByNodeId(node, vertexCount) {
|
|
278
|
-
if (!node.mesh) {
|
|
279
|
-
return;
|
|
280
|
-
}
|
|
281
|
-
node.mesh.geometry.vertexCount = vertexCount;
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* Update resource in node.mesh.attribute object by node id
|
|
285
|
-
* @param node - node object
|
|
286
|
-
*/
|
|
287
|
-
static updateNodeAttributeByNodeId(node) {
|
|
288
|
-
if (!node.mesh || !node.index) {
|
|
289
|
-
return;
|
|
290
|
-
}
|
|
291
|
-
node.mesh.attribute.resource = node.index;
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Update featureCount in node.mesh.geometry object by node id
|
|
295
|
-
* @param node - node object
|
|
296
|
-
* @param featureCount - features count of the node
|
|
297
|
-
*/
|
|
298
|
-
static updateFeatureCountByNodeId(node, featureCount) {
|
|
299
|
-
if (!node.mesh) {
|
|
300
|
-
return;
|
|
301
|
-
}
|
|
302
|
-
node.mesh.geometry.featureCount = featureCount;
|
|
303
|
-
}
|
|
304
|
-
/**
|
|
305
|
-
* Update texelCountHint in node.mesh.material object by node id
|
|
306
|
-
* @param node - node object
|
|
307
|
-
* @param texelCountHint - texelCountHint of particular node
|
|
308
|
-
*/
|
|
309
|
-
static updateTexelCountHintByNodeId(node, texelCountHint) {
|
|
310
|
-
if (!node.mesh || !node.mesh.material) {
|
|
311
|
-
return;
|
|
312
|
-
}
|
|
313
|
-
node.mesh.material.texelCountHint = texelCountHint;
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
exports.default = NodePages;
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mergePreprocessData = exports.analyzeTileContent = exports.GLTF_PRIMITIVE_MODES = void 0;
|
|
4
|
-
const types_1 = require("../types");
|
|
5
|
-
const gltf_1 = require("@loaders.gl/gltf");
|
|
6
|
-
const core_1 = require("@loaders.gl/core");
|
|
7
|
-
/**
|
|
8
|
-
* glTF primitive modes
|
|
9
|
-
* @see https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_mesh_primitive_mode
|
|
10
|
-
*/
|
|
11
|
-
exports.GLTF_PRIMITIVE_MODES = [
|
|
12
|
-
types_1.GltfPrimitiveModeString.POINTS,
|
|
13
|
-
types_1.GltfPrimitiveModeString.LINES,
|
|
14
|
-
types_1.GltfPrimitiveModeString.LINE_LOOP,
|
|
15
|
-
types_1.GltfPrimitiveModeString.LINE_STRIP,
|
|
16
|
-
types_1.GltfPrimitiveModeString.TRIANGLES,
|
|
17
|
-
types_1.GltfPrimitiveModeString.TRIANGLE_STRIP,
|
|
18
|
-
types_1.GltfPrimitiveModeString.TRIANGLE_FAN // 6
|
|
19
|
-
];
|
|
20
|
-
/**
|
|
21
|
-
* Analyze tile content. This function is used during preprocess stage of
|
|
22
|
-
* conversion
|
|
23
|
-
* @param tile - 3DTiles tile JSON metadata
|
|
24
|
-
* @param tileContent - 3DTiles tile content ArrayBuffer
|
|
25
|
-
* @returns
|
|
26
|
-
*/
|
|
27
|
-
const analyzeTileContent = async (tile, tileContent) => {
|
|
28
|
-
const result = {
|
|
29
|
-
meshTopologyTypes: new Set()
|
|
30
|
-
};
|
|
31
|
-
if (!tileContent?.gltfArrayBuffer) {
|
|
32
|
-
return result;
|
|
33
|
-
}
|
|
34
|
-
const gltfData = await (0, core_1.parse)(tileContent.gltfArrayBuffer, gltf_1.GLTFLoader, {
|
|
35
|
-
gltf: { normalize: false, loadBuffers: false, loadImages: false, decompressMeshes: false }
|
|
36
|
-
});
|
|
37
|
-
const gltf = gltfData.json;
|
|
38
|
-
if (!gltf) {
|
|
39
|
-
return result;
|
|
40
|
-
}
|
|
41
|
-
const meshTypes = getMeshTypesFromGltf(gltf);
|
|
42
|
-
result.meshTopologyTypes = meshTypes;
|
|
43
|
-
return result;
|
|
44
|
-
};
|
|
45
|
-
exports.analyzeTileContent = analyzeTileContent;
|
|
46
|
-
/**
|
|
47
|
-
* Get mesh topology types that the glb content has
|
|
48
|
-
* @param gltfJson - JSON part of GLB content
|
|
49
|
-
* @returns array of mesh types found
|
|
50
|
-
*/
|
|
51
|
-
const getMeshTypesFromGltf = (gltfJson) => {
|
|
52
|
-
const result = new Set();
|
|
53
|
-
for (const mesh of gltfJson.meshes || []) {
|
|
54
|
-
for (const primitive of mesh.primitives) {
|
|
55
|
-
let { mode } = primitive;
|
|
56
|
-
if (typeof mode !== 'number') {
|
|
57
|
-
mode = 4; // Default is 4 - TRIANGLES
|
|
58
|
-
}
|
|
59
|
-
result.add(exports.GLTF_PRIMITIVE_MODES[mode]);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return result;
|
|
63
|
-
};
|
|
64
|
-
/**
|
|
65
|
-
* Merge object2 into object1
|
|
66
|
-
* @param object1
|
|
67
|
-
* @param object2
|
|
68
|
-
* @returns nothing
|
|
69
|
-
*/
|
|
70
|
-
const mergePreprocessData = (object1, object2) => {
|
|
71
|
-
// Merge topology mesh types info
|
|
72
|
-
for (const type of object2.meshTopologyTypes) {
|
|
73
|
-
object1.meshTopologyTypes.add(type);
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
exports.mergePreprocessData = mergePreprocessData;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.traverseDatasetWith = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Travesal of 3DTile tiles tree with making specific actions with each tile
|
|
6
|
-
* @param tile - 3DTiles tile JSON metadata
|
|
7
|
-
* @param traversalProps - traversal props used to pass data through recursive calls
|
|
8
|
-
* @param processTile - callback to make some actions with the current tile
|
|
9
|
-
* @param postprocessTile - callback to make some action after processing of the current tile and all the subtree
|
|
10
|
-
* @param maxDepth - max recursive calls number the travesal function will do. If not set, the traversal function will
|
|
11
|
-
* go through all the tree.
|
|
12
|
-
* This value is used to limit the convertion with only partial number of levels of the tileset
|
|
13
|
-
* @param level - counter to keep recursive calls number of the tiles tree. This value used to be able to break
|
|
14
|
-
* traversal at the some level of the tree
|
|
15
|
-
* @returns void
|
|
16
|
-
*/
|
|
17
|
-
const traverseDatasetWith = async (tile, traversalProps, processTile, postprocessTile, maxDepth, level = 0) => {
|
|
18
|
-
if (maxDepth && level > maxDepth) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
const processResults = [];
|
|
22
|
-
const newTraversalProps = await processTile(tile, traversalProps);
|
|
23
|
-
processResults.push(newTraversalProps);
|
|
24
|
-
for (const childTile of tile.children) {
|
|
25
|
-
await (0, exports.traverseDatasetWith)(childTile, newTraversalProps, processTile, postprocessTile, maxDepth, level + 1);
|
|
26
|
-
}
|
|
27
|
-
postprocessTile && (await postprocessTile(processResults, traversalProps));
|
|
28
|
-
};
|
|
29
|
-
exports.traverseDatasetWith = traverseDatasetWith;
|