@loaders.gl/tile-converter 4.0.0-alpha.4 → 4.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d-tiles-attributes-worker.d.ts +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 +273 -231
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +79 -18
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -0
- package/dist/3d-tiles-converter/helpers/b3dm-converter.js +269 -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 +186 -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 +60 -23
- package/dist/dist.min.js +63496 -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 +470 -0
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +301 -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 +1173 -0
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js +83 -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 +1519 -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/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 +248 -0
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +224 -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/{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 +887 -0
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js +76 -0
- package/dist/esm/i3s-converter/helpers/gltf-attributes.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 +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 +771 -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/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 +37 -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 +11 -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 +41 -0
- package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/coordinate-converter.js +120 -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 +36 -35
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/geometry-converter.js +1149 -650
- 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 +88 -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 +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 +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/i3s-converter.d.ts +267 -0
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -0
- package/dist/i3s-converter/i3s-converter.js +860 -861
- 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 +145 -0
- package/dist/i3s-converter/types.d.ts.map +1 -0
- package/dist/i3s-converter/types.js +2 -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 +2 -9
- 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/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/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 +133 -36
- package/dist/lib/utils/lod-conversion-utils.d.ts +21 -12
- 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 +35 -24
- package/src/3d-tiles-attributes-worker.ts +43 -0
- package/src/3d-tiles-converter/3d-tiles-converter.ts +124 -59
- package/src/3d-tiles-converter/helpers/{b3dm-converter.js → b3dm-converter.ts} +71 -38
- 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 +71 -0
- package/src/i3s-attributes-worker.ts +50 -0
- package/src/i3s-converter/helpers/batch-ids-extensions.ts +206 -0
- package/src/i3s-converter/helpers/coordinate-converter.ts +87 -27
- 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 +1608 -0
- package/src/i3s-converter/helpers/gltf-attributes.ts +103 -0
- package/src/i3s-converter/helpers/node-debug.ts +146 -0
- package/src/i3s-converter/helpers/node-index-document.ts +315 -0
- package/src/i3s-converter/helpers/node-pages.ts +344 -0
- package/src/i3s-converter/i3s-converter.ts +557 -627
- 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 +165 -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 +139 -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 +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,301 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = 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 _core = require("@loaders.gl/core");
|
|
14
|
+
var _gltf = require("@loaders.gl/gltf");
|
|
15
|
+
var _dTiles = require("@loaders.gl/3d-tiles");
|
|
16
|
+
var _core2 = require("@math.gl/core");
|
|
17
|
+
var _geospatial = require("@math.gl/geospatial");
|
|
18
|
+
var _textureAtlas = require("./texture-atlas");
|
|
19
|
+
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; }
|
|
20
|
+
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; }
|
|
21
|
+
var Z_UP_TO_Y_UP_MATRIX = new _core2.Matrix4([1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1]);
|
|
22
|
+
var scratchVector = new _core2.Vector3();
|
|
23
|
+
var B3dmConverter = function () {
|
|
24
|
+
function B3dmConverter() {
|
|
25
|
+
(0, _classCallCheck2.default)(this, B3dmConverter);
|
|
26
|
+
(0, _defineProperty2.default)(this, "rtcCenter", void 0);
|
|
27
|
+
(0, _defineProperty2.default)(this, "i3sTile", void 0);
|
|
28
|
+
}
|
|
29
|
+
(0, _createClass2.default)(B3dmConverter, [{
|
|
30
|
+
key: "convert",
|
|
31
|
+
value: function () {
|
|
32
|
+
var _convert = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(i3sAttributesData) {
|
|
33
|
+
var featureAttributes,
|
|
34
|
+
gltf,
|
|
35
|
+
b3dm,
|
|
36
|
+
_args = arguments;
|
|
37
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
38
|
+
while (1) switch (_context.prev = _context.next) {
|
|
39
|
+
case 0:
|
|
40
|
+
featureAttributes = _args.length > 1 && _args[1] !== undefined ? _args[1] : null;
|
|
41
|
+
_context.next = 3;
|
|
42
|
+
return this.buildGltf(i3sAttributesData, featureAttributes);
|
|
43
|
+
case 3:
|
|
44
|
+
gltf = _context.sent;
|
|
45
|
+
b3dm = (0, _core.encodeSync)({
|
|
46
|
+
gltfEncoded: new Uint8Array(gltf),
|
|
47
|
+
type: 'b3dm',
|
|
48
|
+
featuresLength: this._getFeaturesLength(featureAttributes),
|
|
49
|
+
batchTable: featureAttributes
|
|
50
|
+
}, _dTiles.Tile3DWriter);
|
|
51
|
+
return _context.abrupt("return", b3dm);
|
|
52
|
+
case 6:
|
|
53
|
+
case "end":
|
|
54
|
+
return _context.stop();
|
|
55
|
+
}
|
|
56
|
+
}, _callee, this);
|
|
57
|
+
}));
|
|
58
|
+
function convert(_x) {
|
|
59
|
+
return _convert.apply(this, arguments);
|
|
60
|
+
}
|
|
61
|
+
return convert;
|
|
62
|
+
}()
|
|
63
|
+
}, {
|
|
64
|
+
key: "buildGltf",
|
|
65
|
+
value: function () {
|
|
66
|
+
var _buildGltf = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(i3sAttributesData, featureAttributes) {
|
|
67
|
+
var tileContent, textureFormat, material, attributes, originalIndices, cartesianOrigin, cartographicOrigin, modelMatrix, gltfBuilder, textureIndex, pbrMaterialInfo, materialIndex, positions, positionsValue, indices, meshIndex, transformMatrix, nodeIndex, sceneIndex, gltfBuffer;
|
|
68
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
69
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
70
|
+
case 0:
|
|
71
|
+
tileContent = i3sAttributesData.tileContent, textureFormat = i3sAttributesData.textureFormat;
|
|
72
|
+
material = tileContent.material, attributes = tileContent.attributes, originalIndices = tileContent.indices, cartesianOrigin = tileContent.cartesianOrigin, cartographicOrigin = tileContent.cartographicOrigin, modelMatrix = tileContent.modelMatrix;
|
|
73
|
+
gltfBuilder = new _gltf.GLTFScenegraph();
|
|
74
|
+
_context2.next = 5;
|
|
75
|
+
return this._addI3sTextureToGltf(tileContent, textureFormat, gltfBuilder);
|
|
76
|
+
case 5:
|
|
77
|
+
textureIndex = _context2.sent;
|
|
78
|
+
pbrMaterialInfo = this._convertI3sMaterialToGltfMaterial(material, textureIndex);
|
|
79
|
+
materialIndex = gltfBuilder.addMaterial(pbrMaterialInfo);
|
|
80
|
+
positions = attributes.positions;
|
|
81
|
+
positionsValue = positions.value;
|
|
82
|
+
if (attributes.uvRegions && attributes.texCoords) {
|
|
83
|
+
attributes.texCoords.value = (0, _textureAtlas.convertTextureAtlas)(attributes.texCoords.value, attributes.uvRegions.value);
|
|
84
|
+
}
|
|
85
|
+
attributes.positions.value = this._normalizePositions(positionsValue, cartesianOrigin, cartographicOrigin, modelMatrix);
|
|
86
|
+
this._createBatchIds(tileContent, featureAttributes);
|
|
87
|
+
if (attributes.normals && !this._checkNormals(attributes.normals.value)) {
|
|
88
|
+
delete attributes.normals;
|
|
89
|
+
}
|
|
90
|
+
indices = originalIndices || this._generateSynteticIndices(positionsValue.length / positions.size);
|
|
91
|
+
meshIndex = gltfBuilder.addMesh({
|
|
92
|
+
attributes: attributes,
|
|
93
|
+
indices: indices,
|
|
94
|
+
material: materialIndex,
|
|
95
|
+
mode: 4
|
|
96
|
+
});
|
|
97
|
+
transformMatrix = this._generateTransformMatrix(cartesianOrigin);
|
|
98
|
+
nodeIndex = gltfBuilder.addNode({
|
|
99
|
+
meshIndex: meshIndex,
|
|
100
|
+
matrix: transformMatrix
|
|
101
|
+
});
|
|
102
|
+
sceneIndex = gltfBuilder.addScene({
|
|
103
|
+
nodeIndices: [nodeIndex]
|
|
104
|
+
});
|
|
105
|
+
gltfBuilder.setDefaultScene(sceneIndex);
|
|
106
|
+
gltfBuilder.createBinaryChunk();
|
|
107
|
+
gltfBuffer = (0, _core.encodeSync)(gltfBuilder.gltf, _gltf.GLTFWriter);
|
|
108
|
+
return _context2.abrupt("return", gltfBuffer);
|
|
109
|
+
case 23:
|
|
110
|
+
case "end":
|
|
111
|
+
return _context2.stop();
|
|
112
|
+
}
|
|
113
|
+
}, _callee2, this);
|
|
114
|
+
}));
|
|
115
|
+
function buildGltf(_x2, _x3) {
|
|
116
|
+
return _buildGltf.apply(this, arguments);
|
|
117
|
+
}
|
|
118
|
+
return buildGltf;
|
|
119
|
+
}()
|
|
120
|
+
}, {
|
|
121
|
+
key: "_addI3sTextureToGltf",
|
|
122
|
+
value: function () {
|
|
123
|
+
var _addI3sTextureToGltf2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(tileContent, textureFormat, gltfBuilder) {
|
|
124
|
+
var texture, material, attributes, textureIndex, selectedTexture, mimeType, imageIndex;
|
|
125
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
126
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
127
|
+
case 0:
|
|
128
|
+
texture = tileContent.texture, material = tileContent.material, attributes = tileContent.attributes;
|
|
129
|
+
textureIndex = null;
|
|
130
|
+
selectedTexture = texture;
|
|
131
|
+
if (!texture && material) {
|
|
132
|
+
selectedTexture = material.pbrMetallicRoughness && material.pbrMetallicRoughness.baseColorTexture && material.pbrMetallicRoughness.baseColorTexture.texture.source.image;
|
|
133
|
+
}
|
|
134
|
+
if (selectedTexture) {
|
|
135
|
+
mimeType = this._deduceMimeTypeFromFormat(textureFormat);
|
|
136
|
+
imageIndex = gltfBuilder.addImage(selectedTexture, mimeType);
|
|
137
|
+
textureIndex = gltfBuilder.addTexture({
|
|
138
|
+
imageIndex: imageIndex
|
|
139
|
+
});
|
|
140
|
+
delete attributes.colors;
|
|
141
|
+
}
|
|
142
|
+
return _context3.abrupt("return", textureIndex);
|
|
143
|
+
case 6:
|
|
144
|
+
case "end":
|
|
145
|
+
return _context3.stop();
|
|
146
|
+
}
|
|
147
|
+
}, _callee3, this);
|
|
148
|
+
}));
|
|
149
|
+
function _addI3sTextureToGltf(_x4, _x5, _x6) {
|
|
150
|
+
return _addI3sTextureToGltf2.apply(this, arguments);
|
|
151
|
+
}
|
|
152
|
+
return _addI3sTextureToGltf;
|
|
153
|
+
}()
|
|
154
|
+
}, {
|
|
155
|
+
key: "_normalizePositions",
|
|
156
|
+
value: function _normalizePositions(positionsValue, cartesianOrigin, cartographicOrigin, modelMatrix) {
|
|
157
|
+
var newPositionsValue = new Float32Array(positionsValue.length);
|
|
158
|
+
for (var index = 0; index < positionsValue.length; index += 3) {
|
|
159
|
+
var vertex = positionsValue.subarray(index, index + 3);
|
|
160
|
+
var cartesianOriginVector = new _core2.Vector3(cartesianOrigin);
|
|
161
|
+
var vertexVector = new _core2.Vector3(Array.from(vertex)).transform(modelMatrix).add(cartographicOrigin);
|
|
162
|
+
_geospatial.Ellipsoid.WGS84.cartographicToCartesian(vertexVector, scratchVector);
|
|
163
|
+
vertexVector = scratchVector.subtract(cartesianOriginVector);
|
|
164
|
+
newPositionsValue.set(vertexVector, index);
|
|
165
|
+
}
|
|
166
|
+
return newPositionsValue;
|
|
167
|
+
}
|
|
168
|
+
}, {
|
|
169
|
+
key: "_generateTransformMatrix",
|
|
170
|
+
value: function _generateTransformMatrix(cartesianOrigin) {
|
|
171
|
+
var translateOriginMatrix = new _core2.Matrix4().translate(cartesianOrigin);
|
|
172
|
+
var result = translateOriginMatrix.multiplyLeft(Z_UP_TO_Y_UP_MATRIX);
|
|
173
|
+
return result;
|
|
174
|
+
}
|
|
175
|
+
}, {
|
|
176
|
+
key: "_createBatchIds",
|
|
177
|
+
value: function _createBatchIds(i3sContent, featureAttributes) {
|
|
178
|
+
var featureIds = i3sContent.featureIds;
|
|
179
|
+
var _ref = featureAttributes || {},
|
|
180
|
+
objectIds = _ref.OBJECTID;
|
|
181
|
+
if (!featureIds || !objectIds) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
for (var i = 0; i < featureIds.length; i++) {
|
|
185
|
+
var featureId = featureIds[i];
|
|
186
|
+
var batchId = objectIds.indexOf(featureId);
|
|
187
|
+
featureIds[i] = batchId;
|
|
188
|
+
}
|
|
189
|
+
i3sContent.attributes._BATCHID = {
|
|
190
|
+
size: 1,
|
|
191
|
+
byteOffset: 0,
|
|
192
|
+
value: featureIds
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
}, {
|
|
196
|
+
key: "_generateSynteticIndices",
|
|
197
|
+
value: function _generateSynteticIndices(vertexCount) {
|
|
198
|
+
var result = new Uint32Array(vertexCount);
|
|
199
|
+
for (var index = 0; index < vertexCount; index++) {
|
|
200
|
+
result.set([index], index);
|
|
201
|
+
}
|
|
202
|
+
return result;
|
|
203
|
+
}
|
|
204
|
+
}, {
|
|
205
|
+
key: "_deduceMimeTypeFromFormat",
|
|
206
|
+
value: function _deduceMimeTypeFromFormat(format) {
|
|
207
|
+
switch (format) {
|
|
208
|
+
case 'jpg':
|
|
209
|
+
return 'image/jpeg';
|
|
210
|
+
case 'png':
|
|
211
|
+
return 'image/png';
|
|
212
|
+
case 'ktx2':
|
|
213
|
+
return 'image/ktx2';
|
|
214
|
+
default:
|
|
215
|
+
console.warn("Unexpected texture format in I3S: ".concat(format));
|
|
216
|
+
return 'image/jpeg';
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}, {
|
|
220
|
+
key: "_convertI3sMaterialToGltfMaterial",
|
|
221
|
+
value: function _convertI3sMaterialToGltfMaterial(material, textureIndex) {
|
|
222
|
+
var isTextureIndexExists = textureIndex !== null;
|
|
223
|
+
if (!material) {
|
|
224
|
+
material = {
|
|
225
|
+
alphaMode: 'OPAQUE',
|
|
226
|
+
doubleSided: false,
|
|
227
|
+
pbrMetallicRoughness: {
|
|
228
|
+
metallicFactor: 0,
|
|
229
|
+
roughnessFactor: 1
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
if (isTextureIndexExists) {
|
|
233
|
+
material.pbrMetallicRoughness.baseColorTexture = {
|
|
234
|
+
index: textureIndex,
|
|
235
|
+
texCoord: 0
|
|
236
|
+
};
|
|
237
|
+
} else {
|
|
238
|
+
material.pbrMetallicRoughness.baseColorFactor = [1, 1, 1, 1];
|
|
239
|
+
}
|
|
240
|
+
return material;
|
|
241
|
+
}
|
|
242
|
+
if (textureIndex !== null) {
|
|
243
|
+
material = this._setGltfTexture(material, textureIndex);
|
|
244
|
+
}
|
|
245
|
+
return material;
|
|
246
|
+
}
|
|
247
|
+
}, {
|
|
248
|
+
key: "_setGltfTexture",
|
|
249
|
+
value: function _setGltfTexture(materialDefinition, textureIndex) {
|
|
250
|
+
var material = _objectSpread(_objectSpread({}, materialDefinition), {}, {
|
|
251
|
+
pbrMetallicRoughness: _objectSpread({}, materialDefinition.pbrMetallicRoughness)
|
|
252
|
+
});
|
|
253
|
+
if (materialDefinition.pbrMetallicRoughness && materialDefinition.pbrMetallicRoughness.baseColorTexture) {
|
|
254
|
+
material.pbrMetallicRoughness.baseColorTexture = {
|
|
255
|
+
index: textureIndex,
|
|
256
|
+
texCoord: 0
|
|
257
|
+
};
|
|
258
|
+
} else if (materialDefinition.emissiveTexture) {
|
|
259
|
+
material.emissiveTexture = {
|
|
260
|
+
index: textureIndex,
|
|
261
|
+
texCoord: 0
|
|
262
|
+
};
|
|
263
|
+
} else if (materialDefinition.pbrMetallicRoughness && materialDefinition.pbrMetallicRoughness.metallicRoughnessTexture) {
|
|
264
|
+
material.pbrMetallicRoughness.metallicRoughnessTexture = {
|
|
265
|
+
index: textureIndex,
|
|
266
|
+
texCoord: 0
|
|
267
|
+
};
|
|
268
|
+
} else if (materialDefinition.normalTexture) {
|
|
269
|
+
material.normalTexture = {
|
|
270
|
+
index: textureIndex,
|
|
271
|
+
texCoord: 0
|
|
272
|
+
};
|
|
273
|
+
} else if (materialDefinition.occlusionTexture) {
|
|
274
|
+
material.occlusionTexture = {
|
|
275
|
+
index: textureIndex,
|
|
276
|
+
texCoord: 0
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
return material;
|
|
280
|
+
}
|
|
281
|
+
}, {
|
|
282
|
+
key: "_getFeaturesLength",
|
|
283
|
+
value: function _getFeaturesLength(attributes) {
|
|
284
|
+
if (!attributes) {
|
|
285
|
+
return 0;
|
|
286
|
+
}
|
|
287
|
+
var firstKey = Object.keys(attributes)[0];
|
|
288
|
+
return firstKey ? attributes[firstKey].length : 0;
|
|
289
|
+
}
|
|
290
|
+
}, {
|
|
291
|
+
key: "_checkNormals",
|
|
292
|
+
value: function _checkNormals(normals) {
|
|
293
|
+
return normals.find(function (value) {
|
|
294
|
+
return value;
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
}]);
|
|
298
|
+
return B3dmConverter;
|
|
299
|
+
}();
|
|
300
|
+
exports.default = B3dmConverter;
|
|
301
|
+
//# sourceMappingURL=b3dm-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"b3dm-converter.js","names":["_core","require","_gltf","_dTiles","_core2","_geospatial","_textureAtlas","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","Z_UP_TO_Y_UP_MATRIX","Matrix4","scratchVector","Vector3","B3dmConverter","_classCallCheck2","_createClass2","value","_convert","_asyncToGenerator2","_regenerator","mark","_callee","i3sAttributesData","featureAttributes","gltf","b3dm","_args","wrap","_callee$","_context","prev","next","undefined","buildGltf","sent","encodeSync","gltfEncoded","Uint8Array","type","featuresLength","_getFeaturesLength","batchTable","Tile3DWriter","abrupt","stop","convert","_x","_buildGltf","_callee2","tileContent","textureFormat","material","attributes","originalIndices","cartesianOrigin","cartographicOrigin","modelMatrix","gltfBuilder","textureIndex","pbrMaterialInfo","materialIndex","positions","positionsValue","indices","meshIndex","transformMatrix","nodeIndex","sceneIndex","gltfBuffer","_callee2$","_context2","GLTFScenegraph","_addI3sTextureToGltf","_convertI3sMaterialToGltfMaterial","addMaterial","uvRegions","texCoords","convertTextureAtlas","_normalizePositions","_createBatchIds","normals","_checkNormals","_generateSynteticIndices","size","addMesh","mode","_generateTransformMatrix","addNode","matrix","addScene","nodeIndices","setDefaultScene","createBinaryChunk","GLTFWriter","_x2","_x3","_addI3sTextureToGltf2","_callee3","texture","selectedTexture","mimeType","imageIndex","_callee3$","_context3","pbrMetallicRoughness","baseColorTexture","image","_deduceMimeTypeFromFormat","addImage","addTexture","colors","_x4","_x5","_x6","newPositionsValue","Float32Array","index","vertex","subarray","cartesianOriginVector","vertexVector","Array","from","transform","add","Ellipsoid","WGS84","cartographicToCartesian","subtract","set","translateOriginMatrix","translate","result","multiplyLeft","i3sContent","featureIds","_ref","objectIds","OBJECTID","featureId","batchId","indexOf","_BATCHID","byteOffset","vertexCount","Uint32Array","format","console","warn","concat","isTextureIndexExists","alphaMode","doubleSided","metallicFactor","roughnessFactor","texCoord","baseColorFactor","_setGltfTexture","materialDefinition","emissiveTexture","metallicRoughnessTexture","normalTexture","occlusionTexture","firstKey","find","exports"],"sources":["../../../../src/3d-tiles-converter/helpers/b3dm-converter.ts"],"sourcesContent":["import type {I3SAttributesData} from '../../3d-tiles-attributes-worker';\n\nimport {encodeSync} from '@loaders.gl/core';\nimport {GLTFScenegraph, GLTFWriter} from '@loaders.gl/gltf';\nimport {Tile3DWriter} from '@loaders.gl/3d-tiles';\nimport {Matrix4, Vector3} from '@math.gl/core';\nimport {Ellipsoid} from '@math.gl/geospatial';\nimport {convertTextureAtlas} from './texture-atlas';\n\nconst Z_UP_TO_Y_UP_MATRIX = new Matrix4([1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1]);\nconst scratchVector = new Vector3();\n\n/**\n * Converts content of an I3S node to *.b3dm's file content\n */\nexport default class B3dmConverter {\n // @ts-expect-error\n rtcCenter: Float32Array;\n i3sTile: any;\n\n /**\n * The starter of content conversion\n * @param i3sTile - Tile3D instance for I3S node\n * @returns - encoded content\n */\n async convert(\n i3sAttributesData: I3SAttributesData,\n featureAttributes: any = null\n ): Promise<ArrayBuffer> {\n const gltf = await this.buildGltf(i3sAttributesData, featureAttributes);\n const b3dm = encodeSync(\n {\n gltfEncoded: new Uint8Array(gltf),\n type: 'b3dm',\n featuresLength: this._getFeaturesLength(featureAttributes),\n batchTable: featureAttributes\n },\n Tile3DWriter\n );\n return b3dm;\n }\n\n /**\n * Build and encode gltf\n * @param i3sTile - Tile3D instance for I3S node\n * @returns - encoded glb content\n */\n async buildGltf(\n i3sAttributesData: I3SAttributesData,\n featureAttributes: any\n ): Promise<ArrayBuffer> {\n const {tileContent, textureFormat} = i3sAttributesData;\n const {\n material,\n attributes,\n indices: originalIndices,\n cartesianOrigin,\n cartographicOrigin,\n modelMatrix\n } = tileContent;\n const gltfBuilder = new GLTFScenegraph();\n\n const textureIndex = await this._addI3sTextureToGltf(tileContent, textureFormat, gltfBuilder);\n const pbrMaterialInfo = this._convertI3sMaterialToGltfMaterial(material, textureIndex);\n const materialIndex = gltfBuilder.addMaterial(pbrMaterialInfo);\n\n const positions = attributes.positions;\n const positionsValue = positions.value;\n\n if (attributes.uvRegions && attributes.texCoords) {\n attributes.texCoords.value = convertTextureAtlas(\n attributes.texCoords.value,\n attributes.uvRegions.value\n );\n }\n\n attributes.positions.value = this._normalizePositions(\n positionsValue,\n cartesianOrigin,\n cartographicOrigin,\n modelMatrix\n );\n this._createBatchIds(tileContent, featureAttributes);\n if (attributes.normals && !this._checkNormals(attributes.normals.value)) {\n delete attributes.normals;\n }\n const indices =\n originalIndices || this._generateSynteticIndices(positionsValue.length / positions.size);\n const meshIndex = gltfBuilder.addMesh({\n attributes,\n indices,\n material: materialIndex,\n mode: 4\n });\n const transformMatrix = this._generateTransformMatrix(cartesianOrigin);\n const nodeIndex = gltfBuilder.addNode({meshIndex, matrix: transformMatrix});\n const sceneIndex = gltfBuilder.addScene({nodeIndices: [nodeIndex]});\n gltfBuilder.setDefaultScene(sceneIndex);\n\n gltfBuilder.createBinaryChunk();\n\n const gltfBuffer = encodeSync(gltfBuilder.gltf, GLTFWriter);\n\n return gltfBuffer;\n }\n\n /**\n * Update gltfBuilder with texture from I3S tile\n * @param {object} i3sTile - Tile3D object\n * @param {GLTFScenegraph} gltfBuilder - gltfScenegraph instance to construct GLTF\n * @returns {Promise<number | null>} - GLTF texture index\n */\n async _addI3sTextureToGltf(tileContent, textureFormat, gltfBuilder) {\n const {texture, material, attributes} = tileContent;\n let textureIndex = null;\n let selectedTexture = texture;\n if (!texture && material) {\n selectedTexture =\n material.pbrMetallicRoughness &&\n material.pbrMetallicRoughness.baseColorTexture &&\n material.pbrMetallicRoughness.baseColorTexture.texture.source.image;\n }\n if (selectedTexture) {\n const mimeType = this._deduceMimeTypeFromFormat(textureFormat);\n const imageIndex = gltfBuilder.addImage(selectedTexture, mimeType);\n textureIndex = gltfBuilder.addTexture({imageIndex});\n delete attributes.colors;\n }\n return textureIndex;\n }\n\n /**\n * Generate a positions array which is correct for 3DTiles/GLTF format\n * @param {Float64Array} positionsValue - the input geometry positions array\n * @param {number[]} cartesianOrigin - the tile center in the cartesian coordinate system\n * @param {number[]} cartographicOrigin - the tile center in the cartographic coordinate system\n * @param {number[]} modelMatrix - the model matrix of geometry\n * @returns {Float32Array} - the output geometry positions array\n */\n _normalizePositions(positionsValue, cartesianOrigin, cartographicOrigin, modelMatrix) {\n const newPositionsValue = new Float32Array(positionsValue.length);\n for (let index = 0; index < positionsValue.length; index += 3) {\n const vertex = positionsValue.subarray(index, index + 3);\n const cartesianOriginVector = new Vector3(cartesianOrigin);\n let vertexVector = new Vector3(Array.from(vertex))\n .transform(modelMatrix)\n .add(cartographicOrigin);\n Ellipsoid.WGS84.cartographicToCartesian(vertexVector, scratchVector);\n vertexVector = scratchVector.subtract(cartesianOriginVector);\n newPositionsValue.set(vertexVector, index);\n }\n return newPositionsValue;\n }\n\n /**\n * Generate the transformation matrix for GLTF node:\n * https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#reference-node\n * 1. Create the translate transformation from cartesianOrigin (the positions array stores offsets from this cartesianOrigin)\n * 2. Create the rotation transformation to rotate model from z-up coordinates (I3S specific) to y-up coordinates (GLTF specific)\n * @param {number[]} cartesianOrigin - the tile center in the cartesian coordinate system\n * @returns {Matrix4} - an array of 16 numbers (4x4 matrix)\n */\n _generateTransformMatrix(cartesianOrigin) {\n const translateOriginMatrix = new Matrix4().translate(cartesianOrigin);\n const result = translateOriginMatrix.multiplyLeft(Z_UP_TO_Y_UP_MATRIX);\n return result;\n }\n\n /**\n * Create _BATCHID attribute\n * @param {Object} i3sContent - the source object\n * @returns {void}\n */\n _createBatchIds(i3sContent, featureAttributes) {\n const {featureIds} = i3sContent;\n const {OBJECTID: objectIds} = featureAttributes || {};\n if (!featureIds || !objectIds) {\n return;\n }\n\n for (let i = 0; i < featureIds.length; i++) {\n const featureId = featureIds[i];\n const batchId = objectIds.indexOf(featureId);\n featureIds[i] = batchId;\n }\n\n i3sContent.attributes._BATCHID = {\n size: 1,\n byteOffset: 0,\n value: featureIds\n };\n }\n\n /**\n * luma.gl can not work without indices now:\n * https://github.com/visgl/luma.gl/blob/d8cad75b9f8ca3e578cf078ed9d19e619c2ddbc9/modules/experimental/src/gltf/gltf-instantiator.js#L115\n * This method generates syntetic indices array: [0, 1, 2, 3, .... , vertexCount-1]\n * @param {number} vertexCount - vertex count in the geometry\n * @returns {Uint32Array} indices array.\n */\n _generateSynteticIndices(vertexCount) {\n const result = new Uint32Array(vertexCount);\n for (let index = 0; index < vertexCount; index++) {\n result.set([index], index);\n }\n return result;\n }\n\n /**\n * Deduce mime type by format from `textureSetDefinition.formats[0].format`\n * https://github.com/Esri/i3s-spec/blob/master/docs/1.7/textureSetDefinitionFormat.cmn.md\n * @param {string} format - format name\n * @returns {string} mime type.\n */\n _deduceMimeTypeFromFormat(format) {\n switch (format) {\n case 'jpg':\n return 'image/jpeg';\n case 'png':\n return 'image/png';\n case 'ktx2':\n return 'image/ktx2';\n default:\n console.warn(`Unexpected texture format in I3S: ${format}`); // eslint-disable-line no-console, no-undef\n return 'image/jpeg';\n }\n }\n\n /**\n * Convert i3s material to GLTF compatible material\n * @param {object} material - i3s material definition\n * @param {number | null} textureIndex - texture index in GLTF\n * @returns {object} GLTF material\n */\n _convertI3sMaterialToGltfMaterial(material, textureIndex) {\n const isTextureIndexExists = textureIndex !== null;\n\n if (!material) {\n material = {\n alphaMode: 'OPAQUE',\n doubleSided: false,\n pbrMetallicRoughness: {\n metallicFactor: 0,\n roughnessFactor: 1\n }\n };\n\n if (isTextureIndexExists) {\n material.pbrMetallicRoughness.baseColorTexture = {\n index: textureIndex,\n texCoord: 0\n };\n } else {\n material.pbrMetallicRoughness.baseColorFactor = [1, 1, 1, 1];\n }\n\n return material;\n }\n\n if (textureIndex !== null) {\n material = this._setGltfTexture(material, textureIndex);\n }\n\n return material;\n }\n\n /**\n * Set texture properties in material with GLTF textureIndex\n * @param {object} materialDefinition - i3s material definition\n * @param {number} textureIndex - texture index in GLTF\n * @returns {void}\n */\n _setGltfTexture(materialDefinition, textureIndex) {\n const material = {\n ...materialDefinition,\n pbrMetallicRoughness: {...materialDefinition.pbrMetallicRoughness}\n };\n // I3SLoader now support loading only one texture. This elseif sequence will assign this texture to one of\n // properties defined in materialDefinition\n if (\n materialDefinition.pbrMetallicRoughness &&\n materialDefinition.pbrMetallicRoughness.baseColorTexture\n ) {\n material.pbrMetallicRoughness.baseColorTexture = {\n index: textureIndex,\n texCoord: 0\n };\n } else if (materialDefinition.emissiveTexture) {\n material.emissiveTexture = {\n index: textureIndex,\n texCoord: 0\n };\n } else if (\n materialDefinition.pbrMetallicRoughness &&\n materialDefinition.pbrMetallicRoughness.metallicRoughnessTexture\n ) {\n material.pbrMetallicRoughness.metallicRoughnessTexture = {\n index: textureIndex,\n texCoord: 0\n };\n } else if (materialDefinition.normalTexture) {\n material.normalTexture = {\n index: textureIndex,\n texCoord: 0\n };\n } else if (materialDefinition.occlusionTexture) {\n material.occlusionTexture = {\n index: textureIndex,\n texCoord: 0\n };\n }\n return material;\n }\n\n /*\n * Returns Features length based on attribute array in attribute object.\n * @param {Object} attributes\n * @returns {Number} Features length .\n */\n _getFeaturesLength(attributes) {\n if (!attributes) {\n return 0;\n }\n const firstKey = Object.keys(attributes)[0];\n return firstKey ? attributes[firstKey].length : 0;\n }\n\n /* Checks that normals buffer is correct\n * @param {TypedArray} normals\n * @returns {boolean} true - normals are correct; false - normals are incorrect\n */\n _checkNormals(normals) {\n // If all normals === 0, the resulting tileset is all in black colors on Cesium\n return normals.find((value) => value);\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.i3sObbTo3dTilesObb = i3sObbTo3dTilesObb;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _core = require("@math.gl/core");
|
|
10
|
+
var _geospatial = require("@math.gl/geospatial");
|
|
11
|
+
var _culling = require("@math.gl/culling");
|
|
12
|
+
function i3sObbTo3dTilesObb(i3SObb, geoidHeightModel) {
|
|
13
|
+
var tiles3DCenter = [i3SObb.center[0], i3SObb.center[1], i3SObb.center[2] + geoidHeightModel.getHeight(i3SObb.center[1], i3SObb.center[0])];
|
|
14
|
+
var cartesianCenter = _geospatial.Ellipsoid.WGS84.cartographicToCartesian(tiles3DCenter, new _core.Vector3());
|
|
15
|
+
var tiles3DObb = new _culling.OrientedBoundingBox().fromCenterHalfSizeQuaternion(cartesianCenter, i3SObb.halfSize, i3SObb.quaternion);
|
|
16
|
+
return [].concat((0, _toConsumableArray2.default)(tiles3DObb.center), (0, _toConsumableArray2.default)(tiles3DObb.halfAxes.toArray()));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=i3s-obb-to-3d-tiles-obb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i3s-obb-to-3d-tiles-obb.js","names":["_core","require","_geospatial","_culling","i3sObbTo3dTilesObb","i3SObb","geoidHeightModel","tiles3DCenter","center","getHeight","cartesianCenter","Ellipsoid","WGS84","cartographicToCartesian","Vector3","tiles3DObb","OrientedBoundingBox","fromCenterHalfSizeQuaternion","halfSize","quaternion","concat","_toConsumableArray2","default","halfAxes","toArray"],"sources":["../../../../src/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.ts"],"sourcesContent":["import {Vector3} from '@math.gl/core';\nimport {Ellipsoid} from '@math.gl/geospatial';\nimport {OrientedBoundingBox} from '@math.gl/culling';\n// @ts-expect-error\nimport {GeoidHeightModel} from '@loaders.gl/tile-converter/lib/geoid-height-model';\n\n/**\n * Convert quaternion-based OBB to half-axes-based OBB\n * @param i3SObb quaternion based OBB\n * @param geoidHeightModel the Earth Gravity Model instance\n * @returns number[12] 3DTiles OBB https://github.com/CesiumGS/3d-tiles/tree/master/specification#box\n */\nexport function i3sObbTo3dTilesObb(\n i3SObb: {\n center: number[];\n halfSize: number[];\n quaternion: number[];\n },\n geoidHeightModel: GeoidHeightModel\n): number[] {\n const tiles3DCenter = [\n i3SObb.center[0],\n i3SObb.center[1],\n i3SObb.center[2] + geoidHeightModel.getHeight(i3SObb.center[1], i3SObb.center[0])\n ];\n const cartesianCenter = Ellipsoid.WGS84.cartographicToCartesian(tiles3DCenter, new Vector3());\n const tiles3DObb = new OrientedBoundingBox().fromCenterHalfSizeQuaternion(\n cartesianCenter,\n i3SObb.halfSize,\n i3SObb.quaternion\n );\n return [...tiles3DObb.center, ...tiles3DObb.halfAxes.toArray()];\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAUO,SAASG,kBAAkBA,CAChCC,MAIC,EACDC,gBAAkC,EACxB;EACV,IAAMC,aAAa,GAAG,CACpBF,MAAM,CAACG,MAAM,CAAC,CAAC,CAAC,EAChBH,MAAM,CAACG,MAAM,CAAC,CAAC,CAAC,EAChBH,MAAM,CAACG,MAAM,CAAC,CAAC,CAAC,GAAGF,gBAAgB,CAACG,SAAS,CAACJ,MAAM,CAACG,MAAM,CAAC,CAAC,CAAC,EAAEH,MAAM,CAACG,MAAM,CAAC,CAAC,CAAC,CAAC,CAClF;EACD,IAAME,eAAe,GAAGC,qBAAS,CAACC,KAAK,CAACC,uBAAuB,CAACN,aAAa,EAAE,IAAIO,aAAO,CAAC,CAAC,CAAC;EAC7F,IAAMC,UAAU,GAAG,IAAIC,4BAAmB,CAAC,CAAC,CAACC,4BAA4B,CACvEP,eAAe,EACfL,MAAM,CAACa,QAAQ,EACfb,MAAM,CAACc,UACT,CAAC;EACD,UAAAC,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EAAWP,UAAU,CAACP,MAAM,OAAAa,mBAAA,CAAAC,OAAA,EAAKP,UAAU,CAACQ,QAAQ,CAACC,OAAO,CAAC,CAAC;AAChE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.convertTextureAtlas = convertTextureAtlas;
|
|
7
|
+
function convertTextureAtlas(texCoords, uvRegions) {
|
|
8
|
+
var convertedTexCoords = new Float32Array(texCoords.length);
|
|
9
|
+
var normalisedRegions = normalizeRegions(uvRegions);
|
|
10
|
+
for (var index = 0; index < texCoords.length; index += 2) {
|
|
11
|
+
var uv = texCoords.subarray(index, index + 2);
|
|
12
|
+
var regions = normalisedRegions.slice(index * 2, index * 2 + 4);
|
|
13
|
+
var fractatedUV = fract([uv[0], uv[1]]);
|
|
14
|
+
var subtracted = [regions[2] - regions[0], regions[3] - regions[1]];
|
|
15
|
+
var multiplicationResult = [fractatedUV[0] * subtracted[0], fractatedUV[1] * subtracted[1]];
|
|
16
|
+
var convertedUV = [multiplicationResult[0] + regions[0], multiplicationResult[1] + regions[1]];
|
|
17
|
+
convertedTexCoords[index] = convertedUV[0];
|
|
18
|
+
convertedTexCoords[index + 1] = convertedUV[1];
|
|
19
|
+
}
|
|
20
|
+
return convertedTexCoords;
|
|
21
|
+
}
|
|
22
|
+
function fract(uv) {
|
|
23
|
+
return [uv[0] - Math.floor(uv[0]), uv[1] - Math.floor(uv[1])];
|
|
24
|
+
}
|
|
25
|
+
function normalizeRegions(regions) {
|
|
26
|
+
var MAX_UINT_16_VALUE = 65535;
|
|
27
|
+
var normalizedRegions = [];
|
|
28
|
+
for (var index = 0; index < regions.length; index++) {
|
|
29
|
+
normalizedRegions[index] = regions[index] / MAX_UINT_16_VALUE;
|
|
30
|
+
}
|
|
31
|
+
return normalizedRegions;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=texture-atlas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture-atlas.js","names":["convertTextureAtlas","texCoords","uvRegions","convertedTexCoords","Float32Array","length","normalisedRegions","normalizeRegions","index","uv","subarray","regions","slice","fractatedUV","fract","subtracted","multiplicationResult","convertedUV","Math","floor","MAX_UINT_16_VALUE","normalizedRegions"],"sources":["../../../../src/3d-tiles-converter/helpers/texture-atlas.ts"],"sourcesContent":["/**\n * Apply uvRegions to texture coordinates.\n * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.7/geometryUVRegion.cmn.md\n * Shader formula vec2 uv = fract(texCoords) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy;\n * @param texCoords\n * @param uvRegions\n */\nexport function convertTextureAtlas(texCoords: Float32Array, uvRegions: Uint16Array): Float32Array {\n const convertedTexCoords = new Float32Array(texCoords.length);\n const normalisedRegions = normalizeRegions(uvRegions);\n\n for (let index = 0; index < texCoords.length; index += 2) {\n const uv = texCoords.subarray(index, index + 2);\n const regions = normalisedRegions.slice(index * 2, index * 2 + 4);\n // fract(texCoords)\n const fractatedUV = fract([uv[0], uv[1]]);\n // (uvRegions.zw - uvRegions.xy)\n const subtracted = [regions[2] - regions[0], regions[3] - regions[1]];\n // fract(texCoords) * (uvRegions.zw - uvRegions.xy)\n const multiplicationResult = [fractatedUV[0] * subtracted[0], fractatedUV[1] * subtracted[1]];\n // fract(texCoords) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy;\n const convertedUV = [\n multiplicationResult[0] + regions[0],\n multiplicationResult[1] + regions[1]\n ];\n\n convertedTexCoords[index] = convertedUV[0];\n convertedTexCoords[index + 1] = convertedUV[1];\n }\n\n return convertedTexCoords;\n}\n\n/**\n * Do fractation of UV array.\n * @param uv\n */\nfunction fract(uv: [number, number]): [number, number] {\n return [uv[0] - Math.floor(uv[0]), uv[1] - Math.floor(uv[1])];\n}\n\n/**\n * Normalize uvRegions by dividing by the maximum Uint16 value\n * @param regions\n */\nfunction normalizeRegions(regions: Uint16Array): number[] {\n const MAX_UINT_16_VALUE = 65535;\n const normalizedRegions: number[] = [];\n\n for (let index = 0; index < regions.length; index++) {\n normalizedRegions[index] = regions[index] / MAX_UINT_16_VALUE;\n }\n\n return normalizedRegions;\n}\n"],"mappings":";;;;;;AAOO,SAASA,mBAAmBA,CAACC,SAAuB,EAAEC,SAAsB,EAAgB;EACjG,IAAMC,kBAAkB,GAAG,IAAIC,YAAY,CAACH,SAAS,CAACI,MAAM,CAAC;EAC7D,IAAMC,iBAAiB,GAAGC,gBAAgB,CAACL,SAAS,CAAC;EAErD,KAAK,IAAIM,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGP,SAAS,CAACI,MAAM,EAAEG,KAAK,IAAI,CAAC,EAAE;IACxD,IAAMC,EAAE,GAAGR,SAAS,CAACS,QAAQ,CAACF,KAAK,EAAEA,KAAK,GAAG,CAAC,CAAC;IAC/C,IAAMG,OAAO,GAAGL,iBAAiB,CAACM,KAAK,CAACJ,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAEjE,IAAMK,WAAW,GAAGC,KAAK,CAAC,CAACL,EAAE,CAAC,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,IAAMM,UAAU,GAAG,CAACJ,OAAO,CAAC,CAAC,CAAC,GAAGA,OAAO,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,GAAGA,OAAO,CAAC,CAAC,CAAC,CAAC;IAErE,IAAMK,oBAAoB,GAAG,CAACH,WAAW,CAAC,CAAC,CAAC,GAAGE,UAAU,CAAC,CAAC,CAAC,EAAEF,WAAW,CAAC,CAAC,CAAC,GAAGE,UAAU,CAAC,CAAC,CAAC,CAAC;IAE7F,IAAME,WAAW,GAAG,CAClBD,oBAAoB,CAAC,CAAC,CAAC,GAAGL,OAAO,CAAC,CAAC,CAAC,EACpCK,oBAAoB,CAAC,CAAC,CAAC,GAAGL,OAAO,CAAC,CAAC,CAAC,CACrC;IAEDR,kBAAkB,CAACK,KAAK,CAAC,GAAGS,WAAW,CAAC,CAAC,CAAC;IAC1Cd,kBAAkB,CAACK,KAAK,GAAG,CAAC,CAAC,GAAGS,WAAW,CAAC,CAAC,CAAC;EAChD;EAEA,OAAOd,kBAAkB;AAC3B;AAMA,SAASW,KAAKA,CAACL,EAAoB,EAAoB;EACrD,OAAO,CAACA,EAAE,CAAC,CAAC,CAAC,GAAGS,IAAI,CAACC,KAAK,CAACV,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,GAAGS,IAAI,CAACC,KAAK,CAACV,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D;AAMA,SAASF,gBAAgBA,CAACI,OAAoB,EAAY;EACxD,IAAMS,iBAAiB,GAAG,KAAK;EAC/B,IAAMC,iBAA2B,GAAG,EAAE;EAEtC,KAAK,IAAIb,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGG,OAAO,CAACN,MAAM,EAAEG,KAAK,EAAE,EAAE;IACnDa,iBAAiB,CAACb,KAAK,CAAC,GAAGG,OAAO,CAACH,KAAK,CAAC,GAAGY,iBAAiB;EAC/D;EAEA,OAAOC,iBAAiB;AAC1B"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.TILESET = void 0;
|
|
8
|
+
var _jsonMapTransform = _interopRequireDefault(require("json-map-transform"));
|
|
9
|
+
var ASSET = function ASSET() {
|
|
10
|
+
return {
|
|
11
|
+
version: {
|
|
12
|
+
path: 'version',
|
|
13
|
+
default: '1.0'
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
var TILE = function TILE() {
|
|
18
|
+
return {
|
|
19
|
+
boundingVolume: {
|
|
20
|
+
path: 'boundingVolume'
|
|
21
|
+
},
|
|
22
|
+
geometricError: {
|
|
23
|
+
path: 'geometricError'
|
|
24
|
+
},
|
|
25
|
+
content: {
|
|
26
|
+
path: 'content'
|
|
27
|
+
},
|
|
28
|
+
children: {
|
|
29
|
+
path: 'children',
|
|
30
|
+
transform: function transform(val) {
|
|
31
|
+
return val.map(function (tile) {
|
|
32
|
+
return (0, _jsonMapTransform.default)(tile, TILE());
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
var TILESET = function TILESET() {
|
|
39
|
+
return {
|
|
40
|
+
asset: {
|
|
41
|
+
path: 'asset',
|
|
42
|
+
transform: function transform(val) {
|
|
43
|
+
return (0, _jsonMapTransform.default)(val, ASSET());
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
geometricError: {
|
|
47
|
+
path: 'root',
|
|
48
|
+
transform: function transform(val) {
|
|
49
|
+
return val.geometricError;
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
root: {
|
|
53
|
+
path: 'root',
|
|
54
|
+
transform: function transform(val) {
|
|
55
|
+
return (0, _jsonMapTransform.default)(val, TILE());
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
exports.TILESET = TILESET;
|
|
61
|
+
//# sourceMappingURL=tileset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tileset.js","names":["_jsonMapTransform","_interopRequireDefault","require","ASSET","version","path","default","TILE","boundingVolume","geometricError","content","children","transform","val","map","tile","TILESET","asset","root","exports"],"sources":["../../../../src/3d-tiles-converter/json-templates/tileset.ts"],"sourcesContent":["import transform from 'json-map-transform';\n\nconst ASSET = () => ({\n version: {\n path: 'version',\n default: '1.0'\n }\n});\n\nconst TILE = () => ({\n boundingVolume: {\n path: 'boundingVolume'\n },\n geometricError: {\n path: 'geometricError'\n },\n content: {\n path: 'content'\n },\n children: {\n path: 'children',\n transform: (val) => val.map((tile) => transform(tile, TILE()))\n }\n});\n\nexport const TILESET = () => ({\n asset: {\n path: 'asset',\n transform: (val) => transform(val, ASSET())\n },\n geometricError: {\n path: 'root',\n transform: (val) => val.geometricError\n },\n root: {\n path: 'root',\n transform: (val) => transform(val, TILE())\n }\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAA;EAAA,OAAU;IACnBC,OAAO,EAAE;MACPC,IAAI,EAAE,SAAS;MACfC,OAAO,EAAE;IACX;EACF,CAAC;AAAA,CAAC;AAEF,IAAMC,IAAI,GAAG,SAAPA,IAAIA,CAAA;EAAA,OAAU;IAClBC,cAAc,EAAE;MACdH,IAAI,EAAE;IACR,CAAC;IACDI,cAAc,EAAE;MACdJ,IAAI,EAAE;IACR,CAAC;IACDK,OAAO,EAAE;MACPL,IAAI,EAAE;IACR,CAAC;IACDM,QAAQ,EAAE;MACRN,IAAI,EAAE,UAAU;MAChBO,SAAS,EAAE,SAAAA,UAACC,GAAG;QAAA,OAAKA,GAAG,CAACC,GAAG,CAAC,UAACC,IAAI;UAAA,OAAK,IAAAH,yBAAS,EAACG,IAAI,EAAER,IAAI,CAAC,CAAC,CAAC;QAAA,EAAC;MAAA;IAChE;EACF,CAAC;AAAA,CAAC;AAEK,IAAMS,OAAO,GAAG,SAAVA,OAAOA,CAAA;EAAA,OAAU;IAC5BC,KAAK,EAAE;MACLZ,IAAI,EAAE,OAAO;MACbO,SAAS,EAAE,SAAAA,UAACC,GAAG;QAAA,OAAK,IAAAD,yBAAS,EAACC,GAAG,EAAEV,KAAK,CAAC,CAAC,CAAC;MAAA;IAC7C,CAAC;IACDM,cAAc,EAAE;MACdJ,IAAI,EAAE,MAAM;MACZO,SAAS,EAAE,SAAAA,UAACC,GAAG;QAAA,OAAKA,GAAG,CAACJ,cAAc;MAAA;IACxC,CAAC;IACDS,IAAI,EAAE;MACJb,IAAI,EAAE,MAAM;MACZO,SAAS,EAAE,SAAAA,UAACC,GAAG;QAAA,OAAK,IAAAD,yBAAS,EAACC,GAAG,EAAEN,IAAI,CAAC,CAAC,CAAC;MAAA;IAC5C;EACF,CAAC;AAAA,CAAC;AAACY,OAAA,CAAAH,OAAA,GAAAA,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,OAAO,GAAGD,UAAU,CAACC,OAAO,IAAI,CAAC,CAAC;AAC7CC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,OAAO,EAAEH,aAAa,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BROWSER_ERROR_MESSAGE = void 0;
|
|
7
|
+
var BROWSER_ERROR_MESSAGE = 'Tile converter does not work in browser, only in node js environment';
|
|
8
|
+
exports.BROWSER_ERROR_MESSAGE = BROWSER_ERROR_MESSAGE;
|
|
9
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":["BROWSER_ERROR_MESSAGE","exports"],"sources":["../../src/constants.ts"],"sourcesContent":["export const BROWSER_ERROR_MESSAGE =\n 'Tile converter does not work in browser, only in node js environment';\n"],"mappings":";;;;;;AAAO,IAAMA,qBAAqB,GAChC,sEAAsE;AAACC,OAAA,CAAAD,qBAAA,GAAAA,qBAAA"}
|