@loaders.gl/tile-converter 4.0.0-alpha.5 → 4.0.0-alpha.7
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 +13 -1
- package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
- package/dist/3d-tiles-converter/3d-tiles-converter.js +274 -233
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +9 -16
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -1
- package/dist/3d-tiles-converter/helpers/b3dm-converter.js +256 -246
- package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +22 -9
- package/dist/3d-tiles-converter/helpers/texture-atlas.js +47 -28
- package/dist/3d-tiles-converter/json-templates/tileset.js +38 -35
- 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 -1
- package/dist/deps-installer/deps-installer.js +59 -18
- package/dist/dist.min.js +15153 -37895
- 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 +123 -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 +90 -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 +1181 -0
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js +80 -0
- package/dist/es5/i3s-converter/helpers/gltf-attributes.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 +492 -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/i3s-converter.js +1512 -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 +2 -0
- package/dist/es5/i3s-converter/types.js.map +1 -0
- package/dist/es5/i3s-server/app.js +18 -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/routes/index.js +37 -0
- package/dist/es5/i3s-server/routes/index.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 +44 -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 +80 -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/dist/esm/i3s-converter/helpers/geometry-attributes.js +190 -0
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +895 -0
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js +73 -0
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/node-debug.js +72 -0
- package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/node-index-document.js +188 -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/i3s-converter.js +764 -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 +2 -0
- package/dist/esm/i3s-converter/types.js.map +1 -0
- package/dist/esm/i3s-server/app.js +16 -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/routes/index.js +16 -0
- package/dist/esm/i3s-server/routes/index.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 +141 -0
- package/dist/i3s-converter/helpers/coordinate-converter.d.ts +9 -9
- package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/coordinate-converter.js +118 -72
- package/dist/i3s-converter/helpers/create-scene-server-path.d.ts +5 -5
- package/dist/i3s-converter/helpers/create-scene-server-path.d.ts.map +1 -1
- 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 +4 -19
- package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-attributes.js +188 -185
- package/dist/i3s-converter/helpers/geometry-converter.d.ts +36 -39
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-converter.js +1150 -689
- package/dist/i3s-converter/helpers/gltf-attributes.d.ts +9 -0
- package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/gltf-attributes.js +85 -0
- package/dist/i3s-converter/helpers/node-debug.d.ts +7 -1
- package/dist/i3s-converter/helpers/node-debug.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/node-debug.js +106 -72
- package/dist/i3s-converter/helpers/node-index-document.d.ts +95 -0
- package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/node-index-document.js +250 -0
- package/dist/i3s-converter/helpers/node-pages.d.ts +81 -41
- package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/node-pages.js +313 -144
- package/dist/i3s-converter/i3s-converter.d.ts +60 -113
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.js +858 -951
- 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 +5 -30
- package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -1
- package/dist/i3s-converter/json-templates/layers.js +132 -194
- package/dist/i3s-converter/json-templates/metadata.js +24 -21
- package/dist/i3s-converter/json-templates/node.js +82 -77
- package/dist/i3s-converter/json-templates/scene-server.js +30 -27
- package/dist/i3s-converter/json-templates/shared-resources.js +116 -122
- package/dist/i3s-converter/json-templates/store.js +100 -95
- package/dist/i3s-converter/types.d.ts +137 -6
- package/dist/i3s-converter/types.d.ts.map +1 -1
- package/dist/i3s-converter/types.js +2 -2
- package/dist/i3s-server/app.js +2 -9
- package/dist/i3s-server/controllers/index-controller.js +16 -24
- package/dist/i3s-server/routes/index.js +11 -15
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -5
- package/dist/lib/utils/compress-util.d.ts +12 -20
- package/dist/lib/utils/compress-util.d.ts.map +1 -1
- 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 -1
- package/dist/lib/utils/file-utils.js +133 -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 +21 -12
- package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -1
- 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 -1
- 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.map +1 -1
- 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 +32 -24
- package/src/3d-tiles-attributes-worker.ts +43 -0
- package/src/3d-tiles-converter/3d-tiles-converter.ts +102 -40
- package/src/3d-tiles-converter/helpers/b3dm-converter.ts +39 -44
- package/src/constants.ts +2 -0
- package/src/converter-cli.ts +370 -0
- package/src/deps-installer/deps-installer.ts +71 -0
- package/src/i3s-attributes-worker.ts +59 -0
- package/src/i3s-converter/helpers/batch-ids-extensions.ts +205 -0
- package/src/i3s-converter/helpers/coordinate-converter.ts +33 -26
- package/src/i3s-converter/helpers/create-scene-server-path.ts +9 -5
- package/src/i3s-converter/helpers/feature-attributes.ts +247 -0
- package/src/i3s-converter/helpers/geometry-attributes.ts +98 -47
- package/src/i3s-converter/helpers/geometry-converter.ts +1635 -0
- package/src/i3s-converter/helpers/gltf-attributes.ts +100 -0
- package/src/i3s-converter/helpers/node-debug.ts +68 -16
- package/src/i3s-converter/helpers/node-index-document.ts +315 -0
- package/src/i3s-converter/helpers/node-pages.ts +222 -101
- package/src/i3s-converter/i3s-converter.ts +408 -555
- package/src/i3s-converter/json-templates/geometry-definitions.ts +83 -0
- package/src/i3s-converter/json-templates/layers.ts +27 -91
- package/src/i3s-converter/json-templates/shared-resources.ts +3 -3
- package/src/i3s-converter/types.ts +156 -5
- 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 +139 -0
- package/src/lib/utils/geometry-utils.ts +14 -0
- package/src/lib/utils/{lod-conversion-utils.js → lod-conversion-utils.ts} +27 -5
- package/src/lib/utils/queue.ts +17 -0
- package/src/lib/utils/write-queue.ts +110 -0
- package/src/pgm-loader.ts +2 -2
- 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-converter/types.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/utils/compress-util.js.map +0 -1
- 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/deps-installer/deps-installer.d.ts +0 -10
- package/src/deps-installer/deps-installer.js +0 -22
- package/src/i3s-converter/helpers/geometry-converter.d.ts +0 -44
- package/src/i3s-converter/helpers/geometry-converter.js +0 -992
- package/src/lib/utils/compress-util.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/lib/utils/{statistic-utills.js → statistic-utills.ts} +0 -0
|
@@ -0,0 +1,492 @@
|
|
|
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
|
+
this.inPageId = id;
|
|
32
|
+
this.id = id === 0 ? 'root' : id.toString();
|
|
33
|
+
this.converter = converter;
|
|
34
|
+
}
|
|
35
|
+
(0, _createClass2.default)(NodeIndexDocument, [{
|
|
36
|
+
key: "addData",
|
|
37
|
+
value: function () {
|
|
38
|
+
var _addData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data) {
|
|
39
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
40
|
+
while (1) switch (_context.prev = _context.next) {
|
|
41
|
+
case 0:
|
|
42
|
+
if (!this.converter.options.instantNodeWriting) {
|
|
43
|
+
_context.next = 5;
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
_context.next = 3;
|
|
47
|
+
return this.write(data);
|
|
48
|
+
case 3:
|
|
49
|
+
_context.next = 6;
|
|
50
|
+
break;
|
|
51
|
+
case 5:
|
|
52
|
+
this.data = data;
|
|
53
|
+
case 6:
|
|
54
|
+
return _context.abrupt("return", this);
|
|
55
|
+
case 7:
|
|
56
|
+
case "end":
|
|
57
|
+
return _context.stop();
|
|
58
|
+
}
|
|
59
|
+
}, _callee, this);
|
|
60
|
+
}));
|
|
61
|
+
function addData(_x) {
|
|
62
|
+
return _addData.apply(this, arguments);
|
|
63
|
+
}
|
|
64
|
+
return addData;
|
|
65
|
+
}()
|
|
66
|
+
}, {
|
|
67
|
+
key: "addChildren",
|
|
68
|
+
value: function () {
|
|
69
|
+
var _addChildren = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(childNodes) {
|
|
70
|
+
var newChildren, _iterator, _step, node, nodeData, data, _data$children;
|
|
71
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
72
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
73
|
+
case 0:
|
|
74
|
+
newChildren = [];
|
|
75
|
+
_iterator = _createForOfIteratorHelper(childNodes);
|
|
76
|
+
_context2.prev = 2;
|
|
77
|
+
_iterator.s();
|
|
78
|
+
case 4:
|
|
79
|
+
if ((_step = _iterator.n()).done) {
|
|
80
|
+
_context2.next = 12;
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
node = _step.value;
|
|
84
|
+
_context2.next = 8;
|
|
85
|
+
return node.load();
|
|
86
|
+
case 8:
|
|
87
|
+
nodeData = _context2.sent;
|
|
88
|
+
newChildren.push({
|
|
89
|
+
id: node.id,
|
|
90
|
+
href: "../".concat(node.id),
|
|
91
|
+
obb: nodeData.obb,
|
|
92
|
+
mbs: nodeData.mbs
|
|
93
|
+
});
|
|
94
|
+
case 10:
|
|
95
|
+
_context2.next = 4;
|
|
96
|
+
break;
|
|
97
|
+
case 12:
|
|
98
|
+
_context2.next = 17;
|
|
99
|
+
break;
|
|
100
|
+
case 14:
|
|
101
|
+
_context2.prev = 14;
|
|
102
|
+
_context2.t0 = _context2["catch"](2);
|
|
103
|
+
_iterator.e(_context2.t0);
|
|
104
|
+
case 17:
|
|
105
|
+
_context2.prev = 17;
|
|
106
|
+
_iterator.f();
|
|
107
|
+
return _context2.finish(17);
|
|
108
|
+
case 20:
|
|
109
|
+
this.children = this.children.concat(childNodes);
|
|
110
|
+
data = this.data;
|
|
111
|
+
if (!this.converter.options.instantNodeWriting) {
|
|
112
|
+
_context2.next = 26;
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
_context2.next = 25;
|
|
116
|
+
return this.load();
|
|
117
|
+
case 25:
|
|
118
|
+
data = _context2.sent;
|
|
119
|
+
case 26:
|
|
120
|
+
if (data) {
|
|
121
|
+
data.children = (_data$children = data.children) !== null && _data$children !== void 0 ? _data$children : [];
|
|
122
|
+
data.children = data.children.concat(newChildren);
|
|
123
|
+
}
|
|
124
|
+
if (!(this.converter.options.instantNodeWriting && data)) {
|
|
125
|
+
_context2.next = 30;
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
_context2.next = 30;
|
|
129
|
+
return this.write(data);
|
|
130
|
+
case 30:
|
|
131
|
+
case "end":
|
|
132
|
+
return _context2.stop();
|
|
133
|
+
}
|
|
134
|
+
}, _callee2, this, [[2, 14, 17, 20]]);
|
|
135
|
+
}));
|
|
136
|
+
function addChildren(_x2) {
|
|
137
|
+
return _addChildren.apply(this, arguments);
|
|
138
|
+
}
|
|
139
|
+
return addChildren;
|
|
140
|
+
}()
|
|
141
|
+
}, {
|
|
142
|
+
key: "addNeighbors",
|
|
143
|
+
value: function () {
|
|
144
|
+
var _addNeighbors = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3() {
|
|
145
|
+
var nodeData, _iterator2, _step2, _childNodeData$neighb, _nodeData$children, childNode, childNodeData, _iterator3, _step3, neighbor;
|
|
146
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
147
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
148
|
+
case 0:
|
|
149
|
+
_context3.next = 2;
|
|
150
|
+
return this.load();
|
|
151
|
+
case 2:
|
|
152
|
+
nodeData = _context3.sent;
|
|
153
|
+
_iterator2 = _createForOfIteratorHelper(this.children);
|
|
154
|
+
_context3.prev = 4;
|
|
155
|
+
_iterator2.s();
|
|
156
|
+
case 6:
|
|
157
|
+
if ((_step2 = _iterator2.n()).done) {
|
|
158
|
+
_context3.next = 43;
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
childNode = _step2.value;
|
|
162
|
+
_context3.next = 10;
|
|
163
|
+
return childNode.load();
|
|
164
|
+
case 10:
|
|
165
|
+
childNodeData = _context3.sent;
|
|
166
|
+
childNodeData.neighbors = (_childNodeData$neighb = childNodeData.neighbors) !== null && _childNodeData$neighb !== void 0 ? _childNodeData$neighb : [];
|
|
167
|
+
if (!(Number(nodeData === null || nodeData === void 0 ? void 0 : (_nodeData$children = nodeData.children) === null || _nodeData$children === void 0 ? void 0 : _nodeData$children.length) < 1000)) {
|
|
168
|
+
_context3.next = 33;
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
_iterator3 = _createForOfIteratorHelper(nodeData.children || []);
|
|
172
|
+
_context3.prev = 14;
|
|
173
|
+
_iterator3.s();
|
|
174
|
+
case 16:
|
|
175
|
+
if ((_step3 = _iterator3.n()).done) {
|
|
176
|
+
_context3.next = 23;
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
neighbor = _step3.value;
|
|
180
|
+
if (!(childNode.id === neighbor.id)) {
|
|
181
|
+
_context3.next = 20;
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
return _context3.abrupt("continue", 21);
|
|
185
|
+
case 20:
|
|
186
|
+
childNodeData.neighbors.push(_objectSpread({}, neighbor));
|
|
187
|
+
case 21:
|
|
188
|
+
_context3.next = 16;
|
|
189
|
+
break;
|
|
190
|
+
case 23:
|
|
191
|
+
_context3.next = 28;
|
|
192
|
+
break;
|
|
193
|
+
case 25:
|
|
194
|
+
_context3.prev = 25;
|
|
195
|
+
_context3.t0 = _context3["catch"](14);
|
|
196
|
+
_iterator3.e(_context3.t0);
|
|
197
|
+
case 28:
|
|
198
|
+
_context3.prev = 28;
|
|
199
|
+
_iterator3.f();
|
|
200
|
+
return _context3.finish(28);
|
|
201
|
+
case 31:
|
|
202
|
+
_context3.next = 35;
|
|
203
|
+
break;
|
|
204
|
+
case 33:
|
|
205
|
+
console.warn("Node ".concat(childNode.id, ": neighbors attribute is omited because of large number of neigbors"));
|
|
206
|
+
delete childNodeData.neighbors;
|
|
207
|
+
case 35:
|
|
208
|
+
if (!(this.converter.options.instantNodeWriting && childNodeData)) {
|
|
209
|
+
_context3.next = 38;
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
_context3.next = 38;
|
|
213
|
+
return childNode.write(childNodeData);
|
|
214
|
+
case 38:
|
|
215
|
+
_context3.next = 40;
|
|
216
|
+
return childNode.save();
|
|
217
|
+
case 40:
|
|
218
|
+
childNode.flush();
|
|
219
|
+
case 41:
|
|
220
|
+
_context3.next = 6;
|
|
221
|
+
break;
|
|
222
|
+
case 43:
|
|
223
|
+
_context3.next = 48;
|
|
224
|
+
break;
|
|
225
|
+
case 45:
|
|
226
|
+
_context3.prev = 45;
|
|
227
|
+
_context3.t1 = _context3["catch"](4);
|
|
228
|
+
_iterator2.e(_context3.t1);
|
|
229
|
+
case 48:
|
|
230
|
+
_context3.prev = 48;
|
|
231
|
+
_iterator2.f();
|
|
232
|
+
return _context3.finish(48);
|
|
233
|
+
case 51:
|
|
234
|
+
case "end":
|
|
235
|
+
return _context3.stop();
|
|
236
|
+
}
|
|
237
|
+
}, _callee3, this, [[4, 45, 48, 51], [14, 25, 28, 31]]);
|
|
238
|
+
}));
|
|
239
|
+
function addNeighbors() {
|
|
240
|
+
return _addNeighbors.apply(this, arguments);
|
|
241
|
+
}
|
|
242
|
+
return addNeighbors;
|
|
243
|
+
}()
|
|
244
|
+
}, {
|
|
245
|
+
key: "save",
|
|
246
|
+
value: function () {
|
|
247
|
+
var _save = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4() {
|
|
248
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
249
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
250
|
+
case 0:
|
|
251
|
+
if (!this.data) {
|
|
252
|
+
_context4.next = 3;
|
|
253
|
+
break;
|
|
254
|
+
}
|
|
255
|
+
_context4.next = 3;
|
|
256
|
+
return this.write(this.data);
|
|
257
|
+
case 3:
|
|
258
|
+
case "end":
|
|
259
|
+
return _context4.stop();
|
|
260
|
+
}
|
|
261
|
+
}, _callee4, this);
|
|
262
|
+
}));
|
|
263
|
+
function save() {
|
|
264
|
+
return _save.apply(this, arguments);
|
|
265
|
+
}
|
|
266
|
+
return save;
|
|
267
|
+
}()
|
|
268
|
+
}, {
|
|
269
|
+
key: "write",
|
|
270
|
+
value: function () {
|
|
271
|
+
var _write = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(node) {
|
|
272
|
+
var _this = this;
|
|
273
|
+
var path;
|
|
274
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
275
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
276
|
+
case 0:
|
|
277
|
+
path = (0, _path.join)(this.converter.layers0Path, 'nodes', this.id);
|
|
278
|
+
if (!this.converter.options.slpk) {
|
|
279
|
+
_context5.next = 6;
|
|
280
|
+
break;
|
|
281
|
+
}
|
|
282
|
+
_context5.next = 4;
|
|
283
|
+
return this.converter.writeQueue.enqueue({
|
|
284
|
+
archiveKey: "nodes/".concat(this.id, "/3dNodeIndexDocument.json.gz"),
|
|
285
|
+
writePromise: function writePromise() {
|
|
286
|
+
return (0, _fileUtils.writeFileForSlpk)(path, JSON.stringify(node), '3dNodeIndexDocument.json', true, _this.converter.compressList);
|
|
287
|
+
}
|
|
288
|
+
}, true);
|
|
289
|
+
case 4:
|
|
290
|
+
_context5.next = 8;
|
|
291
|
+
break;
|
|
292
|
+
case 6:
|
|
293
|
+
_context5.next = 8;
|
|
294
|
+
return this.converter.writeQueue.enqueue({
|
|
295
|
+
writePromise: function writePromise() {
|
|
296
|
+
return (0, _fileUtils.writeFile)(path, JSON.stringify(node));
|
|
297
|
+
}
|
|
298
|
+
}, true);
|
|
299
|
+
case 8:
|
|
300
|
+
case "end":
|
|
301
|
+
return _context5.stop();
|
|
302
|
+
}
|
|
303
|
+
}, _callee5, this);
|
|
304
|
+
}));
|
|
305
|
+
function write(_x3) {
|
|
306
|
+
return _write.apply(this, arguments);
|
|
307
|
+
}
|
|
308
|
+
return write;
|
|
309
|
+
}()
|
|
310
|
+
}, {
|
|
311
|
+
key: "load",
|
|
312
|
+
value: function () {
|
|
313
|
+
var _load = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6() {
|
|
314
|
+
var path, parentNodePath, parentNodeFileName;
|
|
315
|
+
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
316
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
317
|
+
case 0:
|
|
318
|
+
if (!this.data) {
|
|
319
|
+
_context6.next = 2;
|
|
320
|
+
break;
|
|
321
|
+
}
|
|
322
|
+
return _context6.abrupt("return", this.data);
|
|
323
|
+
case 2:
|
|
324
|
+
path = this.id;
|
|
325
|
+
parentNodePath = (0, _path.join)(this.converter.layers0Path, 'nodes', path);
|
|
326
|
+
parentNodeFileName = 'index.json';
|
|
327
|
+
if (this.converter.options.slpk) {
|
|
328
|
+
parentNodeFileName = '3dNodeIndexDocument.json';
|
|
329
|
+
}
|
|
330
|
+
_context6.next = 8;
|
|
331
|
+
return (0, _fileUtils.openJson)(parentNodePath, parentNodeFileName);
|
|
332
|
+
case 8:
|
|
333
|
+
return _context6.abrupt("return", _context6.sent);
|
|
334
|
+
case 9:
|
|
335
|
+
case "end":
|
|
336
|
+
return _context6.stop();
|
|
337
|
+
}
|
|
338
|
+
}, _callee6, this);
|
|
339
|
+
}));
|
|
340
|
+
function load() {
|
|
341
|
+
return _load.apply(this, arguments);
|
|
342
|
+
}
|
|
343
|
+
return load;
|
|
344
|
+
}()
|
|
345
|
+
}, {
|
|
346
|
+
key: "flush",
|
|
347
|
+
value: function flush() {
|
|
348
|
+
this.data = null;
|
|
349
|
+
}
|
|
350
|
+
}], [{
|
|
351
|
+
key: "createRootNode",
|
|
352
|
+
value: function () {
|
|
353
|
+
var _createRootNode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(boundingVolumes, converter) {
|
|
354
|
+
var rootData, rootNode;
|
|
355
|
+
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
356
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
357
|
+
case 0:
|
|
358
|
+
rootData = NodeIndexDocument.createRootNodeIndexDocument(boundingVolumes);
|
|
359
|
+
_context7.next = 3;
|
|
360
|
+
return new NodeIndexDocument(0, converter).addData(rootData);
|
|
361
|
+
case 3:
|
|
362
|
+
rootNode = _context7.sent;
|
|
363
|
+
return _context7.abrupt("return", rootNode);
|
|
364
|
+
case 5:
|
|
365
|
+
case "end":
|
|
366
|
+
return _context7.stop();
|
|
367
|
+
}
|
|
368
|
+
}, _callee7);
|
|
369
|
+
}));
|
|
370
|
+
function createRootNode(_x4, _x5) {
|
|
371
|
+
return _createRootNode.apply(this, arguments);
|
|
372
|
+
}
|
|
373
|
+
return createRootNode;
|
|
374
|
+
}()
|
|
375
|
+
}, {
|
|
376
|
+
key: "createNode",
|
|
377
|
+
value: function () {
|
|
378
|
+
var _createNode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee8(parentNode, boundingVolumes, lodSelection, nodeInPage, resources, converter) {
|
|
379
|
+
var data, node;
|
|
380
|
+
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
381
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
382
|
+
case 0:
|
|
383
|
+
_context8.next = 2;
|
|
384
|
+
return NodeIndexDocument.createNodeIndexDocument(parentNode, boundingVolumes, lodSelection, nodeInPage, resources);
|
|
385
|
+
case 2:
|
|
386
|
+
data = _context8.sent;
|
|
387
|
+
_context8.next = 5;
|
|
388
|
+
return new NodeIndexDocument(nodeInPage.index, converter).addData(data);
|
|
389
|
+
case 5:
|
|
390
|
+
node = _context8.sent;
|
|
391
|
+
return _context8.abrupt("return", node);
|
|
392
|
+
case 7:
|
|
393
|
+
case "end":
|
|
394
|
+
return _context8.stop();
|
|
395
|
+
}
|
|
396
|
+
}, _callee8);
|
|
397
|
+
}));
|
|
398
|
+
function createNode(_x6, _x7, _x8, _x9, _x10, _x11) {
|
|
399
|
+
return _createNode.apply(this, arguments);
|
|
400
|
+
}
|
|
401
|
+
return createNode;
|
|
402
|
+
}()
|
|
403
|
+
}, {
|
|
404
|
+
key: "createRootNodeIndexDocument",
|
|
405
|
+
value: function createRootNodeIndexDocument(boundingVolumes) {
|
|
406
|
+
var root0data = _objectSpread(_objectSpread({
|
|
407
|
+
version: "{".concat((0, _uuid.v4)().toUpperCase(), "}"),
|
|
408
|
+
id: 'root',
|
|
409
|
+
level: 0,
|
|
410
|
+
lodSelection: [{
|
|
411
|
+
metricType: 'maxScreenThresholdSQ',
|
|
412
|
+
maxError: 0
|
|
413
|
+
}, {
|
|
414
|
+
metricType: 'maxScreenThreshold',
|
|
415
|
+
maxError: 0
|
|
416
|
+
}]
|
|
417
|
+
}, boundingVolumes), {}, {
|
|
418
|
+
children: []
|
|
419
|
+
});
|
|
420
|
+
return (0, _jsonMapTransform.default)(root0data, (0, _node.NODE)());
|
|
421
|
+
}
|
|
422
|
+
}, {
|
|
423
|
+
key: "createNodeIndexDocument",
|
|
424
|
+
value: function () {
|
|
425
|
+
var _createNodeIndexDocument = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee9(parentNode, boundingVolumes, lodSelection, nodeInPage, resources) {
|
|
426
|
+
var texture, attributes, nodeId, parentNodeData, nodeData, node, _parentNode$converter, _parentNode$converter2, index, folderName;
|
|
427
|
+
return _regenerator.default.wrap(function _callee9$(_context9) {
|
|
428
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
429
|
+
case 0:
|
|
430
|
+
texture = resources.texture, attributes = resources.attributes;
|
|
431
|
+
nodeId = nodeInPage.index;
|
|
432
|
+
_context9.next = 4;
|
|
433
|
+
return parentNode.load();
|
|
434
|
+
case 4:
|
|
435
|
+
parentNodeData = _context9.sent;
|
|
436
|
+
nodeData = _objectSpread(_objectSpread({
|
|
437
|
+
version: parentNodeData.version,
|
|
438
|
+
id: nodeId.toString(),
|
|
439
|
+
level: parentNodeData.level + 1
|
|
440
|
+
}, boundingVolumes), {}, {
|
|
441
|
+
lodSelection: lodSelection,
|
|
442
|
+
parentNode: {
|
|
443
|
+
id: parentNode.id,
|
|
444
|
+
href: "../".concat(parentNode.id),
|
|
445
|
+
mbs: parentNodeData.mbs,
|
|
446
|
+
obb: parentNodeData.obb
|
|
447
|
+
},
|
|
448
|
+
children: [],
|
|
449
|
+
neighbors: []
|
|
450
|
+
});
|
|
451
|
+
node = (0, _jsonMapTransform.default)(nodeData, (0, _node.NODE)());
|
|
452
|
+
if (nodeInPage.mesh) {
|
|
453
|
+
node.geometryData = [{
|
|
454
|
+
href: './geometries/0'
|
|
455
|
+
}];
|
|
456
|
+
node.sharedResource = {
|
|
457
|
+
href: './shared'
|
|
458
|
+
};
|
|
459
|
+
if (texture) {
|
|
460
|
+
node.textureData = [{
|
|
461
|
+
href: './textures/0'
|
|
462
|
+
}, {
|
|
463
|
+
href: './textures/1'
|
|
464
|
+
}];
|
|
465
|
+
}
|
|
466
|
+
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) {
|
|
467
|
+
node.attributeData = [];
|
|
468
|
+
for (index = 0; index < attributes.length; index++) {
|
|
469
|
+
folderName = parentNode.converter.layers0.attributeStorageInfo[index].key;
|
|
470
|
+
node.attributeData.push({
|
|
471
|
+
href: "./attributes/".concat(folderName, "/0")
|
|
472
|
+
});
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
return _context9.abrupt("return", node);
|
|
477
|
+
case 9:
|
|
478
|
+
case "end":
|
|
479
|
+
return _context9.stop();
|
|
480
|
+
}
|
|
481
|
+
}, _callee9);
|
|
482
|
+
}));
|
|
483
|
+
function createNodeIndexDocument(_x12, _x13, _x14, _x15, _x16) {
|
|
484
|
+
return _createNodeIndexDocument.apply(this, arguments);
|
|
485
|
+
}
|
|
486
|
+
return createNodeIndexDocument;
|
|
487
|
+
}()
|
|
488
|
+
}]);
|
|
489
|
+
return NodeIndexDocument;
|
|
490
|
+
}();
|
|
491
|
+
exports.NodeIndexDocument = NodeIndexDocument;
|
|
492
|
+
//# 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","_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","neighbors","Number","console","warn","save","flush","t1","addNeighbors","_save","_callee4","_callee4$","_context4","_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 * 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 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 // The save after adding neighbors is the last one. Flush the the node\n childNode.flush();\n }\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 /**\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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"}
|