@loaders.gl/tile-converter 4.0.0-alpha.1 → 4.0.0-alpha.10
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/converter.js +1 -1
- package/dist/3d-tiles-attributes-worker.d.ts +28 -0
- package/dist/3d-tiles-attributes-worker.d.ts.map +1 -0
- package/dist/3d-tiles-attributes-worker.js +3 -0
- package/dist/3d-tiles-attributes-worker.js.map +7 -0
- package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +90 -0
- package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -0
- package/dist/3d-tiles-converter/3d-tiles-converter.js +275 -226
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +71 -18
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -0
- package/dist/3d-tiles-converter/helpers/b3dm-converter.js +256 -236
- package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +4 -7
- package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts.map +1 -0
- package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +22 -9
- package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts +9 -0
- package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts.map +1 -0
- package/dist/3d-tiles-converter/helpers/texture-atlas.js +47 -28
- package/dist/3d-tiles-converter/json-templates/tileset.d.ts +15 -0
- package/dist/3d-tiles-converter/json-templates/tileset.d.ts.map +1 -0
- package/dist/3d-tiles-converter/json-templates/tileset.js +42 -36
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +2 -2
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +4 -0
- package/dist/converter-cli.d.ts +2 -0
- package/dist/converter-cli.d.ts.map +1 -0
- package/dist/converter-cli.js +280 -0
- package/dist/converter.min.js +185 -190
- package/dist/deps-installer/deps-installer.d.ts +11 -3
- package/dist/deps-installer/deps-installer.d.ts.map +1 -0
- package/dist/deps-installer/deps-installer.js +61 -23
- package/dist/dist.min.js +64143 -0
- package/dist/es5/3d-tiles-attributes-worker.js +25 -0
- package/dist/es5/3d-tiles-attributes-worker.js.map +1 -0
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +467 -0
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +293 -0
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -0
- package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +18 -0
- package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -0
- package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +33 -0
- package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
- package/dist/es5/3d-tiles-converter/json-templates/tileset.js +61 -0
- package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +1 -0
- package/dist/es5/bundle.js +6 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/constants.js +9 -0
- package/dist/es5/constants.js.map +1 -0
- package/dist/es5/converter-cli.js +289 -0
- package/dist/es5/converter-cli.js.map +1 -0
- package/dist/es5/deps-installer/deps-installer.js +124 -0
- package/dist/es5/deps-installer/deps-installer.js.map +1 -0
- package/dist/es5/i3s-attributes-worker.js +25 -0
- package/dist/es5/i3s-attributes-worker.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +116 -0
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js +89 -0
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +41 -0
- package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/feature-attributes.js +174 -0
- package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js +213 -0
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +1192 -0
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js +113 -0
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/load-3d-tiles.js +82 -0
- package/dist/es5/i3s-converter/helpers/load-3d-tiles.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/node-debug.js +76 -0
- package/dist/es5/i3s-converter/helpers/node-debug.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/node-index-document.js +521 -0
- package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/node-pages.js +519 -0
- package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +111 -0
- package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/tileset-traversal.js +82 -0
- package/dist/es5/i3s-converter/helpers/tileset-traversal.js.map +1 -0
- package/dist/es5/i3s-converter/i3s-converter.js +1541 -0
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -0
- package/dist/es5/i3s-converter/json-templates/geometry-definitions.js +107 -0
- package/dist/es5/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
- package/dist/es5/i3s-converter/json-templates/layers.js +163 -0
- package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -0
- package/dist/es5/i3s-converter/json-templates/metadata.js +31 -0
- package/dist/es5/i3s-converter/json-templates/metadata.js.map +1 -0
- package/dist/es5/i3s-converter/json-templates/node.js +99 -0
- package/dist/es5/i3s-converter/json-templates/node.js.map +1 -0
- package/dist/es5/i3s-converter/json-templates/scene-server.js +39 -0
- package/dist/es5/i3s-converter/json-templates/scene-server.js.map +1 -0
- package/dist/es5/i3s-converter/json-templates/shared-resources.js +173 -0
- package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -0
- package/dist/es5/i3s-converter/json-templates/store.js +107 -0
- package/dist/es5/i3s-converter/json-templates/store.js.map +1 -0
- package/dist/es5/i3s-converter/types.js +18 -0
- package/dist/es5/i3s-converter/types.js.map +1 -0
- package/dist/es5/i3s-server/README.md +19 -0
- package/dist/es5/i3s-server/app.js +27 -0
- package/dist/es5/i3s-server/app.js.map +1 -0
- package/dist/es5/i3s-server/controllers/index-controller.js +55 -0
- package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -0
- package/dist/es5/i3s-server/controllers/slpk-controller.js +84 -0
- package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -0
- package/dist/es5/i3s-server/routes/index.js +37 -0
- package/dist/es5/i3s-server/routes/index.js.map +1 -0
- package/dist/es5/i3s-server/routes/slpk-router.js +71 -0
- package/dist/es5/i3s-server/routes/slpk-router.js.map +1 -0
- package/dist/es5/i3s-server/utils/create-scene-server.js +17 -0
- package/dist/es5/i3s-server/utils/create-scene-server.js.map +1 -0
- package/dist/es5/index.js +21 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/lib/utils/compress-util.js +346 -0
- package/dist/es5/lib/utils/compress-util.js.map +1 -0
- package/dist/es5/lib/utils/file-utils.js +208 -0
- package/dist/es5/lib/utils/file-utils.js.map +1 -0
- package/dist/es5/lib/utils/geometry-utils.js +15 -0
- package/dist/es5/lib/utils/geometry-utils.js.map +1 -0
- package/dist/es5/lib/utils/lod-conversion-utils.js +44 -0
- package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -0
- package/dist/es5/lib/utils/queue.js +47 -0
- package/dist/es5/lib/utils/queue.js.map +1 -0
- package/dist/es5/lib/utils/statistic-utills.d.ts +25 -0
- package/dist/es5/lib/utils/statistic-utills.js +147 -0
- package/dist/es5/lib/utils/statistic-utills.js.map +1 -0
- package/dist/es5/lib/utils/write-queue.js +214 -0
- package/dist/es5/lib/utils/write-queue.js.map +1 -0
- package/dist/es5/pgm-loader.js +41 -0
- package/dist/es5/pgm-loader.js.map +1 -0
- package/dist/es5/workers/3d-tiles-attributes-worker.js +28 -0
- package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -0
- package/dist/es5/workers/i3s-attributes-worker.js +30 -0
- package/dist/es5/workers/i3s-attributes-worker.js.map +1 -0
- package/dist/esm/3d-tiles-attributes-worker.js +16 -0
- package/dist/esm/3d-tiles-attributes-worker.js.map +1 -0
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +245 -0
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +218 -0
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -0
- package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +10 -0
- package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -0
- package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js +27 -0
- package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
- package/dist/esm/3d-tiles-converter/json-templates/tileset.js +37 -0
- package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +1 -0
- package/dist/esm/bundle.js +4 -0
- package/dist/esm/bundle.js.map +1 -0
- package/dist/esm/constants.js +2 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/converter-cli.js +232 -0
- package/dist/esm/converter-cli.js.map +1 -0
- package/dist/esm/deps-installer/deps-installer.js +45 -0
- package/dist/esm/deps-installer/deps-installer.js.map +1 -0
- package/dist/esm/i3s-attributes-worker.js +16 -0
- package/dist/esm/i3s-attributes-worker.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +105 -0
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js +79 -0
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/create-scene-server-path.js +16 -0
- package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/feature-attributes.js +147 -0
- package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -0
- package/{src → dist/esm}/i3s-converter/helpers/geometry-attributes.js +80 -106
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +906 -0
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js +110 -0
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/load-3d-tiles.js +35 -0
- package/dist/esm/i3s-converter/helpers/load-3d-tiles.js.map +1 -0
- package/{src → dist/esm}/i3s-converter/helpers/node-debug.js +20 -41
- package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/node-index-document.js +201 -0
- package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/node-pages.js +206 -0
- package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js +48 -0
- package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/tileset-traversal.js +14 -0
- package/dist/esm/i3s-converter/helpers/tileset-traversal.js.map +1 -0
- package/dist/esm/i3s-converter/i3s-converter.js +778 -0
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -0
- package/dist/esm/i3s-converter/json-templates/geometry-definitions.js +89 -0
- package/dist/esm/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
- package/dist/esm/i3s-converter/json-templates/layers.js +133 -0
- package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -0
- package/dist/esm/i3s-converter/json-templates/metadata.js +22 -0
- package/dist/esm/i3s-converter/json-templates/metadata.js.map +1 -0
- package/dist/esm/i3s-converter/json-templates/node.js +80 -0
- package/dist/esm/i3s-converter/json-templates/node.js.map +1 -0
- package/dist/esm/i3s-converter/json-templates/scene-server.js +28 -0
- package/dist/esm/i3s-converter/json-templates/scene-server.js.map +1 -0
- package/dist/esm/i3s-converter/json-templates/shared-resources.js +123 -0
- package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -0
- package/dist/esm/i3s-converter/json-templates/store.js +98 -0
- package/dist/esm/i3s-converter/json-templates/store.js.map +1 -0
- package/dist/esm/i3s-converter/types.js +11 -0
- package/dist/esm/i3s-converter/types.js.map +1 -0
- package/dist/esm/i3s-server/README.md +19 -0
- package/dist/esm/i3s-server/app.js +26 -0
- package/dist/esm/i3s-server/app.js.map +1 -0
- package/dist/esm/i3s-server/bin/www +102 -0
- package/dist/esm/i3s-server/certs/cert.pem +19 -0
- package/dist/esm/i3s-server/certs/key.pem +27 -0
- package/dist/esm/i3s-server/controllers/index-controller.js +24 -0
- package/dist/esm/i3s-server/controllers/index-controller.js.map +1 -0
- package/dist/esm/i3s-server/controllers/slpk-controller.js +36 -0
- package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -0
- package/dist/esm/i3s-server/routes/index.js +16 -0
- package/dist/esm/i3s-server/routes/index.js.map +1 -0
- package/dist/esm/i3s-server/routes/slpk-router.js +33 -0
- package/dist/esm/i3s-server/routes/slpk-router.js.map +1 -0
- package/dist/esm/i3s-server/utils/create-scene-server.js +16 -0
- package/dist/esm/i3s-server/utils/create-scene-server.js.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/utils/compress-util.js +168 -0
- package/dist/esm/lib/utils/compress-util.js.map +1 -0
- package/dist/esm/lib/utils/file-utils.js +87 -0
- package/dist/esm/lib/utils/file-utils.js.map +1 -0
- package/dist/esm/lib/utils/geometry-utils.js +8 -0
- package/dist/esm/lib/utils/geometry-utils.js.map +1 -0
- package/dist/esm/lib/utils/lod-conversion-utils.js +37 -0
- package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -0
- package/dist/esm/lib/utils/queue.js +15 -0
- package/dist/esm/lib/utils/queue.js.map +1 -0
- package/dist/esm/lib/utils/statistic-utills.d.ts +25 -0
- package/dist/esm/lib/utils/statistic-utills.js +62 -0
- package/dist/esm/lib/utils/statistic-utills.js.map +1 -0
- package/dist/esm/lib/utils/write-queue.js +85 -0
- package/dist/esm/lib/utils/write-queue.js.map +1 -0
- package/dist/esm/pgm-loader.js +15 -0
- package/dist/esm/pgm-loader.js.map +1 -0
- package/dist/esm/workers/3d-tiles-attributes-worker.js +8 -0
- package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -0
- package/dist/esm/workers/i3s-attributes-worker.js +7 -0
- package/dist/esm/workers/i3s-attributes-worker.js.map +1 -0
- package/dist/i3s-attributes-worker.d.ts +45 -0
- package/dist/i3s-attributes-worker.d.ts.map +1 -0
- package/dist/i3s-attributes-worker.js +9 -0
- package/dist/i3s-attributes-worker.js.map +7 -0
- package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +13 -0
- package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/batch-ids-extensions.js +138 -0
- package/dist/i3s-converter/helpers/coordinate-converter.d.ts +40 -0
- package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/coordinate-converter.js +119 -42
- package/dist/i3s-converter/helpers/create-scene-server-path.d.ts +9 -0
- package/dist/i3s-converter/helpers/create-scene-server-path.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/create-scene-server-path.js +27 -15
- package/dist/i3s-converter/helpers/feature-attributes.d.ts +56 -0
- package/dist/i3s-converter/helpers/feature-attributes.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/feature-attributes.js +216 -0
- package/dist/i3s-converter/helpers/geometry-attributes.d.ts +8 -0
- package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/geometry-attributes.js +188 -185
- package/dist/i3s-converter/helpers/geometry-converter.d.ts +41 -35
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/geometry-converter.js +1179 -650
- package/dist/i3s-converter/helpers/gltf-attributes.d.ts +28 -0
- package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/gltf-attributes.js +128 -0
- package/dist/i3s-converter/helpers/load-3d-tiles.d.ts +18 -0
- package/dist/i3s-converter/helpers/load-3d-tiles.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/load-3d-tiles.js +53 -0
- package/dist/i3s-converter/helpers/node-debug.d.ts +8 -0
- package/dist/i3s-converter/helpers/node-debug.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/node-debug.js +106 -74
- package/dist/i3s-converter/helpers/node-index-document.d.ts +103 -0
- package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/node-index-document.js +268 -0
- package/dist/i3s-converter/helpers/node-pages.d.ts +125 -113
- package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/node-pages.js +313 -133
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts +23 -0
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +76 -0
- package/dist/i3s-converter/helpers/tileset-traversal.d.ts +25 -0
- package/dist/i3s-converter/helpers/tileset-traversal.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/tileset-traversal.js +29 -0
- package/dist/i3s-converter/i3s-converter.d.ts +267 -0
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -0
- package/dist/i3s-converter/i3s-converter.js +891 -867
- package/dist/i3s-converter/json-templates/geometry-definitions.d.ts +7 -0
- package/dist/i3s-converter/json-templates/geometry-definitions.d.ts.map +1 -0
- package/dist/i3s-converter/json-templates/geometry-definitions.js +87 -0
- package/dist/i3s-converter/json-templates/layers.d.ts +70 -0
- package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -0
- package/dist/i3s-converter/json-templates/layers.js +138 -190
- package/dist/i3s-converter/json-templates/metadata.d.ts +22 -0
- package/dist/i3s-converter/json-templates/metadata.d.ts.map +1 -0
- package/dist/i3s-converter/json-templates/metadata.js +25 -22
- package/dist/i3s-converter/json-templates/node.d.ts +61 -0
- package/dist/i3s-converter/json-templates/node.d.ts.map +1 -0
- package/dist/i3s-converter/json-templates/node.js +88 -79
- package/dist/i3s-converter/json-templates/scene-server.d.ts +28 -0
- package/dist/i3s-converter/json-templates/scene-server.d.ts.map +1 -0
- package/dist/i3s-converter/json-templates/scene-server.js +31 -28
- package/dist/i3s-converter/json-templates/shared-resources.d.ts +14 -0
- package/dist/i3s-converter/json-templates/shared-resources.d.ts.map +1 -0
- package/dist/i3s-converter/json-templates/shared-resources.js +124 -125
- package/dist/i3s-converter/json-templates/store.d.ts +95 -0
- package/dist/i3s-converter/json-templates/store.d.ts.map +1 -0
- package/dist/i3s-converter/json-templates/store.js +100 -95
- package/dist/i3s-converter/types.d.ts +163 -0
- package/dist/i3s-converter/types.d.ts.map +1 -0
- package/dist/i3s-converter/types.js +17 -0
- package/dist/i3s-server/app.d.ts +3 -0
- package/dist/i3s-server/app.d.ts.map +1 -0
- package/dist/i3s-server/app.js +11 -10
- package/dist/i3s-server/controllers/index-controller.d.ts +2 -0
- package/dist/i3s-server/controllers/index-controller.d.ts.map +1 -0
- package/dist/i3s-server/controllers/index-controller.js +16 -24
- package/dist/i3s-server/controllers/slpk-controller.d.ts +3 -0
- package/dist/i3s-server/controllers/slpk-controller.d.ts.map +1 -0
- package/dist/i3s-server/controllers/slpk-controller.js +32 -0
- package/dist/i3s-server/routes/index.d.ts +3 -0
- package/dist/i3s-server/routes/index.d.ts.map +1 -0
- package/dist/i3s-server/routes/index.js +11 -15
- package/dist/i3s-server/routes/slpk-router.d.ts +3 -0
- package/dist/i3s-server/routes/slpk-router.d.ts.map +1 -0
- package/dist/i3s-server/routes/slpk-router.js +33 -0
- package/dist/i3s-server/utils/create-scene-server.d.ts +11 -0
- package/dist/i3s-server/utils/create-scene-server.d.ts.map +1 -0
- package/dist/i3s-server/utils/create-scene-server.js +14 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -5
- package/dist/lib/utils/compress-util.d.ts +45 -0
- package/dist/lib/utils/compress-util.d.ts.map +1 -0
- package/dist/lib/utils/compress-util.js +238 -160
- package/dist/lib/utils/file-utils.d.ts +22 -14
- package/dist/lib/utils/file-utils.d.ts.map +1 -0
- package/dist/lib/utils/file-utils.js +134 -36
- package/dist/lib/utils/geometry-utils.d.ts +9 -0
- package/dist/lib/utils/geometry-utils.d.ts.map +1 -0
- package/dist/lib/utils/geometry-utils.js +18 -0
- package/dist/lib/utils/lod-conversion-utils.d.ts +23 -13
- package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -0
- package/dist/lib/utils/lod-conversion-utils.js +72 -39
- package/dist/lib/utils/queue.d.ts +7 -0
- package/dist/lib/utils/queue.d.ts.map +1 -0
- package/dist/lib/utils/queue.js +18 -0
- package/dist/lib/utils/statistic-utills.d.ts +3 -25
- package/dist/lib/utils/statistic-utills.d.ts.map +1 -0
- package/dist/lib/utils/statistic-utills.js +58 -67
- package/dist/lib/utils/write-queue.d.ts +39 -0
- package/dist/lib/utils/write-queue.d.ts.map +1 -0
- package/dist/lib/utils/write-queue.js +80 -0
- package/dist/pgm-loader.d.ts +6 -0
- package/dist/pgm-loader.d.ts.map +1 -0
- package/dist/pgm-loader.js +23 -14
- package/dist/workers/3d-tiles-attributes-worker.d.ts +2 -0
- package/dist/workers/3d-tiles-attributes-worker.d.ts.map +1 -0
- package/dist/workers/3d-tiles-attributes-worker.js +9 -0
- package/dist/workers/i3s-attributes-worker.d.ts +2 -0
- package/dist/workers/i3s-attributes-worker.d.ts.map +1 -0
- package/dist/workers/i3s-attributes-worker.js +5 -0
- package/package.json +34 -24
- package/src/3d-tiles-attributes-worker.ts +43 -0
- package/src/3d-tiles-converter/3d-tiles-converter.ts +131 -63
- package/src/3d-tiles-converter/helpers/{b3dm-converter.js → b3dm-converter.ts} +72 -53
- package/src/3d-tiles-converter/helpers/{i3s-obb-to-3d-tiles-obb.js → i3s-obb-to-3d-tiles-obb.ts} +16 -1
- package/src/3d-tiles-converter/helpers/texture-atlas.ts +4 -4
- package/src/3d-tiles-converter/json-templates/{tileset.js → tileset.ts} +9 -9
- package/src/constants.ts +2 -0
- package/src/converter-cli.ts +370 -0
- package/src/deps-installer/deps-installer.ts +72 -0
- package/src/i3s-attributes-worker.ts +59 -0
- package/src/i3s-converter/helpers/batch-ids-extensions.ts +202 -0
- package/src/i3s-converter/helpers/coordinate-converter.ts +94 -33
- package/src/i3s-converter/helpers/create-scene-server-path.ts +29 -0
- package/src/i3s-converter/helpers/feature-attributes.ts +247 -0
- package/src/i3s-converter/helpers/geometry-attributes.ts +267 -0
- package/src/i3s-converter/helpers/geometry-converter.ts +1667 -0
- package/src/i3s-converter/helpers/gltf-attributes.ts +163 -0
- package/src/i3s-converter/helpers/load-3d-tiles.ts +68 -0
- package/src/i3s-converter/helpers/node-debug.ts +146 -0
- package/src/i3s-converter/helpers/node-index-document.ts +335 -0
- package/src/i3s-converter/helpers/node-pages.ts +344 -0
- package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +81 -0
- package/src/i3s-converter/helpers/tileset-traversal.ts +51 -0
- package/src/i3s-converter/i3s-converter.ts +650 -669
- package/src/i3s-converter/json-templates/geometry-definitions.ts +83 -0
- package/src/i3s-converter/json-templates/layers.ts +137 -0
- package/src/i3s-converter/json-templates/{metadata.js → metadata.ts} +2 -2
- package/src/i3s-converter/json-templates/{node.js → node.ts} +12 -12
- package/src/i3s-converter/json-templates/{scene-server.js → scene-server.ts} +2 -2
- package/src/i3s-converter/json-templates/{shared-resources.js → shared-resources.ts} +17 -17
- package/src/i3s-converter/types.ts +185 -0
- package/src/i3s-server/README.md +19 -0
- package/src/i3s-server/app.js +8 -1
- package/src/i3s-server/controllers/slpk-controller.js +38 -0
- package/src/i3s-server/routes/slpk-router.js +33 -0
- package/src/i3s-server/utils/create-scene-server.js +15 -0
- package/src/index.ts +0 -4
- package/src/lib/utils/{compress-util.js → compress-util.ts} +105 -18
- package/src/lib/utils/file-utils.ts +140 -0
- package/src/lib/utils/geometry-utils.ts +14 -0
- package/src/lib/utils/{lod-conversion-utils.js → lod-conversion-utils.ts} +31 -5
- package/src/lib/utils/queue.ts +17 -0
- package/src/lib/utils/write-queue.ts +110 -0
- package/src/pgm-loader.ts +3 -3
- package/src/workers/3d-tiles-attributes-worker.ts +6 -0
- package/src/workers/i3s-attributes-worker.ts +7 -0
- package/dist/3d-tiles-converter/3d-tiles-converter.js.map +0 -1
- package/dist/3d-tiles-converter/helpers/b3dm-converter.js.map +0 -1
- package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +0 -1
- package/dist/3d-tiles-converter/helpers/texture-atlas.js.map +0 -1
- package/dist/3d-tiles-converter/json-templates/tileset.js.map +0 -1
- package/dist/bundle.js.map +0 -1
- package/dist/deps-installer/deps-installer.js.map +0 -1
- package/dist/i3s-converter/helpers/coordinate-converter.js.map +0 -1
- package/dist/i3s-converter/helpers/create-scene-server-path.js.map +0 -1
- package/dist/i3s-converter/helpers/geometry-attributes.js.map +0 -1
- package/dist/i3s-converter/helpers/geometry-converter.js.map +0 -1
- package/dist/i3s-converter/helpers/node-debug.js.map +0 -1
- package/dist/i3s-converter/helpers/node-pages.js.map +0 -1
- package/dist/i3s-converter/i3s-converter.js.map +0 -1
- package/dist/i3s-converter/json-templates/layers.js.map +0 -1
- package/dist/i3s-converter/json-templates/metadata.js.map +0 -1
- package/dist/i3s-converter/json-templates/node.js.map +0 -1
- package/dist/i3s-converter/json-templates/scene-server.js.map +0 -1
- package/dist/i3s-converter/json-templates/shared-resources.js.map +0 -1
- package/dist/i3s-converter/json-templates/store.js.map +0 -1
- package/dist/i3s-server/app.js.map +0 -1
- package/dist/i3s-server/controllers/index-controller.js.map +0 -1
- package/dist/i3s-server/routes/index.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/geoid-height-model.d.ts +0 -41
- package/dist/lib/geoid-height-model.js +0 -140
- package/dist/lib/geoid-height-model.js.map +0 -1
- package/dist/lib/pgm-parser.d.ts +0 -14
- package/dist/lib/pgm-parser.js +0 -183
- package/dist/lib/pgm-parser.js.map +0 -1
- package/dist/lib/utils/compress-util.js.map +0 -1
- package/dist/lib/utils/compress-utils.d.ts +0 -53
- package/dist/lib/utils/file-utils.js.map +0 -1
- package/dist/lib/utils/lod-conversion-utils.js.map +0 -1
- package/dist/lib/utils/statistic-utills.js.map +0 -1
- package/dist/pgm-loader.js.map +0 -1
- package/src/3d-tiles-converter/helpers/b3dm-converter.d.ts +0 -23
- package/src/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +0 -16
- package/src/deps-installer/deps-installer.d.ts +0 -10
- package/src/deps-installer/deps-installer.js +0 -22
- package/src/i3s-converter/helpers/create-scene-server-path.js +0 -25
- package/src/i3s-converter/helpers/geometry-converter.d.ts +0 -40
- package/src/i3s-converter/helpers/geometry-converter.js +0 -915
- package/src/i3s-converter/helpers/node-pages.d.ts +0 -144
- package/src/i3s-converter/helpers/node-pages.js +0 -208
- package/src/i3s-converter/json-templates/layers.js +0 -199
- package/src/lib/geoid-height-model.d.ts +0 -41
- package/src/lib/geoid-height-model.js +0 -239
- package/src/lib/pgm-parser.d.ts +0 -14
- package/src/lib/pgm-parser.js +0 -179
- package/src/lib/utils/compress-utils.d.ts +0 -53
- package/src/lib/utils/file-utils.d.ts +0 -43
- package/src/lib/utils/file-utils.js +0 -38
- package/src/lib/utils/lod-conversion-utils.d.ts +0 -32
- /package/dist/{i3s-server → es5/i3s-server}/bin/www +0 -0
- /package/dist/{i3s-server → es5/i3s-server}/certs/cert.pem +0 -0
- /package/dist/{i3s-server → es5/i3s-server}/certs/key.pem +0 -0
- /package/src/i3s-converter/json-templates/{store.js → store.ts} +0 -0
- /package/src/lib/utils/{statistic-utills.js → statistic-utills.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-debug.js","names":["_culling","require","_core","_geospatial","CUBE_POSITIONS","Float32Array","validateNodeBoundingVolumes","node","_node$parentNode","_node$parentNode2","parentNode","obb","mbs","tileWarnings","validateObb","validateMbs","_node$parentNode3","parentObb","createBoundingBoxFromTileObb","tileVertices","getTileObbVertices","isTileObbInsideParentObb","isAllVerticesInsideBoundingVolume","title","concat","id","push","tileMbs","createBoundingSphereFromTileMbs","parentMbs","distanceBetweenCenters","center","distanceTo","radius","_node$parentNode4","BoundingSphere","halfSize","quaternion","OrientedBoundingBox","fromCenterHalfSizeQuaternion","positions","obbCenterCartesian","Ellipsoid","WGS84","cartographicToCartesian","vertices","i","length","positionsVector","Vector3","rotatedPositions","transformByQuaternion","add","boundingVolume","isVerticesInsideObb","index","point","cartographicPoint","cartesianToCartographic","distance"],"sources":["../../../../src/i3s-converter/helpers/node-debug.ts"],"sourcesContent":["import type {Mbs, Node3DIndexDocument, Obb} from '@loaders.gl/i3s';\nimport {OrientedBoundingBox, BoundingSphere} from '@math.gl/culling';\nimport {Vector3} from '@math.gl/core';\nimport {Ellipsoid} from '@math.gl/geospatial';\n\n// prettier-ignore\nconst CUBE_POSITIONS = new Float32Array([\n -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1,\n -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, -1,\n -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1,\n -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1,\n 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1,\n -1, -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1\n]);\n\n// TODO Unite Tile validation logic in i3s-17-and-debug with this code.\n\n/**\n * Do validation of bounding volumes for particular node.\n * Generates special warnings if there are some issues.\n * @param node\n */\nexport function validateNodeBoundingVolumes(node: Node3DIndexDocument): string[] {\n if (!node?.parentNode?.obb || !node?.parentNode?.mbs) {\n return [];\n }\n\n const tileWarnings: string[] = [];\n\n validateObb(tileWarnings, node);\n validateMbs(tileWarnings, node);\n\n return tileWarnings;\n}\n\n/**\n * Check if child Obb fit into parent Obb.\n * @param tileWarnings\n * @param node\n */\nfunction validateObb(tileWarnings: string[], node: Node3DIndexDocument): void {\n // @ts-expect-error\n const parentObb = createBoundingBoxFromTileObb(node.parentNode.obb);\n const tileVertices = getTileObbVertices(node);\n const isTileObbInsideParentObb = isAllVerticesInsideBoundingVolume(parentObb, tileVertices);\n\n if (isTileObbInsideParentObb) {\n return;\n }\n\n const title = `OBB of Tile (${node.id}) doesn't fit into Parent (${node.parentNode?.id}) tile OBB`;\n tileWarnings.push(title);\n}\n\n/**\n * Check if child Mbs fit into parent Mbs.\n * @param tileWarnings\n * @param node\n */\nfunction validateMbs(tileWarnings: string[], node: Node3DIndexDocument): void {\n // @ts-expect-error\n const tileMbs = createBoundingSphereFromTileMbs(node.mbs);\n // @ts-expect-error\n const parentMbs = createBoundingSphereFromTileMbs(node.parentNode.mbs);\n const distanceBetweenCenters = tileMbs.center.distanceTo(parentMbs.center);\n\n if (distanceBetweenCenters + tileMbs.radius > parentMbs.radius) {\n const title = `MBS of Tile (${node.id}) doesn't fit into Parent (${node.parentNode?.id}) tile MBS`;\n tileWarnings.push(title);\n }\n}\n\n/**\n * Generates bounding sphere from mbs\n * @param mbs\n */\nfunction createBoundingSphereFromTileMbs(mbs: Mbs): BoundingSphere {\n return new BoundingSphere([mbs[0], mbs[1], mbs[2]], mbs[3]);\n}\n\n/**\n * Generates oriented bounding box from tile obb\n * @param obb\n * @returns\n */\nfunction createBoundingBoxFromTileObb(obb: Obb): OrientedBoundingBox {\n const {center, halfSize, quaternion} = obb;\n return new OrientedBoundingBox().fromCenterHalfSizeQuaternion(center, halfSize, quaternion);\n}\n\n/**\n * Get vertices fromnode obb\n * TODO check if Obb generates properly\n * @param node\n */\nfunction getTileObbVertices(node: Node3DIndexDocument): number[] {\n // @ts-expect-error\n const halfSize = node.obb.halfSize;\n const positions = CUBE_POSITIONS;\n // @ts-expect-error\n const obbCenterCartesian = Ellipsoid.WGS84.cartographicToCartesian(node.obb.center);\n\n let vertices = [];\n\n for (let i = 0; i < positions.length; i += 3) {\n const positionsVector = new Vector3(\n (positions[i] *= halfSize[0]),\n (positions[i + 1] *= halfSize[1]),\n (positions[i + 2] *= halfSize[2])\n );\n const rotatedPositions = positionsVector\n // @ts-expect-error\n .transformByQuaternion(node.obb.quaternion)\n .add(obbCenterCartesian);\n // @ts-expect-error\n vertices = vertices.concat(rotatedPositions);\n }\n\n return vertices;\n}\n\n/**\n * Check if all vertices inside bounding volume\n * @param boundingVolume\n * @param positions\n */\nfunction isAllVerticesInsideBoundingVolume(\n boundingVolume: OrientedBoundingBox,\n positions: number[]\n): boolean {\n let isVerticesInsideObb = true;\n\n for (let index = 0; index < positions.length / 3; index += 3) {\n const point = [positions[index], positions[index + 1], positions[index + 2]];\n const cartographicPoint = Ellipsoid.WGS84.cartesianToCartographic(point);\n\n const distance = boundingVolume.distanceTo(cartographicPoint);\n\n if (distance > 0) {\n isVerticesInsideObb = false;\n break;\n }\n }\n\n return isVerticesInsideObb;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,521 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.NodeIndexDocument = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
var _path = require("path");
|
|
14
|
+
var _jsonMapTransform = _interopRequireDefault(require("json-map-transform"));
|
|
15
|
+
var _uuid = require("uuid");
|
|
16
|
+
var _fileUtils = require("../../lib/utils/file-utils");
|
|
17
|
+
var _node = require("../json-templates/node");
|
|
18
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
20
|
+
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; } } }; }
|
|
21
|
+
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); }
|
|
22
|
+
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; }
|
|
23
|
+
var NodeIndexDocument = function () {
|
|
24
|
+
function NodeIndexDocument(id, converter) {
|
|
25
|
+
(0, _classCallCheck2.default)(this, NodeIndexDocument);
|
|
26
|
+
(0, _defineProperty2.default)(this, "id", void 0);
|
|
27
|
+
(0, _defineProperty2.default)(this, "inPageId", void 0);
|
|
28
|
+
(0, _defineProperty2.default)(this, "data", null);
|
|
29
|
+
(0, _defineProperty2.default)(this, "children", []);
|
|
30
|
+
(0, _defineProperty2.default)(this, "converter", void 0);
|
|
31
|
+
(0, _defineProperty2.default)(this, "_finalized", false);
|
|
32
|
+
this.inPageId = id;
|
|
33
|
+
this.id = id === 0 ? 'root' : id.toString();
|
|
34
|
+
this.converter = converter;
|
|
35
|
+
}
|
|
36
|
+
(0, _createClass2.default)(NodeIndexDocument, [{
|
|
37
|
+
key: "finalized",
|
|
38
|
+
get: function get() {
|
|
39
|
+
return this._finalized;
|
|
40
|
+
}
|
|
41
|
+
}, {
|
|
42
|
+
key: "addData",
|
|
43
|
+
value: function () {
|
|
44
|
+
var _addData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data) {
|
|
45
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
46
|
+
while (1) switch (_context.prev = _context.next) {
|
|
47
|
+
case 0:
|
|
48
|
+
if (!this.converter.options.instantNodeWriting) {
|
|
49
|
+
_context.next = 5;
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
_context.next = 3;
|
|
53
|
+
return this.write(data);
|
|
54
|
+
case 3:
|
|
55
|
+
_context.next = 6;
|
|
56
|
+
break;
|
|
57
|
+
case 5:
|
|
58
|
+
this.data = data;
|
|
59
|
+
case 6:
|
|
60
|
+
return _context.abrupt("return", this);
|
|
61
|
+
case 7:
|
|
62
|
+
case "end":
|
|
63
|
+
return _context.stop();
|
|
64
|
+
}
|
|
65
|
+
}, _callee, this);
|
|
66
|
+
}));
|
|
67
|
+
function addData(_x) {
|
|
68
|
+
return _addData.apply(this, arguments);
|
|
69
|
+
}
|
|
70
|
+
return addData;
|
|
71
|
+
}()
|
|
72
|
+
}, {
|
|
73
|
+
key: "addChildren",
|
|
74
|
+
value: function () {
|
|
75
|
+
var _addChildren = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(childNodes) {
|
|
76
|
+
var newChildren, _iterator, _step, node, nodeData, data, _data$children;
|
|
77
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
78
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
79
|
+
case 0:
|
|
80
|
+
newChildren = [];
|
|
81
|
+
_iterator = _createForOfIteratorHelper(childNodes);
|
|
82
|
+
_context2.prev = 2;
|
|
83
|
+
_iterator.s();
|
|
84
|
+
case 4:
|
|
85
|
+
if ((_step = _iterator.n()).done) {
|
|
86
|
+
_context2.next = 12;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
node = _step.value;
|
|
90
|
+
_context2.next = 8;
|
|
91
|
+
return node.load();
|
|
92
|
+
case 8:
|
|
93
|
+
nodeData = _context2.sent;
|
|
94
|
+
newChildren.push({
|
|
95
|
+
id: node.id,
|
|
96
|
+
href: "../".concat(node.id),
|
|
97
|
+
obb: nodeData.obb,
|
|
98
|
+
mbs: nodeData.mbs
|
|
99
|
+
});
|
|
100
|
+
case 10:
|
|
101
|
+
_context2.next = 4;
|
|
102
|
+
break;
|
|
103
|
+
case 12:
|
|
104
|
+
_context2.next = 17;
|
|
105
|
+
break;
|
|
106
|
+
case 14:
|
|
107
|
+
_context2.prev = 14;
|
|
108
|
+
_context2.t0 = _context2["catch"](2);
|
|
109
|
+
_iterator.e(_context2.t0);
|
|
110
|
+
case 17:
|
|
111
|
+
_context2.prev = 17;
|
|
112
|
+
_iterator.f();
|
|
113
|
+
return _context2.finish(17);
|
|
114
|
+
case 20:
|
|
115
|
+
this.children = this.children.concat(childNodes);
|
|
116
|
+
data = this.data;
|
|
117
|
+
if (!this.converter.options.instantNodeWriting) {
|
|
118
|
+
_context2.next = 26;
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
_context2.next = 25;
|
|
122
|
+
return this.load();
|
|
123
|
+
case 25:
|
|
124
|
+
data = _context2.sent;
|
|
125
|
+
case 26:
|
|
126
|
+
if (data) {
|
|
127
|
+
data.children = (_data$children = data.children) !== null && _data$children !== void 0 ? _data$children : [];
|
|
128
|
+
data.children = data.children.concat(newChildren);
|
|
129
|
+
}
|
|
130
|
+
if (!(this.converter.options.instantNodeWriting && data)) {
|
|
131
|
+
_context2.next = 30;
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
_context2.next = 30;
|
|
135
|
+
return this.write(data);
|
|
136
|
+
case 30:
|
|
137
|
+
case "end":
|
|
138
|
+
return _context2.stop();
|
|
139
|
+
}
|
|
140
|
+
}, _callee2, this, [[2, 14, 17, 20]]);
|
|
141
|
+
}));
|
|
142
|
+
function addChildren(_x2) {
|
|
143
|
+
return _addChildren.apply(this, arguments);
|
|
144
|
+
}
|
|
145
|
+
return addChildren;
|
|
146
|
+
}()
|
|
147
|
+
}, {
|
|
148
|
+
key: "addNeighbors",
|
|
149
|
+
value: function () {
|
|
150
|
+
var _addNeighbors = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3() {
|
|
151
|
+
var nodeData, _iterator2, _step2, _childNodeData$neighb, _nodeData$children, childNode, childNodeData, _iterator3, _step3, neighbor;
|
|
152
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
153
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
154
|
+
case 0:
|
|
155
|
+
if (!this.finalized) {
|
|
156
|
+
_context3.next = 2;
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
return _context3.abrupt("return");
|
|
160
|
+
case 2:
|
|
161
|
+
_context3.next = 4;
|
|
162
|
+
return this.load();
|
|
163
|
+
case 4:
|
|
164
|
+
nodeData = _context3.sent;
|
|
165
|
+
_iterator2 = _createForOfIteratorHelper(this.children);
|
|
166
|
+
_context3.prev = 6;
|
|
167
|
+
_iterator2.s();
|
|
168
|
+
case 8:
|
|
169
|
+
if ((_step2 = _iterator2.n()).done) {
|
|
170
|
+
_context3.next = 44;
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
childNode = _step2.value;
|
|
174
|
+
_context3.next = 12;
|
|
175
|
+
return childNode.load();
|
|
176
|
+
case 12:
|
|
177
|
+
childNodeData = _context3.sent;
|
|
178
|
+
childNodeData.neighbors = (_childNodeData$neighb = childNodeData.neighbors) !== null && _childNodeData$neighb !== void 0 ? _childNodeData$neighb : [];
|
|
179
|
+
if (!(Number(nodeData === null || nodeData === void 0 ? void 0 : (_nodeData$children = nodeData.children) === null || _nodeData$children === void 0 ? void 0 : _nodeData$children.length) < 1000)) {
|
|
180
|
+
_context3.next = 35;
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
_iterator3 = _createForOfIteratorHelper(nodeData.children || []);
|
|
184
|
+
_context3.prev = 16;
|
|
185
|
+
_iterator3.s();
|
|
186
|
+
case 18:
|
|
187
|
+
if ((_step3 = _iterator3.n()).done) {
|
|
188
|
+
_context3.next = 25;
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
neighbor = _step3.value;
|
|
192
|
+
if (!(childNode.id === neighbor.id)) {
|
|
193
|
+
_context3.next = 22;
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
return _context3.abrupt("continue", 23);
|
|
197
|
+
case 22:
|
|
198
|
+
childNodeData.neighbors.push(_objectSpread({}, neighbor));
|
|
199
|
+
case 23:
|
|
200
|
+
_context3.next = 18;
|
|
201
|
+
break;
|
|
202
|
+
case 25:
|
|
203
|
+
_context3.next = 30;
|
|
204
|
+
break;
|
|
205
|
+
case 27:
|
|
206
|
+
_context3.prev = 27;
|
|
207
|
+
_context3.t0 = _context3["catch"](16);
|
|
208
|
+
_iterator3.e(_context3.t0);
|
|
209
|
+
case 30:
|
|
210
|
+
_context3.prev = 30;
|
|
211
|
+
_iterator3.f();
|
|
212
|
+
return _context3.finish(30);
|
|
213
|
+
case 33:
|
|
214
|
+
_context3.next = 37;
|
|
215
|
+
break;
|
|
216
|
+
case 35:
|
|
217
|
+
console.warn("Node ".concat(childNode.id, ": neighbors attribute is omited because of large number of neigbors"));
|
|
218
|
+
delete childNodeData.neighbors;
|
|
219
|
+
case 37:
|
|
220
|
+
if (!(this.converter.options.instantNodeWriting && childNodeData)) {
|
|
221
|
+
_context3.next = 40;
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
_context3.next = 40;
|
|
225
|
+
return childNode.write(childNodeData);
|
|
226
|
+
case 40:
|
|
227
|
+
_context3.next = 42;
|
|
228
|
+
return childNode.save();
|
|
229
|
+
case 42:
|
|
230
|
+
_context3.next = 8;
|
|
231
|
+
break;
|
|
232
|
+
case 44:
|
|
233
|
+
_context3.next = 49;
|
|
234
|
+
break;
|
|
235
|
+
case 46:
|
|
236
|
+
_context3.prev = 46;
|
|
237
|
+
_context3.t1 = _context3["catch"](6);
|
|
238
|
+
_iterator2.e(_context3.t1);
|
|
239
|
+
case 49:
|
|
240
|
+
_context3.prev = 49;
|
|
241
|
+
_iterator2.f();
|
|
242
|
+
return _context3.finish(49);
|
|
243
|
+
case 52:
|
|
244
|
+
this.finalize();
|
|
245
|
+
case 53:
|
|
246
|
+
case "end":
|
|
247
|
+
return _context3.stop();
|
|
248
|
+
}
|
|
249
|
+
}, _callee3, this, [[6, 46, 49, 52], [16, 27, 30, 33]]);
|
|
250
|
+
}));
|
|
251
|
+
function addNeighbors() {
|
|
252
|
+
return _addNeighbors.apply(this, arguments);
|
|
253
|
+
}
|
|
254
|
+
return addNeighbors;
|
|
255
|
+
}()
|
|
256
|
+
}, {
|
|
257
|
+
key: "save",
|
|
258
|
+
value: function () {
|
|
259
|
+
var _save = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4() {
|
|
260
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
261
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
262
|
+
case 0:
|
|
263
|
+
if (!this.data) {
|
|
264
|
+
_context4.next = 3;
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
_context4.next = 3;
|
|
268
|
+
return this.write(this.data);
|
|
269
|
+
case 3:
|
|
270
|
+
case "end":
|
|
271
|
+
return _context4.stop();
|
|
272
|
+
}
|
|
273
|
+
}, _callee4, this);
|
|
274
|
+
}));
|
|
275
|
+
function save() {
|
|
276
|
+
return _save.apply(this, arguments);
|
|
277
|
+
}
|
|
278
|
+
return save;
|
|
279
|
+
}()
|
|
280
|
+
}, {
|
|
281
|
+
key: "finalize",
|
|
282
|
+
value: function finalize() {
|
|
283
|
+
this._finalized = true;
|
|
284
|
+
var _iterator4 = _createForOfIteratorHelper(this.children),
|
|
285
|
+
_step4;
|
|
286
|
+
try {
|
|
287
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
288
|
+
var child = _step4.value;
|
|
289
|
+
child.flush();
|
|
290
|
+
}
|
|
291
|
+
} catch (err) {
|
|
292
|
+
_iterator4.e(err);
|
|
293
|
+
} finally {
|
|
294
|
+
_iterator4.f();
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}, {
|
|
298
|
+
key: "write",
|
|
299
|
+
value: function () {
|
|
300
|
+
var _write = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(node) {
|
|
301
|
+
var _this = this;
|
|
302
|
+
var path;
|
|
303
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
304
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
305
|
+
case 0:
|
|
306
|
+
path = (0, _path.join)(this.converter.layers0Path, 'nodes', this.id);
|
|
307
|
+
if (!this.converter.options.slpk) {
|
|
308
|
+
_context5.next = 6;
|
|
309
|
+
break;
|
|
310
|
+
}
|
|
311
|
+
_context5.next = 4;
|
|
312
|
+
return this.converter.writeQueue.enqueue({
|
|
313
|
+
archiveKey: "nodes/".concat(this.id, "/3dNodeIndexDocument.json.gz"),
|
|
314
|
+
writePromise: function writePromise() {
|
|
315
|
+
return (0, _fileUtils.writeFileForSlpk)(path, JSON.stringify(node), '3dNodeIndexDocument.json', true, _this.converter.compressList);
|
|
316
|
+
}
|
|
317
|
+
}, true);
|
|
318
|
+
case 4:
|
|
319
|
+
_context5.next = 8;
|
|
320
|
+
break;
|
|
321
|
+
case 6:
|
|
322
|
+
_context5.next = 8;
|
|
323
|
+
return this.converter.writeQueue.enqueue({
|
|
324
|
+
writePromise: function writePromise() {
|
|
325
|
+
return (0, _fileUtils.writeFile)(path, JSON.stringify(node));
|
|
326
|
+
}
|
|
327
|
+
}, true);
|
|
328
|
+
case 8:
|
|
329
|
+
case "end":
|
|
330
|
+
return _context5.stop();
|
|
331
|
+
}
|
|
332
|
+
}, _callee5, this);
|
|
333
|
+
}));
|
|
334
|
+
function write(_x3) {
|
|
335
|
+
return _write.apply(this, arguments);
|
|
336
|
+
}
|
|
337
|
+
return write;
|
|
338
|
+
}()
|
|
339
|
+
}, {
|
|
340
|
+
key: "load",
|
|
341
|
+
value: function () {
|
|
342
|
+
var _load = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6() {
|
|
343
|
+
var path, parentNodePath, parentNodeFileName;
|
|
344
|
+
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
345
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
346
|
+
case 0:
|
|
347
|
+
if (!this.data) {
|
|
348
|
+
_context6.next = 2;
|
|
349
|
+
break;
|
|
350
|
+
}
|
|
351
|
+
return _context6.abrupt("return", this.data);
|
|
352
|
+
case 2:
|
|
353
|
+
path = this.id;
|
|
354
|
+
parentNodePath = (0, _path.join)(this.converter.layers0Path, 'nodes', path);
|
|
355
|
+
parentNodeFileName = 'index.json';
|
|
356
|
+
if (this.converter.options.slpk) {
|
|
357
|
+
parentNodeFileName = '3dNodeIndexDocument.json';
|
|
358
|
+
}
|
|
359
|
+
_context6.next = 8;
|
|
360
|
+
return (0, _fileUtils.openJson)(parentNodePath, parentNodeFileName);
|
|
361
|
+
case 8:
|
|
362
|
+
return _context6.abrupt("return", _context6.sent);
|
|
363
|
+
case 9:
|
|
364
|
+
case "end":
|
|
365
|
+
return _context6.stop();
|
|
366
|
+
}
|
|
367
|
+
}, _callee6, this);
|
|
368
|
+
}));
|
|
369
|
+
function load() {
|
|
370
|
+
return _load.apply(this, arguments);
|
|
371
|
+
}
|
|
372
|
+
return load;
|
|
373
|
+
}()
|
|
374
|
+
}, {
|
|
375
|
+
key: "flush",
|
|
376
|
+
value: function flush() {
|
|
377
|
+
this.data = null;
|
|
378
|
+
}
|
|
379
|
+
}], [{
|
|
380
|
+
key: "createRootNode",
|
|
381
|
+
value: function () {
|
|
382
|
+
var _createRootNode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(boundingVolumes, converter) {
|
|
383
|
+
var rootData, rootNode;
|
|
384
|
+
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
385
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
386
|
+
case 0:
|
|
387
|
+
rootData = NodeIndexDocument.createRootNodeIndexDocument(boundingVolumes);
|
|
388
|
+
_context7.next = 3;
|
|
389
|
+
return new NodeIndexDocument(0, converter).addData(rootData);
|
|
390
|
+
case 3:
|
|
391
|
+
rootNode = _context7.sent;
|
|
392
|
+
return _context7.abrupt("return", rootNode);
|
|
393
|
+
case 5:
|
|
394
|
+
case "end":
|
|
395
|
+
return _context7.stop();
|
|
396
|
+
}
|
|
397
|
+
}, _callee7);
|
|
398
|
+
}));
|
|
399
|
+
function createRootNode(_x4, _x5) {
|
|
400
|
+
return _createRootNode.apply(this, arguments);
|
|
401
|
+
}
|
|
402
|
+
return createRootNode;
|
|
403
|
+
}()
|
|
404
|
+
}, {
|
|
405
|
+
key: "createNode",
|
|
406
|
+
value: function () {
|
|
407
|
+
var _createNode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee8(parentNode, boundingVolumes, lodSelection, nodeInPage, resources, converter) {
|
|
408
|
+
var data, node;
|
|
409
|
+
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
410
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
411
|
+
case 0:
|
|
412
|
+
_context8.next = 2;
|
|
413
|
+
return NodeIndexDocument.createNodeIndexDocument(parentNode, boundingVolumes, lodSelection, nodeInPage, resources);
|
|
414
|
+
case 2:
|
|
415
|
+
data = _context8.sent;
|
|
416
|
+
_context8.next = 5;
|
|
417
|
+
return new NodeIndexDocument(nodeInPage.index, converter).addData(data);
|
|
418
|
+
case 5:
|
|
419
|
+
node = _context8.sent;
|
|
420
|
+
return _context8.abrupt("return", node);
|
|
421
|
+
case 7:
|
|
422
|
+
case "end":
|
|
423
|
+
return _context8.stop();
|
|
424
|
+
}
|
|
425
|
+
}, _callee8);
|
|
426
|
+
}));
|
|
427
|
+
function createNode(_x6, _x7, _x8, _x9, _x10, _x11) {
|
|
428
|
+
return _createNode.apply(this, arguments);
|
|
429
|
+
}
|
|
430
|
+
return createNode;
|
|
431
|
+
}()
|
|
432
|
+
}, {
|
|
433
|
+
key: "createRootNodeIndexDocument",
|
|
434
|
+
value: function createRootNodeIndexDocument(boundingVolumes) {
|
|
435
|
+
var root0data = _objectSpread(_objectSpread({
|
|
436
|
+
version: "{".concat((0, _uuid.v4)().toUpperCase(), "}"),
|
|
437
|
+
id: 'root',
|
|
438
|
+
level: 0,
|
|
439
|
+
lodSelection: [{
|
|
440
|
+
metricType: 'maxScreenThresholdSQ',
|
|
441
|
+
maxError: 0
|
|
442
|
+
}, {
|
|
443
|
+
metricType: 'maxScreenThreshold',
|
|
444
|
+
maxError: 0
|
|
445
|
+
}]
|
|
446
|
+
}, boundingVolumes), {}, {
|
|
447
|
+
children: []
|
|
448
|
+
});
|
|
449
|
+
return (0, _jsonMapTransform.default)(root0data, (0, _node.NODE)());
|
|
450
|
+
}
|
|
451
|
+
}, {
|
|
452
|
+
key: "createNodeIndexDocument",
|
|
453
|
+
value: function () {
|
|
454
|
+
var _createNodeIndexDocument = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee9(parentNode, boundingVolumes, lodSelection, nodeInPage, resources) {
|
|
455
|
+
var texture, attributes, nodeId, parentNodeData, nodeData, node, _parentNode$converter, _parentNode$converter2, index, folderName;
|
|
456
|
+
return _regenerator.default.wrap(function _callee9$(_context9) {
|
|
457
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
458
|
+
case 0:
|
|
459
|
+
texture = resources.texture, attributes = resources.attributes;
|
|
460
|
+
nodeId = nodeInPage.index;
|
|
461
|
+
_context9.next = 4;
|
|
462
|
+
return parentNode.load();
|
|
463
|
+
case 4:
|
|
464
|
+
parentNodeData = _context9.sent;
|
|
465
|
+
nodeData = _objectSpread(_objectSpread({
|
|
466
|
+
version: parentNodeData.version,
|
|
467
|
+
id: nodeId.toString(),
|
|
468
|
+
level: parentNodeData.level + 1
|
|
469
|
+
}, boundingVolumes), {}, {
|
|
470
|
+
lodSelection: lodSelection,
|
|
471
|
+
parentNode: {
|
|
472
|
+
id: parentNode.id,
|
|
473
|
+
href: "../".concat(parentNode.id),
|
|
474
|
+
mbs: parentNodeData.mbs,
|
|
475
|
+
obb: parentNodeData.obb
|
|
476
|
+
},
|
|
477
|
+
children: [],
|
|
478
|
+
neighbors: []
|
|
479
|
+
});
|
|
480
|
+
node = (0, _jsonMapTransform.default)(nodeData, (0, _node.NODE)());
|
|
481
|
+
if (nodeInPage.mesh) {
|
|
482
|
+
node.geometryData = [{
|
|
483
|
+
href: './geometries/0'
|
|
484
|
+
}];
|
|
485
|
+
node.sharedResource = {
|
|
486
|
+
href: './shared'
|
|
487
|
+
};
|
|
488
|
+
if (texture) {
|
|
489
|
+
node.textureData = [{
|
|
490
|
+
href: './textures/0'
|
|
491
|
+
}, {
|
|
492
|
+
href: './textures/1'
|
|
493
|
+
}];
|
|
494
|
+
}
|
|
495
|
+
if (attributes && attributes.length && (_parentNode$converter = parentNode.converter.layers0) !== null && _parentNode$converter !== void 0 && (_parentNode$converter2 = _parentNode$converter.attributeStorageInfo) !== null && _parentNode$converter2 !== void 0 && _parentNode$converter2.length) {
|
|
496
|
+
node.attributeData = [];
|
|
497
|
+
for (index = 0; index < attributes.length; index++) {
|
|
498
|
+
folderName = parentNode.converter.layers0.attributeStorageInfo[index].key;
|
|
499
|
+
node.attributeData.push({
|
|
500
|
+
href: "./attributes/".concat(folderName, "/0")
|
|
501
|
+
});
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
return _context9.abrupt("return", node);
|
|
506
|
+
case 9:
|
|
507
|
+
case "end":
|
|
508
|
+
return _context9.stop();
|
|
509
|
+
}
|
|
510
|
+
}, _callee9);
|
|
511
|
+
}));
|
|
512
|
+
function createNodeIndexDocument(_x12, _x13, _x14, _x15, _x16) {
|
|
513
|
+
return _createNodeIndexDocument.apply(this, arguments);
|
|
514
|
+
}
|
|
515
|
+
return createNodeIndexDocument;
|
|
516
|
+
}()
|
|
517
|
+
}]);
|
|
518
|
+
return NodeIndexDocument;
|
|
519
|
+
}();
|
|
520
|
+
exports.NodeIndexDocument = NodeIndexDocument;
|
|
521
|
+
//# sourceMappingURL=node-index-document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-index-document.js","names":["_path","require","_jsonMapTransform","_interopRequireDefault","_uuid","_fileUtils","_node","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","NodeIndexDocument","id","converter","_classCallCheck2","inPageId","_createClass2","get","_finalized","_addData","_asyncToGenerator2","_regenerator","mark","_callee","data","wrap","_callee$","_context","prev","options","instantNodeWriting","write","abrupt","stop","addData","_x","_addChildren","_callee2","childNodes","newChildren","_iterator","_step","node","nodeData","_data$children","_callee2$","_context2","load","sent","href","concat","obb","mbs","t0","finish","children","addChildren","_x2","_addNeighbors","_callee3","_iterator2","_step2","_childNodeData$neighb","_nodeData$children","childNode","childNodeData","_iterator3","_step3","neighbor","_callee3$","_context3","finalized","neighbors","Number","console","warn","save","t1","finalize","addNeighbors","_save","_callee4","_callee4$","_context4","_iterator4","_step4","child","flush","_write","_callee5","_this","path","_callee5$","_context5","join","layers0Path","slpk","writeQueue","enqueue","archiveKey","writePromise","writeFileForSlpk","JSON","stringify","compressList","writeFile","_x3","_load","_callee6","parentNodePath","parentNodeFileName","_callee6$","_context6","openJson","_createRootNode","_callee7","boundingVolumes","rootData","rootNode","_callee7$","_context7","createRootNodeIndexDocument","createRootNode","_x4","_x5","_createNode","_callee8","parentNode","lodSelection","nodeInPage","resources","_callee8$","_context8","createNodeIndexDocument","index","createNode","_x6","_x7","_x8","_x9","_x10","_x11","root0data","version","uuidv4","toUpperCase","level","metricType","maxError","transform","nodeTemplate","_createNodeIndexDocument","_callee9","texture","attributes","nodeId","parentNodeData","_parentNode$converter","_parentNode$converter2","folderName","_callee9$","_context9","mesh","geometryData","sharedResource","textureData","layers0","attributeStorageInfo","attributeData","_x12","_x13","_x14","_x15","_x16","exports"],"sources":["../../../../src/i3s-converter/helpers/node-index-document.ts"],"sourcesContent":["import {join} from 'path';\nimport {\n BoundingVolumes,\n LodSelection,\n Node3DIndexDocument,\n NodeInPage,\n NodeReference\n} from '@loaders.gl/i3s';\nimport transform from 'json-map-transform';\nimport {v4 as uuidv4} from 'uuid';\nimport {openJson, writeFile, writeFileForSlpk} from '../../lib/utils/file-utils';\nimport I3SConverter from '../i3s-converter';\nimport {NODE as nodeTemplate} from '../json-templates/node';\nimport {I3SConvertedResources} from '../types';\n\n/**\n * Wrapper for https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md data\n * The class allows working with 3DNodeIndexDocument in 2 modes:\n * in memory: the data is stored in `data` field\n * on disk: the data is written on disk in a file. The file can be rewritten when new childrend or neighbors have to be added\n */\nexport class NodeIndexDocument {\n /** Node id */\n public id: string;\n /** Id in node pages */\n public inPageId: number;\n /** 3DNodeIndexDocument data */\n public data: Node3DIndexDocument | null = null;\n /** children */\n public children: NodeIndexDocument[] = [];\n /** converter instance */\n private converter: I3SConverter;\n\n /**\n * Finalized property. It means that all child nodes are saved and their data\n * is unloaded\n */\n private _finalized: boolean = false;\n get finalized(): boolean {\n return this._finalized;\n }\n\n /**\n * Constructor\n * @param id - id of the node in node pages\n * @param converter - converter instance\n */\n constructor(id: number, converter: I3SConverter) {\n this.inPageId = id;\n this.id = id === 0 ? 'root' : id.toString();\n this.converter = converter;\n }\n\n /**\n * Add Node3DIndexDocument data to the node\n * @param data Node3DIndexDocument data\n * @returns this NodeIndexDocument instance (to recurring with constructor)\n */\n public async addData(data: Node3DIndexDocument): Promise<NodeIndexDocument> {\n if (this.converter.options.instantNodeWriting) {\n await this.write(data);\n } else {\n this.data = data;\n }\n return this;\n }\n\n /**\n * Add child node references\n * @param childNodes - child NodeIndexDocument instances\n */\n public async addChildren(childNodes: NodeIndexDocument[]): Promise<void> {\n const newChildren: NodeReference[] = [];\n for (const node of childNodes) {\n const nodeData = await node.load();\n newChildren.push({\n id: node.id,\n href: `../${node.id}`,\n obb: nodeData.obb,\n mbs: nodeData.mbs\n });\n }\n this.children = this.children.concat(childNodes);\n\n let data: Node3DIndexDocument | null = this.data;\n if (this.converter.options.instantNodeWriting) {\n data = (await this.load()) as Node3DIndexDocument;\n }\n if (data) {\n data.children = data.children ?? [];\n data.children = data.children.concat(newChildren);\n }\n if (this.converter.options.instantNodeWriting && data) {\n await this.write(data);\n }\n }\n\n /**\n * Add neighbors to child nodes of this node\n */\n public async addNeighbors(): Promise<void> {\n if (this.finalized) {\n return;\n }\n const nodeData = await this.load();\n for (const childNode of this.children) {\n const childNodeData = await childNode.load();\n childNodeData.neighbors = childNodeData.neighbors ?? [];\n\n // Don't do large amount of \"neightbors\" to avoid big memory consumption\n if (Number(nodeData?.children?.length) < 1000) {\n for (const neighbor of nodeData.children || []) {\n if (childNode.id === neighbor.id) {\n continue; // eslint-disable-line\n }\n\n childNodeData.neighbors.push({...neighbor});\n }\n } else {\n // eslint-disable-next-line no-console, no-undef\n console.warn(\n `Node ${childNode.id}: neighbors attribute is omited because of large number of neigbors`\n );\n delete childNodeData.neighbors;\n }\n\n if (this.converter.options.instantNodeWriting && childNodeData) {\n await childNode.write(childNodeData);\n }\n await childNode.save();\n }\n // The save after adding neighbors is the last one. Finalize the the node\n this.finalize();\n }\n\n /** Save 3DNodeIndexDocument in file on disk */\n public async save(): Promise<void> {\n if (this.data) {\n await this.write(this.data);\n }\n }\n\n /** Finalize the node */\n private finalize(): void {\n this._finalized = true;\n for (const child of this.children) {\n child.flush();\n }\n }\n\n /**\n * Write 3DNodeIndexDocument https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md\n * @param node - Node3DIndexDocument object\n */\n private async write(node: Node3DIndexDocument): Promise<void> {\n const path = join(this.converter.layers0Path, 'nodes', this.id);\n if (this.converter.options.slpk) {\n await this.converter.writeQueue.enqueue(\n {\n archiveKey: `nodes/${this.id}/3dNodeIndexDocument.json.gz`,\n writePromise: () =>\n writeFileForSlpk(\n path,\n JSON.stringify(node),\n '3dNodeIndexDocument.json',\n true,\n this.converter.compressList\n )\n },\n true\n );\n } else {\n await this.converter.writeQueue.enqueue(\n {writePromise: () => writeFile(path, JSON.stringify(node))},\n true\n );\n }\n }\n\n /**\n * Load 3DNodeIndexDocument data from file on disk\n * @returns 3DNodeIndexDocument object\n */\n private async load(): Promise<Node3DIndexDocument> {\n if (this.data) {\n return this.data;\n }\n const path = this.id;\n const parentNodePath = join(this.converter.layers0Path, 'nodes', path);\n let parentNodeFileName = 'index.json';\n if (this.converter.options.slpk) {\n parentNodeFileName = '3dNodeIndexDocument.json';\n }\n return (await openJson(parentNodePath, parentNodeFileName)) as Node3DIndexDocument;\n }\n\n /**\n * Unload the Node data\n */\n private flush(): void {\n this.data = null;\n }\n\n /**\n * Create root node of the tree\n * @param boundingVolumes - MBS and OOB bounding volumes data\n * @param converter - I3SConverter instance\n * @returns instance of NodeIndexDocument\n */\n static async createRootNode(\n boundingVolumes: BoundingVolumes,\n converter: I3SConverter\n ): Promise<NodeIndexDocument> {\n const rootData = NodeIndexDocument.createRootNodeIndexDocument(boundingVolumes);\n const rootNode = await new NodeIndexDocument(0, converter).addData(rootData);\n return rootNode;\n }\n\n /**\n * Create NodeIndexDocument instance\n * @param parentNode - parent NodeIndexDocument\n * @param boundingVolumes - MBS and OOB bounding volumes data\n * @param lodSelection - LOD metrics data\n * @param nodeInPage - node data in node pages\n * @param resources - resources extracted from gltf/b3dm file\n * @param converter - I3SConverter instance\n * @returns NodeIndexDocument instance\n */\n static async createNode(\n parentNode: NodeIndexDocument,\n boundingVolumes: BoundingVolumes,\n lodSelection: LodSelection[],\n nodeInPage: NodeInPage,\n resources: I3SConvertedResources,\n converter: I3SConverter\n ): Promise<NodeIndexDocument> {\n const data = await NodeIndexDocument.createNodeIndexDocument(\n parentNode,\n boundingVolumes,\n lodSelection,\n nodeInPage,\n resources\n );\n const node = await new NodeIndexDocument(nodeInPage.index, converter).addData(data);\n return node;\n }\n\n /**\n * Form 3DNodeIndexDocument data for the root node\n * @param boundingVolumes - mbs and obb data about node's bounding volume\n * @return 3DNodeIndexDocument data https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md\n */\n static createRootNodeIndexDocument(boundingVolumes: BoundingVolumes): Node3DIndexDocument {\n const root0data = {\n version: `{${uuidv4().toUpperCase()}}`,\n id: 'root',\n level: 0,\n lodSelection: [\n {\n metricType: 'maxScreenThresholdSQ',\n maxError: 0\n },\n {\n metricType: 'maxScreenThreshold',\n maxError: 0\n }\n ],\n ...boundingVolumes,\n children: []\n };\n return transform(root0data, nodeTemplate());\n }\n\n /**\n * Create a new Node3DIndexDocument\n * @param parentNode - 3DNodeIndexDocument https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md object of the parent node\n * @param boundingVolumes - Bounding volumes\n * @param lodSelection - Level of Details (LOD) metrics\n * @param nodeInPage - corresponding node object in a node page\n * @param resources - the node resources data\n * @param resources.texture - texture image\n * @param resources.attributes - feature attributes\n * @return 3DNodeIndexDocument https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md object\n */\n static async createNodeIndexDocument(\n parentNode: NodeIndexDocument,\n boundingVolumes: BoundingVolumes,\n lodSelection: LodSelection[],\n nodeInPage: NodeInPage,\n resources: I3SConvertedResources\n ): Promise<Node3DIndexDocument> {\n const {texture, attributes} = resources;\n const nodeId = nodeInPage.index!;\n const parentNodeData = await parentNode.load();\n const nodeData = {\n version: parentNodeData.version,\n id: nodeId.toString(),\n level: parentNodeData.level! + 1,\n ...boundingVolumes,\n lodSelection,\n parentNode: {\n id: parentNode.id,\n href: `../${parentNode.id}`,\n mbs: parentNodeData.mbs,\n obb: parentNodeData.obb\n },\n children: [],\n neighbors: []\n };\n const node = transform(nodeData, nodeTemplate());\n\n if (nodeInPage.mesh) {\n node.geometryData = [{href: './geometries/0'}];\n node.sharedResource = {href: './shared'};\n\n if (texture) {\n node.textureData = [{href: './textures/0'}, {href: './textures/1'}];\n }\n\n if (\n attributes &&\n attributes.length &&\n parentNode.converter.layers0?.attributeStorageInfo?.length\n ) {\n node.attributeData = [];\n for (let index = 0; index < attributes.length; index++) {\n const folderName = parentNode.converter.layers0.attributeStorageInfo[index].key;\n node.attributeData.push({href: `./attributes/${folderName}/0`});\n }\n }\n }\n\n return node;\n }\n}\n"],"mappings":"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"}
|