@loaders.gl/3d-tiles 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/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +2 -2
- package/dist/cesium-ion-loader.d.ts +6 -0
- package/dist/cesium-ion-loader.d.ts.map +1 -0
- package/dist/cesium-ion-loader.js +37 -32
- package/dist/dist.min.js +14526 -0
- package/dist/es5/bundle.js +6 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/cesium-ion-loader.js +77 -0
- package/dist/es5/cesium-ion-loader.js.map +1 -0
- package/dist/es5/index.js +63 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js +114 -0
- package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -0
- package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js +180 -0
- package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -0
- package/dist/es5/lib/classes/tile-3d-batch-table.js +285 -0
- package/dist/es5/lib/classes/tile-3d-batch-table.js.map +1 -0
- package/dist/es5/lib/classes/tile-3d-feature-table.js +97 -0
- package/dist/es5/lib/classes/tile-3d-feature-table.js.map +1 -0
- package/dist/es5/lib/constants.js +32 -0
- package/dist/es5/lib/constants.js.map +1 -0
- package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js +49 -0
- package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js.map +1 -0
- package/dist/es5/lib/encoders/encode-3d-tile-composite.js +30 -0
- package/dist/es5/lib/encoders/encode-3d-tile-composite.js.map +1 -0
- package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js +47 -0
- package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -0
- package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js +48 -0
- package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -0
- package/dist/es5/lib/encoders/encode-3d-tile.js +35 -0
- package/dist/es5/lib/encoders/encode-3d-tile.js.map +1 -0
- package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js +35 -0
- package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -0
- package/dist/es5/lib/ion/ion.js +170 -0
- package/dist/es5/lib/ion/ion.js.map +1 -0
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js +64 -0
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -0
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js +32 -0
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -0
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js +32 -0
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -0
- package/dist/es5/lib/parsers/helpers/parse-3d-implicit-tiles.js +280 -0
- package/dist/es5/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -0
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js +96 -0
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -0
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js +22 -0
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -0
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js +145 -0
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -0
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js +85 -0
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -0
- package/dist/es5/lib/parsers/helpers/parse-utils.js +28 -0
- package/dist/es5/lib/parsers/helpers/parse-utils.js.map +1 -0
- package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js +51 -0
- package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js.map +1 -0
- package/dist/es5/lib/parsers/parse-3d-tile-composite.js +48 -0
- package/dist/es5/lib/parsers/parse-3d-tile-composite.js.map +1 -0
- package/dist/es5/lib/parsers/parse-3d-tile-gltf.js +35 -0
- package/dist/es5/lib/parsers/parse-3d-tile-gltf.js.map +1 -0
- package/dist/es5/lib/parsers/parse-3d-tile-header.js +271 -0
- package/dist/es5/lib/parsers/parse-3d-tile-header.js.map +1 -0
- package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js +172 -0
- package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -0
- package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js +271 -0
- package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -0
- package/dist/es5/lib/parsers/parse-3d-tile.js +74 -0
- package/dist/es5/lib/parsers/parse-3d-tile.js.map +1 -0
- package/dist/es5/lib/utils/obb/s2-corners-to-obb.js +30 -0
- package/dist/es5/lib/utils/obb/s2-corners-to-obb.js.map +1 -0
- package/dist/es5/lib/utils/s2/converters/s2-to-boundary.js +44 -0
- package/dist/es5/lib/utils/s2/converters/s2-to-boundary.js.map +1 -0
- package/dist/es5/lib/utils/s2/converters/s2-to-obb-points.js +30 -0
- package/dist/es5/lib/utils/s2/converters/s2-to-obb-points.js.map +1 -0
- package/dist/es5/lib/utils/s2/converters/s2-to-region.js +52 -0
- package/dist/es5/lib/utils/s2/converters/s2-to-region.js.map +1 -0
- package/dist/es5/lib/utils/s2/index.js +90 -0
- package/dist/es5/lib/utils/s2/index.js.map +1 -0
- package/dist/es5/lib/utils/s2/s2-geometry-functions.js +19 -0
- package/dist/es5/lib/utils/s2/s2-geometry-functions.js.map +1 -0
- package/dist/es5/lib/utils/s2/s2-token-functions.js +41 -0
- package/dist/es5/lib/utils/s2/s2-token-functions.js.map +1 -0
- package/dist/es5/lib/utils/s2/s2geometry/s2-cell-utils.js +22 -0
- package/dist/es5/lib/utils/s2/s2geometry/s2-cell-utils.js.map +1 -0
- package/dist/es5/lib/utils/s2/s2geometry/s2-geometry.js +207 -0
- package/dist/es5/lib/utils/s2/s2geometry/s2-geometry.js.map +1 -0
- package/dist/es5/lib/utils/version.js +9 -0
- package/dist/es5/lib/utils/version.js.map +1 -0
- package/dist/es5/tile-3d-subtree-loader.js +22 -0
- package/dist/es5/tile-3d-subtree-loader.js.map +1 -0
- package/dist/es5/tile-3d-writer.js +26 -0
- package/dist/es5/tile-3d-writer.js.map +1 -0
- package/dist/es5/tiles-3d-loader.js +134 -0
- package/dist/es5/tiles-3d-loader.js.map +1 -0
- package/dist/es5/types.js +2 -0
- package/dist/es5/types.js.map +1 -0
- package/dist/esm/bundle.js +4 -0
- package/dist/esm/bundle.js.map +1 -0
- package/dist/esm/cesium-ion-loader.js +36 -0
- package/dist/esm/cesium-ion-loader.js.map +1 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/classes/helpers/tile-3d-accessor-utils.js +96 -0
- package/dist/esm/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -0
- package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js +171 -0
- package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -0
- package/dist/esm/lib/classes/tile-3d-batch-table.js +231 -0
- package/dist/esm/lib/classes/tile-3d-batch-table.js.map +1 -0
- package/dist/esm/lib/classes/tile-3d-feature-table.js +70 -0
- package/dist/esm/lib/classes/tile-3d-feature-table.js.map +1 -0
- package/dist/esm/lib/constants.js +22 -0
- package/dist/esm/lib/constants.js.map +1 -0
- package/dist/esm/lib/encoders/encode-3d-tile-batched-model.js +40 -0
- package/dist/esm/lib/encoders/encode-3d-tile-batched-model.js.map +1 -0
- package/dist/esm/lib/encoders/encode-3d-tile-composite.js +21 -0
- package/dist/esm/lib/encoders/encode-3d-tile-composite.js.map +1 -0
- package/dist/esm/lib/encoders/encode-3d-tile-instanced-model.js +36 -0
- package/dist/esm/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -0
- package/dist/esm/lib/encoders/encode-3d-tile-point-cloud.js +39 -0
- package/dist/esm/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -0
- package/dist/esm/lib/encoders/encode-3d-tile.js +29 -0
- package/dist/esm/lib/encoders/encode-3d-tile.js.map +1 -0
- package/dist/esm/lib/encoders/helpers/encode-3d-tile-header.js +28 -0
- package/dist/esm/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -0
- package/dist/esm/lib/ion/ion.js +70 -0
- package/dist/esm/lib/ion/ion.js.map +1 -0
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js +58 -0
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -0
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-normals.js +26 -0
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -0
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-positions.js +26 -0
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -0
- package/dist/esm/lib/parsers/helpers/parse-3d-implicit-tiles.js +241 -0
- package/dist/esm/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -0
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js +59 -0
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -0
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js +16 -0
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -0
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js +67 -0
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -0
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js +80 -0
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -0
- package/dist/esm/lib/parsers/helpers/parse-utils.js +20 -0
- package/dist/esm/lib/parsers/helpers/parse-utils.js.map +1 -0
- package/dist/esm/lib/parsers/parse-3d-tile-batched-model.js +25 -0
- package/dist/esm/lib/parsers/parse-3d-tile-batched-model.js.map +1 -0
- package/dist/esm/lib/parsers/parse-3d-tile-composite.js +15 -0
- package/dist/esm/lib/parsers/parse-3d-tile-composite.js.map +1 -0
- package/dist/esm/lib/parsers/parse-3d-tile-gltf.js +10 -0
- package/dist/esm/lib/parsers/parse-3d-tile-gltf.js.map +1 -0
- package/dist/esm/lib/parsers/parse-3d-tile-header.js +164 -0
- package/dist/esm/lib/parsers/parse-3d-tile-header.js.map +1 -0
- package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js +147 -0
- package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -0
- package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js +211 -0
- package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -0
- package/dist/esm/lib/parsers/parse-3d-tile.js +30 -0
- package/dist/esm/lib/parsers/parse-3d-tile.js.map +1 -0
- package/dist/esm/lib/utils/obb/s2-corners-to-obb.js +23 -0
- package/dist/esm/lib/utils/obb/s2-corners-to-obb.js.map +1 -0
- package/dist/esm/lib/utils/s2/converters/s2-to-boundary.js +40 -0
- package/dist/esm/lib/utils/s2/converters/s2-to-boundary.js.map +1 -0
- package/dist/esm/lib/utils/s2/converters/s2-to-obb-points.js +24 -0
- package/dist/esm/lib/utils/s2/converters/s2-to-obb-points.js.map +1 -0
- package/dist/esm/lib/utils/s2/converters/s2-to-region.js +42 -0
- package/dist/esm/lib/utils/s2/converters/s2-to-region.js.map +1 -0
- package/dist/esm/lib/utils/s2/index.js +7 -0
- package/dist/esm/lib/utils/s2/index.js.map +1 -0
- package/dist/esm/lib/utils/s2/s2-geometry-functions.js +12 -0
- package/dist/esm/lib/utils/s2/s2-geometry-functions.js.map +1 -0
- package/dist/esm/lib/utils/s2/s2-token-functions.js +32 -0
- package/dist/esm/lib/utils/s2/s2-token-functions.js.map +1 -0
- package/dist/esm/lib/utils/s2/s2geometry/s2-cell-utils.js +15 -0
- package/dist/esm/lib/utils/s2/s2geometry/s2-cell-utils.js.map +1 -0
- package/dist/esm/lib/utils/s2/s2geometry/s2-geometry.js +186 -0
- package/dist/esm/lib/utils/s2/s2geometry/s2-geometry.js.map +1 -0
- package/dist/esm/lib/utils/version.js +2 -0
- package/dist/esm/lib/utils/version.js.map +1 -0
- package/dist/esm/tile-3d-subtree-loader.js +14 -0
- package/dist/esm/tile-3d-subtree-loader.js.map +1 -0
- package/dist/esm/tile-3d-writer.js +19 -0
- package/dist/esm/tile-3d-writer.js.map +1 -0
- package/dist/esm/tiles-3d-loader.js +64 -0
- package/dist/esm/tiles-3d-loader.js.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -8
- package/dist/lib/classes/helpers/tile-3d-accessor-utils.d.ts +8 -0
- package/dist/lib/classes/helpers/tile-3d-accessor-utils.d.ts.map +1 -0
- package/dist/lib/classes/helpers/tile-3d-accessor-utils.js +106 -89
- package/dist/lib/classes/tile-3d-batch-table-hierarchy.d.ts +10 -0
- package/dist/lib/classes/tile-3d-batch-table-hierarchy.d.ts.map +1 -0
- package/dist/lib/classes/tile-3d-batch-table-hierarchy.js +184 -202
- package/dist/lib/classes/tile-3d-batch-table.d.ts +34 -0
- package/dist/lib/classes/tile-3d-batch-table.d.ts.map +1 -0
- package/dist/lib/classes/tile-3d-batch-table.js +223 -267
- package/dist/lib/classes/tile-3d-feature-table.d.ts +15 -0
- package/dist/lib/classes/tile-3d-feature-table.d.ts.map +1 -0
- package/dist/lib/classes/tile-3d-feature-table.js +64 -79
- package/dist/lib/constants.d.ts +22 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/constants.js +23 -18
- package/dist/lib/encoders/encode-3d-tile-batched-model.d.ts +2 -0
- package/dist/lib/encoders/encode-3d-tile-batched-model.d.ts.map +1 -0
- package/dist/lib/encoders/encode-3d-tile-batched-model.js +45 -45
- package/dist/lib/encoders/encode-3d-tile-composite.d.ts +2 -0
- package/dist/lib/encoders/encode-3d-tile-composite.d.ts.map +1 -0
- package/dist/lib/encoders/encode-3d-tile-composite.js +23 -24
- package/dist/lib/encoders/encode-3d-tile-instanced-model.d.ts +2 -0
- package/dist/lib/encoders/encode-3d-tile-instanced-model.d.ts.map +1 -0
- package/dist/lib/encoders/encode-3d-tile-instanced-model.js +37 -37
- package/dist/lib/encoders/encode-3d-tile-point-cloud.d.ts +2 -0
- package/dist/lib/encoders/encode-3d-tile-point-cloud.d.ts.map +1 -0
- package/dist/lib/encoders/encode-3d-tile-point-cloud.js +36 -38
- package/dist/lib/encoders/encode-3d-tile.d.ts +2 -0
- package/dist/lib/encoders/encode-3d-tile.d.ts.map +1 -0
- package/dist/lib/encoders/encode-3d-tile.js +30 -32
- package/dist/lib/encoders/helpers/encode-3d-tile-header.d.ts +3 -0
- package/dist/lib/encoders/helpers/encode-3d-tile-header.d.ts.map +1 -0
- package/dist/lib/encoders/helpers/encode-3d-tile-header.js +28 -29
- package/dist/lib/ion/ion.d.ts +4 -0
- package/dist/lib/ion/ion.d.ts.map +1 -0
- package/dist/lib/ion/ion.js +60 -69
- package/dist/lib/parsers/helpers/normalize-3d-tile-colors.d.ts +7 -0
- package/dist/lib/parsers/helpers/normalize-3d-tile-colors.d.ts.map +1 -0
- package/dist/lib/parsers/helpers/normalize-3d-tile-colors.js +60 -62
- package/dist/lib/parsers/helpers/normalize-3d-tile-normals.d.ts +6 -0
- package/dist/lib/parsers/helpers/normalize-3d-tile-normals.d.ts.map +1 -0
- package/dist/lib/parsers/helpers/normalize-3d-tile-normals.js +26 -26
- package/dist/lib/parsers/helpers/normalize-3d-tile-positions.d.ts +2 -0
- package/dist/lib/parsers/helpers/normalize-3d-tile-positions.d.ts.map +1 -0
- package/dist/lib/parsers/helpers/normalize-3d-tile-positions.js +39 -28
- package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.d.ts +57 -0
- package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.d.ts.map +1 -0
- package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.js +266 -0
- package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.d.ts +7 -0
- package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.d.ts.map +1 -0
- package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js +82 -63
- package/dist/lib/parsers/helpers/parse-3d-tile-header.d.ts +2 -0
- package/dist/lib/parsers/helpers/parse-3d-tile-header.d.ts.map +1 -0
- package/dist/lib/parsers/helpers/parse-3d-tile-header.js +26 -15
- package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts +10 -0
- package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts.map +1 -0
- package/dist/lib/parsers/helpers/parse-3d-tile-subtree.js +104 -0
- package/dist/lib/parsers/helpers/parse-3d-tile-tables.d.ts +3 -0
- package/dist/lib/parsers/helpers/parse-3d-tile-tables.d.ts.map +1 -0
- package/dist/lib/parsers/helpers/parse-3d-tile-tables.js +85 -81
- package/dist/lib/parsers/helpers/parse-utils.d.ts +4 -0
- package/dist/lib/parsers/helpers/parse-utils.d.ts.map +1 -0
- package/dist/lib/parsers/helpers/parse-utils.js +29 -16
- package/dist/lib/parsers/parse-3d-tile-batched-model.d.ts +2 -0
- package/dist/lib/parsers/parse-3d-tile-batched-model.d.ts.map +1 -0
- package/dist/lib/parsers/parse-3d-tile-batched-model.js +30 -26
- package/dist/lib/parsers/parse-3d-tile-composite.d.ts +2 -0
- package/dist/lib/parsers/parse-3d-tile-composite.d.ts.map +1 -0
- package/dist/lib/parsers/parse-3d-tile-composite.js +25 -16
- package/dist/lib/parsers/parse-3d-tile-gltf.d.ts +2 -0
- package/dist/lib/parsers/parse-3d-tile-gltf.d.ts.map +1 -0
- package/dist/lib/parsers/parse-3d-tile-gltf.js +18 -0
- package/dist/lib/parsers/parse-3d-tile-header.d.ts +20 -0
- package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -0
- package/dist/lib/parsers/parse-3d-tile-header.js +170 -70
- package/dist/lib/parsers/parse-3d-tile-instanced-model.d.ts +2 -0
- package/dist/lib/parsers/parse-3d-tile-instanced-model.d.ts.map +1 -0
- package/dist/lib/parsers/parse-3d-tile-instanced-model.js +179 -170
- package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts +3 -0
- package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts.map +1 -0
- package/dist/lib/parsers/parse-3d-tile-point-cloud.js +350 -184
- package/dist/lib/parsers/parse-3d-tile.d.ts +2 -0
- package/dist/lib/parsers/parse-3d-tile.d.ts.map +1 -0
- package/dist/lib/parsers/parse-3d-tile.js +36 -27
- package/dist/lib/utils/obb/s2-corners-to-obb.d.ts +15 -0
- package/dist/lib/utils/obb/s2-corners-to-obb.d.ts.map +1 -0
- package/dist/lib/utils/obb/s2-corners-to-obb.js +37 -0
- package/dist/lib/utils/s2/converters/s2-to-boundary.d.ts +9 -0
- package/dist/lib/utils/s2/converters/s2-to-boundary.d.ts.map +1 -0
- package/dist/lib/utils/s2/converters/s2-to-boundary.js +61 -0
- package/dist/lib/utils/s2/converters/s2-to-obb-points.d.ts +15 -0
- package/dist/lib/utils/s2/converters/s2-to-obb-points.d.ts.map +1 -0
- package/dist/lib/utils/s2/converters/s2-to-obb-points.js +36 -0
- package/dist/lib/utils/s2/converters/s2-to-region.d.ts +13 -0
- package/dist/lib/utils/s2/converters/s2-to-region.d.ts.map +1 -0
- package/dist/lib/utils/s2/converters/s2-to-region.js +59 -0
- package/dist/lib/utils/s2/index.d.ts +8 -0
- package/dist/lib/utils/s2/index.d.ts.map +1 -0
- package/dist/lib/utils/s2/index.js +23 -0
- package/dist/lib/utils/s2/s2-geometry-functions.d.ts +14 -0
- package/dist/lib/utils/s2/s2-geometry-functions.d.ts.map +1 -0
- package/dist/lib/utils/s2/s2-geometry-functions.js +29 -0
- package/dist/lib/utils/s2/s2-token-functions.d.ts +23 -0
- package/dist/lib/utils/s2/s2-token-functions.d.ts.map +1 -0
- package/dist/lib/utils/s2/s2-token-functions.js +68 -0
- package/dist/lib/utils/s2/s2geometry/s2-cell-utils.d.ts +14 -0
- package/dist/lib/utils/s2/s2geometry/s2-cell-utils.d.ts.map +1 -0
- package/dist/lib/utils/s2/s2geometry/s2-cell-utils.js +32 -0
- package/dist/lib/utils/s2/s2geometry/s2-geometry.d.ts +52 -0
- package/dist/lib/utils/s2/s2geometry/s2-geometry.d.ts.map +1 -0
- package/dist/lib/utils/s2/s2geometry/s2-geometry.js +260 -0
- package/dist/lib/utils/version.d.ts +2 -0
- package/dist/lib/utils/version.d.ts.map +1 -0
- package/dist/lib/utils/version.js +7 -2
- package/dist/tile-3d-subtree-loader.d.ts +7 -0
- package/dist/tile-3d-subtree-loader.d.ts.map +1 -0
- package/dist/tile-3d-subtree-loader.js +23 -0
- package/dist/tile-3d-writer.d.ts +6 -0
- package/dist/tile-3d-writer.d.ts.map +1 -0
- package/dist/tile-3d-writer.js +24 -17
- package/dist/tiles-3d-loader.d.ts +6 -0
- package/dist/tiles-3d-loader.d.ts.map +1 -0
- package/dist/tiles-3d-loader.js +63 -62
- package/dist/types.d.ts +93 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -2
- package/package.json +14 -13
- package/src/cesium-ion-loader.ts +1 -0
- package/src/index.ts +2 -1
- package/src/lib/classes/{tile-3d-batch-table.js → tile-3d-batch-table.ts} +14 -4
- package/src/lib/classes/{tile-3d-feature-table.js → tile-3d-feature-table.ts} +5 -2
- package/src/lib/{constants.js → constants.ts} +2 -1
- package/src/lib/parsers/helpers/{normalize-3d-tile-colors.js → normalize-3d-tile-colors.ts} +1 -1
- package/src/lib/parsers/helpers/parse-3d-implicit-tiles.ts +396 -0
- package/src/lib/parsers/helpers/{parse-3d-tile-gltf-view.js → parse-3d-tile-gltf-view.ts} +1 -1
- package/src/lib/parsers/helpers/parse-3d-tile-subtree.ts +148 -0
- package/src/lib/parsers/helpers/{parse-3d-tile-tables.js → parse-3d-tile-tables.ts} +1 -1
- package/src/lib/parsers/parse-3d-tile-gltf.ts +16 -0
- package/src/lib/parsers/parse-3d-tile-header.ts +220 -0
- package/src/lib/parsers/{parse-3d-tile-instanced-model.js → parse-3d-tile-instanced-model.ts} +6 -0
- package/src/lib/parsers/{parse-3d-tile-point-cloud.js → parse-3d-tile-point-cloud.ts} +2 -2
- package/src/lib/parsers/{parse-3d-tile.js → parse-3d-tile.ts} +8 -0
- package/src/lib/utils/obb/s2-corners-to-obb.ts +51 -0
- package/src/lib/utils/s2/converters/s2-to-boundary.ts +67 -0
- package/src/lib/utils/s2/converters/s2-to-obb-points.ts +46 -0
- package/src/lib/utils/s2/converters/s2-to-region.ts +69 -0
- package/src/lib/utils/s2/index.ts +17 -0
- package/src/lib/utils/s2/s2-geometry-functions.ts +28 -0
- package/src/lib/utils/s2/s2-token-functions.ts +67 -0
- package/src/lib/utils/s2/s2geometry/s2-cell-utils.ts +33 -0
- package/src/lib/utils/s2/s2geometry/s2-geometry.ts +296 -0
- package/src/tile-3d-subtree-loader.ts +19 -0
- package/src/tiles-3d-loader.ts +2 -1
- package/src/types.ts +60 -6
- package/dist/bundle.js.map +0 -1
- package/dist/cesium-ion-loader.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/classes/helpers/tile-3d-accessor-utils.js.map +0 -1
- package/dist/lib/classes/tile-3d-batch-table-hierarchy.js.map +0 -1
- package/dist/lib/classes/tile-3d-batch-table.js.map +0 -1
- package/dist/lib/classes/tile-3d-feature-table.js.map +0 -1
- package/dist/lib/constants.js.map +0 -1
- package/dist/lib/encoders/encode-3d-tile-batched-model.js.map +0 -1
- package/dist/lib/encoders/encode-3d-tile-composite.js.map +0 -1
- package/dist/lib/encoders/encode-3d-tile-instanced-model.js.map +0 -1
- package/dist/lib/encoders/encode-3d-tile-point-cloud.js.map +0 -1
- package/dist/lib/encoders/encode-3d-tile.js.map +0 -1
- package/dist/lib/encoders/helpers/encode-3d-tile-header.js.map +0 -1
- package/dist/lib/ion/ion.js.map +0 -1
- package/dist/lib/parsers/helpers/normalize-3d-tile-colors.js.map +0 -1
- package/dist/lib/parsers/helpers/normalize-3d-tile-normals.js.map +0 -1
- package/dist/lib/parsers/helpers/normalize-3d-tile-positions.js.map +0 -1
- package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +0 -1
- package/dist/lib/parsers/helpers/parse-3d-tile-header.js.map +0 -1
- package/dist/lib/parsers/helpers/parse-3d-tile-tables.js.map +0 -1
- package/dist/lib/parsers/helpers/parse-utils.js.map +0 -1
- package/dist/lib/parsers/parse-3d-tile-batched-model.js.map +0 -1
- package/dist/lib/parsers/parse-3d-tile-composite.js.map +0 -1
- package/dist/lib/parsers/parse-3d-tile-header.js.map +0 -1
- package/dist/lib/parsers/parse-3d-tile-instanced-model.js.map +0 -1
- package/dist/lib/parsers/parse-3d-tile-point-cloud.js.map +0 -1
- package/dist/lib/parsers/parse-3d-tile.js.map +0 -1
- package/dist/lib/utils/version.js.map +0 -1
- package/dist/tile-3d-writer.js.map +0 -1
- package/dist/tiles-3d-loader.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/src/lib/parsers/parse-3d-tile-header.js +0 -69
- /package/src/lib/classes/helpers/{tile-3d-accessor-utils.js → tile-3d-accessor-utils.ts} +0 -0
- /package/src/lib/classes/{tile-3d-batch-table-hierarchy.js → tile-3d-batch-table-hierarchy.ts} +0 -0
- /package/src/lib/encoders/{encode-3d-tile-batched-model.js → encode-3d-tile-batched-model.ts} +0 -0
- /package/src/lib/encoders/{encode-3d-tile-composite.js → encode-3d-tile-composite.ts} +0 -0
- /package/src/lib/encoders/{encode-3d-tile-instanced-model.js → encode-3d-tile-instanced-model.ts} +0 -0
- /package/src/lib/encoders/{encode-3d-tile-point-cloud.js → encode-3d-tile-point-cloud.ts} +0 -0
- /package/src/lib/encoders/{encode-3d-tile.js → encode-3d-tile.ts} +0 -0
- /package/src/lib/encoders/helpers/{encode-3d-tile-header.js → encode-3d-tile-header.ts} +0 -0
- /package/src/lib/ion/{ion.js → ion.ts} +0 -0
- /package/src/lib/parsers/helpers/{normalize-3d-tile-normals.js → normalize-3d-tile-normals.ts} +0 -0
- /package/src/lib/parsers/helpers/{normalize-3d-tile-positions.js → normalize-3d-tile-positions.ts} +0 -0
- /package/src/lib/parsers/helpers/{parse-3d-tile-header.js → parse-3d-tile-header.ts} +0 -0
- /package/src/lib/parsers/helpers/{parse-utils.js → parse-utils.ts} +0 -0
- /package/src/lib/parsers/{parse-3d-tile-batched-model.js → parse-3d-tile-batched-model.ts} +0 -0
- /package/src/lib/parsers/{parse-3d-tile-composite.js → parse-3d-tile-composite.ts} +0 -0
- /package/src/lib/utils/{version.js → version.ts} +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { padToNBytes, copyBinaryToDataView, copyPaddedStringToDataView } from '@loaders.gl/loader-utils';
|
|
2
|
+
import { MAGIC_ARRAY } from '../constants';
|
|
3
|
+
import { encode3DTileHeader, encode3DTileByteLength } from './helpers/encode-3d-tile-header';
|
|
4
|
+
export function encodeBatchedModel3DTile(tile, dataView, byteOffset, options) {
|
|
5
|
+
const {
|
|
6
|
+
featuresLength = 0,
|
|
7
|
+
batchTable
|
|
8
|
+
} = tile;
|
|
9
|
+
const featureTableJson = {
|
|
10
|
+
BATCH_LENGTH: featuresLength
|
|
11
|
+
};
|
|
12
|
+
const featureTableJsonString = JSON.stringify(featureTableJson);
|
|
13
|
+
const batchTableJsonString = batchTable ? JSON.stringify(batchTable) : '';
|
|
14
|
+
const featureTableJsonByteLength = padToNBytes(featureTableJsonString.length, 8);
|
|
15
|
+
const batchTableJsonByteLength = batchTableJsonString ? padToNBytes(batchTableJsonString.length, 8) : 0;
|
|
16
|
+
tile = {
|
|
17
|
+
magic: MAGIC_ARRAY.BATCHED_MODEL,
|
|
18
|
+
...tile
|
|
19
|
+
};
|
|
20
|
+
const byteOffsetStart = byteOffset;
|
|
21
|
+
byteOffset = encode3DTileHeader(tile, dataView, byteOffset);
|
|
22
|
+
if (dataView) {
|
|
23
|
+
dataView.setUint32(12, featureTableJsonByteLength, true);
|
|
24
|
+
dataView.setUint32(16, 0, true);
|
|
25
|
+
dataView.setUint32(20, batchTableJsonByteLength, true);
|
|
26
|
+
dataView.setUint32(24, 0, true);
|
|
27
|
+
}
|
|
28
|
+
byteOffset += 16;
|
|
29
|
+
byteOffset = copyPaddedStringToDataView(dataView, byteOffset, featureTableJsonString, 8);
|
|
30
|
+
if (batchTable) {
|
|
31
|
+
byteOffset = copyPaddedStringToDataView(dataView, byteOffset, batchTableJsonString, 8);
|
|
32
|
+
}
|
|
33
|
+
const gltfEncoded = tile.gltfEncoded;
|
|
34
|
+
if (gltfEncoded) {
|
|
35
|
+
byteOffset = copyBinaryToDataView(dataView, byteOffset, gltfEncoded, gltfEncoded.byteLength);
|
|
36
|
+
}
|
|
37
|
+
encode3DTileByteLength(dataView, byteOffsetStart, byteOffset - byteOffsetStart);
|
|
38
|
+
return byteOffset;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=encode-3d-tile-batched-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-3d-tile-batched-model.js","names":["padToNBytes","copyBinaryToDataView","copyPaddedStringToDataView","MAGIC_ARRAY","encode3DTileHeader","encode3DTileByteLength","encodeBatchedModel3DTile","tile","dataView","byteOffset","options","featuresLength","batchTable","featureTableJson","BATCH_LENGTH","featureTableJsonString","JSON","stringify","batchTableJsonString","featureTableJsonByteLength","length","batchTableJsonByteLength","magic","BATCHED_MODEL","byteOffsetStart","setUint32","gltfEncoded","byteLength"],"sources":["../../../../src/lib/encoders/encode-3d-tile-batched-model.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {\n padToNBytes,\n copyBinaryToDataView,\n copyPaddedStringToDataView\n} from '@loaders.gl/loader-utils';\nimport {MAGIC_ARRAY} from '../constants';\nimport {encode3DTileHeader, encode3DTileByteLength} from './helpers/encode-3d-tile-header';\n\n// Procedurally encode the tile array dataView for testing purposes\nexport function encodeBatchedModel3DTile(tile, dataView, byteOffset, options) {\n const {featuresLength = 0, batchTable} = tile;\n\n const featureTableJson = {\n BATCH_LENGTH: featuresLength\n };\n const featureTableJsonString = JSON.stringify(featureTableJson);\n const batchTableJsonString = batchTable ? JSON.stringify(batchTable) : '';\n const featureTableJsonByteLength = padToNBytes(featureTableJsonString.length, 8);\n const batchTableJsonByteLength = batchTableJsonString\n ? padToNBytes(batchTableJsonString.length, 8)\n : 0;\n\n // Add default magic for this tile type\n tile = {magic: MAGIC_ARRAY.BATCHED_MODEL, ...tile};\n\n const byteOffsetStart = byteOffset;\n\n byteOffset = encode3DTileHeader(tile, dataView, byteOffset);\n\n if (dataView) {\n dataView.setUint32(12, featureTableJsonByteLength, true); // featureTableJsonByteLength\n dataView.setUint32(16, 0, true); // featureTableBinaryByteLength\n dataView.setUint32(20, batchTableJsonByteLength, true); // batchTableJsonByteLength\n dataView.setUint32(24, 0, true); // batchTableBinaryByteLength\n }\n byteOffset += 16;\n\n // TODO feature table binary\n byteOffset = copyPaddedStringToDataView(dataView, byteOffset, featureTableJsonString, 8);\n\n if (batchTable) {\n byteOffset = copyPaddedStringToDataView(dataView, byteOffset, batchTableJsonString, 8);\n }\n\n // Add encoded GLTF to the end of data\n const gltfEncoded = tile.gltfEncoded;\n if (gltfEncoded) {\n byteOffset = copyBinaryToDataView(dataView, byteOffset, gltfEncoded, gltfEncoded.byteLength);\n }\n\n // Go \"back\" and rewrite the tile's `byteLength` now that we know the value\n encode3DTileByteLength(dataView, byteOffsetStart, byteOffset - byteOffsetStart);\n\n return byteOffset;\n}\n"],"mappings":"AAGA,SACEA,WAAW,EACXC,oBAAoB,EACpBC,0BAA0B,QACrB,0BAA0B;AACjC,SAAQC,WAAW,QAAO,cAAc;AACxC,SAAQC,kBAAkB,EAAEC,sBAAsB,QAAO,iCAAiC;AAG1F,OAAO,SAASC,wBAAwBA,CAACC,IAAI,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,OAAO,EAAE;EAC5E,MAAM;IAACC,cAAc,GAAG,CAAC;IAAEC;EAAU,CAAC,GAAGL,IAAI;EAE7C,MAAMM,gBAAgB,GAAG;IACvBC,YAAY,EAAEH;EAChB,CAAC;EACD,MAAMI,sBAAsB,GAAGC,IAAI,CAACC,SAAS,CAACJ,gBAAgB,CAAC;EAC/D,MAAMK,oBAAoB,GAAGN,UAAU,GAAGI,IAAI,CAACC,SAAS,CAACL,UAAU,CAAC,GAAG,EAAE;EACzE,MAAMO,0BAA0B,GAAGnB,WAAW,CAACe,sBAAsB,CAACK,MAAM,EAAE,CAAC,CAAC;EAChF,MAAMC,wBAAwB,GAAGH,oBAAoB,GACjDlB,WAAW,CAACkB,oBAAoB,CAACE,MAAM,EAAE,CAAC,CAAC,GAC3C,CAAC;EAGLb,IAAI,GAAG;IAACe,KAAK,EAAEnB,WAAW,CAACoB,aAAa;IAAE,GAAGhB;EAAI,CAAC;EAElD,MAAMiB,eAAe,GAAGf,UAAU;EAElCA,UAAU,GAAGL,kBAAkB,CAACG,IAAI,EAAEC,QAAQ,EAAEC,UAAU,CAAC;EAE3D,IAAID,QAAQ,EAAE;IACZA,QAAQ,CAACiB,SAAS,CAAC,EAAE,EAAEN,0BAA0B,EAAE,IAAI,CAAC;IACxDX,QAAQ,CAACiB,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;IAC/BjB,QAAQ,CAACiB,SAAS,CAAC,EAAE,EAAEJ,wBAAwB,EAAE,IAAI,CAAC;IACtDb,QAAQ,CAACiB,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;EACjC;EACAhB,UAAU,IAAI,EAAE;EAGhBA,UAAU,GAAGP,0BAA0B,CAACM,QAAQ,EAAEC,UAAU,EAAEM,sBAAsB,EAAE,CAAC,CAAC;EAExF,IAAIH,UAAU,EAAE;IACdH,UAAU,GAAGP,0BAA0B,CAACM,QAAQ,EAAEC,UAAU,EAAES,oBAAoB,EAAE,CAAC,CAAC;EACxF;EAGA,MAAMQ,WAAW,GAAGnB,IAAI,CAACmB,WAAW;EACpC,IAAIA,WAAW,EAAE;IACfjB,UAAU,GAAGR,oBAAoB,CAACO,QAAQ,EAAEC,UAAU,EAAEiB,WAAW,EAAEA,WAAW,CAACC,UAAU,CAAC;EAC9F;EAGAtB,sBAAsB,CAACG,QAAQ,EAAEgB,eAAe,EAAEf,UAAU,GAAGe,eAAe,CAAC;EAE/E,OAAOf,UAAU;AACnB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { MAGIC_ARRAY } from '../constants';
|
|
2
|
+
import { encode3DTileHeader, encode3DTileByteLength } from './helpers/encode-3d-tile-header';
|
|
3
|
+
export function encodeComposite3DTile(tile, dataView, byteOffset, options, encode3DTile) {
|
|
4
|
+
tile = {
|
|
5
|
+
magic: MAGIC_ARRAY.COMPOSITE,
|
|
6
|
+
tiles: [],
|
|
7
|
+
...tile
|
|
8
|
+
};
|
|
9
|
+
const byteOffsetStart = byteOffset;
|
|
10
|
+
byteOffset += encode3DTileHeader(tile, dataView, byteOffset);
|
|
11
|
+
if (dataView) {
|
|
12
|
+
dataView.setUint32(byteOffset, tile.tiles.length, true);
|
|
13
|
+
}
|
|
14
|
+
byteOffset += 4;
|
|
15
|
+
for (let i = 0; i < tile.tiles.length; ++i) {
|
|
16
|
+
byteOffset += encode3DTile(tile.tiles[i], dataView, byteOffset, options);
|
|
17
|
+
}
|
|
18
|
+
encode3DTileByteLength(dataView, byteOffsetStart, byteOffset - byteOffsetStart);
|
|
19
|
+
return byteOffset;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=encode-3d-tile-composite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-3d-tile-composite.js","names":["MAGIC_ARRAY","encode3DTileHeader","encode3DTileByteLength","encodeComposite3DTile","tile","dataView","byteOffset","options","encode3DTile","magic","COMPOSITE","tiles","byteOffsetStart","setUint32","length","i"],"sources":["../../../../src/lib/encoders/encode-3d-tile-composite.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {MAGIC_ARRAY} from '../constants';\nimport {encode3DTileHeader, encode3DTileByteLength} from './helpers/encode-3d-tile-header';\n\nexport function encodeComposite3DTile(tile, dataView, byteOffset, options, encode3DTile) {\n // Add default magic for this tile type\n tile = {magic: MAGIC_ARRAY.COMPOSITE, tiles: [], ...tile};\n\n const byteOffsetStart = byteOffset;\n\n byteOffset += encode3DTileHeader(tile, dataView, byteOffset);\n\n if (dataView) {\n dataView.setUint32(byteOffset, tile.tiles.length, true); // tilesLength\n }\n byteOffset += 4;\n\n for (let i = 0; i < tile.tiles.length; ++i) {\n byteOffset += encode3DTile(tile.tiles[i], dataView, byteOffset, options);\n }\n\n // Go \"back\" and rewrite the tile's `byteLength` now that we know the value\n encode3DTileByteLength(dataView, byteOffsetStart, byteOffset - byteOffsetStart);\n\n return byteOffset;\n}\n"],"mappings":"AAGA,SAAQA,WAAW,QAAO,cAAc;AACxC,SAAQC,kBAAkB,EAAEC,sBAAsB,QAAO,iCAAiC;AAE1F,OAAO,SAASC,qBAAqBA,CAACC,IAAI,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,OAAO,EAAEC,YAAY,EAAE;EAEvFJ,IAAI,GAAG;IAACK,KAAK,EAAET,WAAW,CAACU,SAAS;IAAEC,KAAK,EAAE,EAAE;IAAE,GAAGP;EAAI,CAAC;EAEzD,MAAMQ,eAAe,GAAGN,UAAU;EAElCA,UAAU,IAAIL,kBAAkB,CAACG,IAAI,EAAEC,QAAQ,EAAEC,UAAU,CAAC;EAE5D,IAAID,QAAQ,EAAE;IACZA,QAAQ,CAACQ,SAAS,CAACP,UAAU,EAAEF,IAAI,CAACO,KAAK,CAACG,MAAM,EAAE,IAAI,CAAC;EACzD;EACAR,UAAU,IAAI,CAAC;EAEf,KAAK,IAAIS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGX,IAAI,CAACO,KAAK,CAACG,MAAM,EAAE,EAAEC,CAAC,EAAE;IAC1CT,UAAU,IAAIE,YAAY,CAACJ,IAAI,CAACO,KAAK,CAACI,CAAC,CAAC,EAAEV,QAAQ,EAAEC,UAAU,EAAEC,OAAO,CAAC;EAC1E;EAGAL,sBAAsB,CAACG,QAAQ,EAAEO,eAAe,EAAEN,UAAU,GAAGM,eAAe,CAAC;EAE/E,OAAON,UAAU;AACnB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { copyStringToDataView } from '@loaders.gl/loader-utils';
|
|
2
|
+
import { MAGIC_ARRAY } from '../constants';
|
|
3
|
+
import { encode3DTileHeader, encode3DTileByteLength } from './helpers/encode-3d-tile-header';
|
|
4
|
+
export function encodeInstancedModel3DTile(tile, dataView, byteOffset, options) {
|
|
5
|
+
const {
|
|
6
|
+
featuresLength = 1,
|
|
7
|
+
gltfFormat = 1,
|
|
8
|
+
gltfUri = ''
|
|
9
|
+
} = tile;
|
|
10
|
+
const gltfUriByteLength = gltfUri.length;
|
|
11
|
+
const featureTableJson = {
|
|
12
|
+
INSTANCES_LENGTH: featuresLength,
|
|
13
|
+
POSITION: new Array(featuresLength * 3).fill(0)
|
|
14
|
+
};
|
|
15
|
+
const featureTableJsonString = JSON.stringify(featureTableJson);
|
|
16
|
+
const featureTableJsonByteLength = featureTableJsonString.length;
|
|
17
|
+
tile = {
|
|
18
|
+
magic: MAGIC_ARRAY.INSTANCED_MODEL,
|
|
19
|
+
...tile
|
|
20
|
+
};
|
|
21
|
+
const byteOffsetStart = byteOffset;
|
|
22
|
+
byteOffset = encode3DTileHeader(tile, dataView, 0);
|
|
23
|
+
if (dataView) {
|
|
24
|
+
dataView.setUint32(12, featureTableJsonByteLength, true);
|
|
25
|
+
dataView.setUint32(16, 0, true);
|
|
26
|
+
dataView.setUint32(20, 0, true);
|
|
27
|
+
dataView.setUint32(24, 0, true);
|
|
28
|
+
dataView.setUint32(28, gltfFormat, true);
|
|
29
|
+
}
|
|
30
|
+
byteOffset += 20;
|
|
31
|
+
byteOffset += copyStringToDataView(dataView, byteOffset, featureTableJsonString, featureTableJsonByteLength);
|
|
32
|
+
byteOffset += copyStringToDataView(dataView, byteOffset, gltfUri, gltfUriByteLength);
|
|
33
|
+
encode3DTileByteLength(dataView, byteOffsetStart, byteOffset - byteOffsetStart);
|
|
34
|
+
return byteOffset;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=encode-3d-tile-instanced-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-3d-tile-instanced-model.js","names":["copyStringToDataView","MAGIC_ARRAY","encode3DTileHeader","encode3DTileByteLength","encodeInstancedModel3DTile","tile","dataView","byteOffset","options","featuresLength","gltfFormat","gltfUri","gltfUriByteLength","length","featureTableJson","INSTANCES_LENGTH","POSITION","Array","fill","featureTableJsonString","JSON","stringify","featureTableJsonByteLength","magic","INSTANCED_MODEL","byteOffsetStart","setUint32"],"sources":["../../../../src/lib/encoders/encode-3d-tile-instanced-model.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {copyStringToDataView} from '@loaders.gl/loader-utils';\nimport {MAGIC_ARRAY} from '../constants';\nimport {encode3DTileHeader, encode3DTileByteLength} from './helpers/encode-3d-tile-header';\n\n// Procedurally encode the tile array buffer for testing purposes\n// eslint-disable-next-line max-statements\nexport function encodeInstancedModel3DTile(tile, dataView, byteOffset, options) {\n const {featuresLength = 1, gltfFormat = 1, gltfUri = ''} = tile;\n\n const gltfUriByteLength = gltfUri.length;\n\n const featureTableJson = {\n INSTANCES_LENGTH: featuresLength,\n POSITION: new Array(featuresLength * 3).fill(0)\n };\n const featureTableJsonString = JSON.stringify(featureTableJson);\n const featureTableJsonByteLength = featureTableJsonString.length;\n\n // Add default magic for this tile type\n tile = {magic: MAGIC_ARRAY.INSTANCED_MODEL, ...tile};\n\n const byteOffsetStart = byteOffset;\n\n byteOffset = encode3DTileHeader(tile, dataView, 0);\n\n if (dataView) {\n dataView.setUint32(12, featureTableJsonByteLength, true); // featureTableJsonByteLength\n dataView.setUint32(16, 0, true); // featureTableBinaryByteLength\n dataView.setUint32(20, 0, true); // batchTableJsonByteLength\n dataView.setUint32(24, 0, true); // batchTableBinaryByteLength\n dataView.setUint32(28, gltfFormat, true); // gltfFormat\n }\n\n byteOffset += 20;\n\n byteOffset += copyStringToDataView(\n dataView,\n byteOffset,\n featureTableJsonString,\n featureTableJsonByteLength\n );\n byteOffset += copyStringToDataView(dataView, byteOffset, gltfUri, gltfUriByteLength);\n\n // Go \"back\" and rewrite the tile's `byteLength` now that we know the value\n encode3DTileByteLength(dataView, byteOffsetStart, byteOffset - byteOffsetStart);\n\n return byteOffset;\n}\n"],"mappings":"AAGA,SAAQA,oBAAoB,QAAO,0BAA0B;AAC7D,SAAQC,WAAW,QAAO,cAAc;AACxC,SAAQC,kBAAkB,EAAEC,sBAAsB,QAAO,iCAAiC;AAI1F,OAAO,SAASC,0BAA0BA,CAACC,IAAI,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,OAAO,EAAE;EAC9E,MAAM;IAACC,cAAc,GAAG,CAAC;IAAEC,UAAU,GAAG,CAAC;IAAEC,OAAO,GAAG;EAAE,CAAC,GAAGN,IAAI;EAE/D,MAAMO,iBAAiB,GAAGD,OAAO,CAACE,MAAM;EAExC,MAAMC,gBAAgB,GAAG;IACvBC,gBAAgB,EAAEN,cAAc;IAChCO,QAAQ,EAAE,IAAIC,KAAK,CAACR,cAAc,GAAG,CAAC,CAAC,CAACS,IAAI,CAAC,CAAC;EAChD,CAAC;EACD,MAAMC,sBAAsB,GAAGC,IAAI,CAACC,SAAS,CAACP,gBAAgB,CAAC;EAC/D,MAAMQ,0BAA0B,GAAGH,sBAAsB,CAACN,MAAM;EAGhER,IAAI,GAAG;IAACkB,KAAK,EAAEtB,WAAW,CAACuB,eAAe;IAAE,GAAGnB;EAAI,CAAC;EAEpD,MAAMoB,eAAe,GAAGlB,UAAU;EAElCA,UAAU,GAAGL,kBAAkB,CAACG,IAAI,EAAEC,QAAQ,EAAE,CAAC,CAAC;EAElD,IAAIA,QAAQ,EAAE;IACZA,QAAQ,CAACoB,SAAS,CAAC,EAAE,EAAEJ,0BAA0B,EAAE,IAAI,CAAC;IACxDhB,QAAQ,CAACoB,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;IAC/BpB,QAAQ,CAACoB,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;IAC/BpB,QAAQ,CAACoB,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;IAC/BpB,QAAQ,CAACoB,SAAS,CAAC,EAAE,EAAEhB,UAAU,EAAE,IAAI,CAAC;EAC1C;EAEAH,UAAU,IAAI,EAAE;EAEhBA,UAAU,IAAIP,oBAAoB,CAChCM,QAAQ,EACRC,UAAU,EACVY,sBAAsB,EACtBG,0BACF,CAAC;EACDf,UAAU,IAAIP,oBAAoB,CAACM,QAAQ,EAAEC,UAAU,EAAEI,OAAO,EAAEC,iBAAiB,CAAC;EAGpFT,sBAAsB,CAACG,QAAQ,EAAEmB,eAAe,EAAElB,UAAU,GAAGkB,eAAe,CAAC;EAE/E,OAAOlB,UAAU;AACnB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { MAGIC_ARRAY } from '../constants';
|
|
2
|
+
import { encode3DTileHeader, encode3DTileByteLength } from './helpers/encode-3d-tile-header';
|
|
3
|
+
import { padStringToByteAlignment, copyStringToDataView, copyBinaryToDataView } from '@loaders.gl/loader-utils';
|
|
4
|
+
const DEFAULT_FEATURE_TABLE_JSON = {
|
|
5
|
+
POINTS_LENGTH: 1,
|
|
6
|
+
POSITIONS: {
|
|
7
|
+
byteOffset: 0
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
export function encodePointCloud3DTile(tile, dataView, byteOffset, options) {
|
|
11
|
+
const {
|
|
12
|
+
featureTableJson = DEFAULT_FEATURE_TABLE_JSON
|
|
13
|
+
} = tile;
|
|
14
|
+
let featureTableJsonString = JSON.stringify(featureTableJson);
|
|
15
|
+
featureTableJsonString = padStringToByteAlignment(featureTableJsonString, 4);
|
|
16
|
+
const {
|
|
17
|
+
featureTableJsonByteLength = featureTableJsonString.length
|
|
18
|
+
} = tile;
|
|
19
|
+
const featureTableBinary = new ArrayBuffer(12);
|
|
20
|
+
const featureTableBinaryByteLength = featureTableBinary.byteLength;
|
|
21
|
+
tile = {
|
|
22
|
+
magic: MAGIC_ARRAY.POINT_CLOUD,
|
|
23
|
+
...tile
|
|
24
|
+
};
|
|
25
|
+
const byteOffsetStart = byteOffset;
|
|
26
|
+
byteOffset += encode3DTileHeader(tile, dataView, 0);
|
|
27
|
+
if (dataView) {
|
|
28
|
+
dataView.setUint32(byteOffset + 0, featureTableJsonByteLength, true);
|
|
29
|
+
dataView.setUint32(byteOffset + 4, featureTableBinaryByteLength, true);
|
|
30
|
+
dataView.setUint32(byteOffset + 8, 0, true);
|
|
31
|
+
dataView.setUint32(byteOffset + 12, 0, true);
|
|
32
|
+
}
|
|
33
|
+
byteOffset += 16;
|
|
34
|
+
byteOffset += copyStringToDataView(dataView, byteOffset, featureTableJsonString, featureTableJsonByteLength);
|
|
35
|
+
byteOffset += copyBinaryToDataView(dataView, byteOffset, featureTableBinary, featureTableBinaryByteLength);
|
|
36
|
+
encode3DTileByteLength(dataView, byteOffsetStart, byteOffset - byteOffsetStart);
|
|
37
|
+
return byteOffset;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=encode-3d-tile-point-cloud.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-3d-tile-point-cloud.js","names":["MAGIC_ARRAY","encode3DTileHeader","encode3DTileByteLength","padStringToByteAlignment","copyStringToDataView","copyBinaryToDataView","DEFAULT_FEATURE_TABLE_JSON","POINTS_LENGTH","POSITIONS","byteOffset","encodePointCloud3DTile","tile","dataView","options","featureTableJson","featureTableJsonString","JSON","stringify","featureTableJsonByteLength","length","featureTableBinary","ArrayBuffer","featureTableBinaryByteLength","byteLength","magic","POINT_CLOUD","byteOffsetStart","setUint32"],"sources":["../../../../src/lib/encoders/encode-3d-tile-point-cloud.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {MAGIC_ARRAY} from '../constants';\nimport {encode3DTileHeader, encode3DTileByteLength} from './helpers/encode-3d-tile-header';\nimport {\n padStringToByteAlignment,\n copyStringToDataView,\n copyBinaryToDataView\n} from '@loaders.gl/loader-utils';\n\nconst DEFAULT_FEATURE_TABLE_JSON = {\n POINTS_LENGTH: 1,\n POSITIONS: {\n byteOffset: 0\n }\n};\n\nexport function encodePointCloud3DTile(tile, dataView, byteOffset, options) {\n const {featureTableJson = DEFAULT_FEATURE_TABLE_JSON} = tile;\n\n let featureTableJsonString = JSON.stringify(featureTableJson);\n featureTableJsonString = padStringToByteAlignment(featureTableJsonString, 4);\n\n const {featureTableJsonByteLength = featureTableJsonString.length} = tile;\n\n const featureTableBinary = new ArrayBuffer(12); // Enough space to hold 3 floats\n const featureTableBinaryByteLength = featureTableBinary.byteLength;\n\n // Add default magic for this tile type\n tile = {magic: MAGIC_ARRAY.POINT_CLOUD, ...tile};\n\n const byteOffsetStart = byteOffset;\n\n byteOffset += encode3DTileHeader(tile, dataView, 0);\n\n if (dataView) {\n dataView.setUint32(byteOffset + 0, featureTableJsonByteLength, true); // featureTableJsonByteLength\n dataView.setUint32(byteOffset + 4, featureTableBinaryByteLength, true); // featureTableBinaryByteLength\n dataView.setUint32(byteOffset + 8, 0, true); // batchTableJsonByteLength\n dataView.setUint32(byteOffset + 12, 0, true); // batchTableBinaryByteLength\n }\n byteOffset += 16;\n\n byteOffset += copyStringToDataView(\n dataView,\n byteOffset,\n featureTableJsonString,\n featureTableJsonByteLength\n );\n byteOffset += copyBinaryToDataView(\n dataView,\n byteOffset,\n featureTableBinary,\n featureTableBinaryByteLength\n );\n\n // Go \"back\" and rewrite the tile's `byteLength` now that we know the value\n encode3DTileByteLength(dataView, byteOffsetStart, byteOffset - byteOffsetStart);\n\n return byteOffset;\n}\n"],"mappings":"AAGA,SAAQA,WAAW,QAAO,cAAc;AACxC,SAAQC,kBAAkB,EAAEC,sBAAsB,QAAO,iCAAiC;AAC1F,SACEC,wBAAwB,EACxBC,oBAAoB,EACpBC,oBAAoB,QACf,0BAA0B;AAEjC,MAAMC,0BAA0B,GAAG;EACjCC,aAAa,EAAE,CAAC;EAChBC,SAAS,EAAE;IACTC,UAAU,EAAE;EACd;AACF,CAAC;AAED,OAAO,SAASC,sBAAsBA,CAACC,IAAI,EAAEC,QAAQ,EAAEH,UAAU,EAAEI,OAAO,EAAE;EAC1E,MAAM;IAACC,gBAAgB,GAAGR;EAA0B,CAAC,GAAGK,IAAI;EAE5D,IAAII,sBAAsB,GAAGC,IAAI,CAACC,SAAS,CAACH,gBAAgB,CAAC;EAC7DC,sBAAsB,GAAGZ,wBAAwB,CAACY,sBAAsB,EAAE,CAAC,CAAC;EAE5E,MAAM;IAACG,0BAA0B,GAAGH,sBAAsB,CAACI;EAAM,CAAC,GAAGR,IAAI;EAEzE,MAAMS,kBAAkB,GAAG,IAAIC,WAAW,CAAC,EAAE,CAAC;EAC9C,MAAMC,4BAA4B,GAAGF,kBAAkB,CAACG,UAAU;EAGlEZ,IAAI,GAAG;IAACa,KAAK,EAAExB,WAAW,CAACyB,WAAW;IAAE,GAAGd;EAAI,CAAC;EAEhD,MAAMe,eAAe,GAAGjB,UAAU;EAElCA,UAAU,IAAIR,kBAAkB,CAACU,IAAI,EAAEC,QAAQ,EAAE,CAAC,CAAC;EAEnD,IAAIA,QAAQ,EAAE;IACZA,QAAQ,CAACe,SAAS,CAAClB,UAAU,GAAG,CAAC,EAAES,0BAA0B,EAAE,IAAI,CAAC;IACpEN,QAAQ,CAACe,SAAS,CAAClB,UAAU,GAAG,CAAC,EAAEa,4BAA4B,EAAE,IAAI,CAAC;IACtEV,QAAQ,CAACe,SAAS,CAAClB,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC3CG,QAAQ,CAACe,SAAS,CAAClB,UAAU,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;EAC9C;EACAA,UAAU,IAAI,EAAE;EAEhBA,UAAU,IAAIL,oBAAoB,CAChCQ,QAAQ,EACRH,UAAU,EACVM,sBAAsB,EACtBG,0BACF,CAAC;EACDT,UAAU,IAAIJ,oBAAoB,CAChCO,QAAQ,EACRH,UAAU,EACVW,kBAAkB,EAClBE,4BACF,CAAC;EAGDpB,sBAAsB,CAACU,QAAQ,EAAEc,eAAe,EAAEjB,UAAU,GAAGiB,eAAe,CAAC;EAE/E,OAAOjB,UAAU;AACnB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TILE3D_TYPE } from '../constants';
|
|
2
|
+
import { assert } from '@loaders.gl/loader-utils';
|
|
3
|
+
import { encodeComposite3DTile } from './encode-3d-tile-composite';
|
|
4
|
+
import { encodeBatchedModel3DTile } from './encode-3d-tile-batched-model';
|
|
5
|
+
import { encodeInstancedModel3DTile } from './encode-3d-tile-instanced-model';
|
|
6
|
+
import { encodePointCloud3DTile } from './encode-3d-tile-point-cloud';
|
|
7
|
+
export default function encode3DTile(tile, options) {
|
|
8
|
+
const byteLength = encode3DTileToDataView(tile, null, 0, options);
|
|
9
|
+
const arrayBuffer = new ArrayBuffer(byteLength);
|
|
10
|
+
const dataView = new DataView(arrayBuffer);
|
|
11
|
+
encode3DTileToDataView(tile, dataView, 0, options);
|
|
12
|
+
return arrayBuffer;
|
|
13
|
+
}
|
|
14
|
+
function encode3DTileToDataView(tile, dataView, byteOffset, options) {
|
|
15
|
+
assert(typeof tile.type === 'string');
|
|
16
|
+
switch (tile.type) {
|
|
17
|
+
case TILE3D_TYPE.COMPOSITE:
|
|
18
|
+
return encodeComposite3DTile(tile, dataView, byteOffset, options, encode3DTileToDataView);
|
|
19
|
+
case TILE3D_TYPE.POINT_CLOUD:
|
|
20
|
+
return encodePointCloud3DTile(tile, dataView, byteOffset, options);
|
|
21
|
+
case TILE3D_TYPE.BATCHED_3D_MODEL:
|
|
22
|
+
return encodeBatchedModel3DTile(tile, dataView, byteOffset, options);
|
|
23
|
+
case TILE3D_TYPE.INSTANCED_3D_MODEL:
|
|
24
|
+
return encodeInstancedModel3DTile(tile, dataView, byteOffset, options);
|
|
25
|
+
default:
|
|
26
|
+
throw new Error('3D Tiles: unknown tile type');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=encode-3d-tile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-3d-tile.js","names":["TILE3D_TYPE","assert","encodeComposite3DTile","encodeBatchedModel3DTile","encodeInstancedModel3DTile","encodePointCloud3DTile","encode3DTile","tile","options","byteLength","encode3DTileToDataView","arrayBuffer","ArrayBuffer","dataView","DataView","byteOffset","type","COMPOSITE","POINT_CLOUD","BATCHED_3D_MODEL","INSTANCED_3D_MODEL","Error"],"sources":["../../../../src/lib/encoders/encode-3d-tile.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {TILE3D_TYPE} from '../constants';\nimport {assert} from '@loaders.gl/loader-utils';\n\nimport {encodeComposite3DTile} from './encode-3d-tile-composite';\nimport {encodeBatchedModel3DTile} from './encode-3d-tile-batched-model';\nimport {encodeInstancedModel3DTile} from './encode-3d-tile-instanced-model';\nimport {encodePointCloud3DTile} from './encode-3d-tile-point-cloud';\n\nexport default function encode3DTile(tile, options) {\n const byteLength = encode3DTileToDataView(tile, null, 0, options);\n const arrayBuffer = new ArrayBuffer(byteLength);\n const dataView = new DataView(arrayBuffer);\n encode3DTileToDataView(tile, dataView, 0, options);\n return arrayBuffer;\n}\n\nfunction encode3DTileToDataView(tile, dataView, byteOffset, options) {\n assert(typeof tile.type === 'string');\n\n switch (tile.type) {\n case TILE3D_TYPE.COMPOSITE:\n return encodeComposite3DTile(tile, dataView, byteOffset, options, encode3DTileToDataView);\n case TILE3D_TYPE.POINT_CLOUD:\n return encodePointCloud3DTile(tile, dataView, byteOffset, options);\n case TILE3D_TYPE.BATCHED_3D_MODEL:\n return encodeBatchedModel3DTile(tile, dataView, byteOffset, options);\n case TILE3D_TYPE.INSTANCED_3D_MODEL:\n return encodeInstancedModel3DTile(tile, dataView, byteOffset, options);\n default:\n throw new Error('3D Tiles: unknown tile type');\n }\n}\n"],"mappings":"AAGA,SAAQA,WAAW,QAAO,cAAc;AACxC,SAAQC,MAAM,QAAO,0BAA0B;AAE/C,SAAQC,qBAAqB,QAAO,4BAA4B;AAChE,SAAQC,wBAAwB,QAAO,gCAAgC;AACvE,SAAQC,0BAA0B,QAAO,kCAAkC;AAC3E,SAAQC,sBAAsB,QAAO,8BAA8B;AAEnE,eAAe,SAASC,YAAYA,CAACC,IAAI,EAAEC,OAAO,EAAE;EAClD,MAAMC,UAAU,GAAGC,sBAAsB,CAACH,IAAI,EAAE,IAAI,EAAE,CAAC,EAAEC,OAAO,CAAC;EACjE,MAAMG,WAAW,GAAG,IAAIC,WAAW,CAACH,UAAU,CAAC;EAC/C,MAAMI,QAAQ,GAAG,IAAIC,QAAQ,CAACH,WAAW,CAAC;EAC1CD,sBAAsB,CAACH,IAAI,EAAEM,QAAQ,EAAE,CAAC,EAAEL,OAAO,CAAC;EAClD,OAAOG,WAAW;AACpB;AAEA,SAASD,sBAAsBA,CAACH,IAAI,EAAEM,QAAQ,EAAEE,UAAU,EAAEP,OAAO,EAAE;EACnEP,MAAM,CAAC,OAAOM,IAAI,CAACS,IAAI,KAAK,QAAQ,CAAC;EAErC,QAAQT,IAAI,CAACS,IAAI;IACf,KAAKhB,WAAW,CAACiB,SAAS;MACxB,OAAOf,qBAAqB,CAACK,IAAI,EAAEM,QAAQ,EAAEE,UAAU,EAAEP,OAAO,EAAEE,sBAAsB,CAAC;IAC3F,KAAKV,WAAW,CAACkB,WAAW;MAC1B,OAAOb,sBAAsB,CAACE,IAAI,EAAEM,QAAQ,EAAEE,UAAU,EAAEP,OAAO,CAAC;IACpE,KAAKR,WAAW,CAACmB,gBAAgB;MAC/B,OAAOhB,wBAAwB,CAACI,IAAI,EAAEM,QAAQ,EAAEE,UAAU,EAAEP,OAAO,CAAC;IACtE,KAAKR,WAAW,CAACoB,kBAAkB;MACjC,OAAOhB,0BAA0B,CAACG,IAAI,EAAEM,QAAQ,EAAEE,UAAU,EAAEP,OAAO,CAAC;IACxE;MACE,MAAM,IAAIa,KAAK,CAAC,6BAA6B,CAAC;EAClD;AACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { assert } from '@loaders.gl/loader-utils';
|
|
2
|
+
export function encode3DTileHeader(tile, dataView, byteOffset) {
|
|
3
|
+
const HEADER_SIZE = 12;
|
|
4
|
+
if (!dataView) {
|
|
5
|
+
return byteOffset + HEADER_SIZE;
|
|
6
|
+
}
|
|
7
|
+
const {
|
|
8
|
+
magic,
|
|
9
|
+
version = 1,
|
|
10
|
+
byteLength = 12
|
|
11
|
+
} = tile;
|
|
12
|
+
assert(Array.isArray(magic) && Number.isFinite(version) && Number.isFinite(byteLength));
|
|
13
|
+
dataView.setUint8(byteOffset + 0, magic[0]);
|
|
14
|
+
dataView.setUint8(byteOffset + 1, magic[1]);
|
|
15
|
+
dataView.setUint8(byteOffset + 2, magic[2]);
|
|
16
|
+
dataView.setUint8(byteOffset + 3, magic[3]);
|
|
17
|
+
dataView.setUint32(byteOffset + 4, version, true);
|
|
18
|
+
dataView.setUint32(byteOffset + 8, byteLength, true);
|
|
19
|
+
byteOffset += HEADER_SIZE;
|
|
20
|
+
return byteOffset;
|
|
21
|
+
}
|
|
22
|
+
export function encode3DTileByteLength(dataView, byteOffsetTileStart, byteLength) {
|
|
23
|
+
if (!dataView) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
dataView.setUint32(byteOffsetTileStart + 8, byteLength, true);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=encode-3d-tile-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-3d-tile-header.js","names":["assert","encode3DTileHeader","tile","dataView","byteOffset","HEADER_SIZE","magic","version","byteLength","Array","isArray","Number","isFinite","setUint8","setUint32","encode3DTileByteLength","byteOffsetTileStart"],"sources":["../../../../../src/lib/encoders/helpers/encode-3d-tile-header.ts"],"sourcesContent":["// HELPER ENCODERS\nimport {assert} from '@loaders.gl/loader-utils';\n\nexport function encode3DTileHeader(tile, dataView, byteOffset) {\n const HEADER_SIZE = 12;\n\n if (!dataView) {\n return byteOffset + HEADER_SIZE;\n }\n\n const {magic, version = 1, byteLength = 12} = tile;\n\n assert(Array.isArray(magic) && Number.isFinite(version) && Number.isFinite(byteLength));\n\n dataView.setUint8(byteOffset + 0, magic[0]);\n dataView.setUint8(byteOffset + 1, magic[1]);\n dataView.setUint8(byteOffset + 2, magic[2]);\n dataView.setUint8(byteOffset + 3, magic[3]);\n dataView.setUint32(byteOffset + 4, version, true); // version\n dataView.setUint32(byteOffset + 8, byteLength, true); // byteLength\n\n byteOffset += HEADER_SIZE;\n\n return byteOffset;\n}\n\n// Bytelength is sometimes only known at the end of writing a tile\nexport function encode3DTileByteLength(dataView, byteOffsetTileStart, byteLength) {\n if (!dataView) {\n return;\n }\n\n dataView.setUint32(byteOffsetTileStart + 8, byteLength, true); // byteLength\n}\n"],"mappings":"AACA,SAAQA,MAAM,QAAO,0BAA0B;AAE/C,OAAO,SAASC,kBAAkBA,CAACC,IAAI,EAAEC,QAAQ,EAAEC,UAAU,EAAE;EAC7D,MAAMC,WAAW,GAAG,EAAE;EAEtB,IAAI,CAACF,QAAQ,EAAE;IACb,OAAOC,UAAU,GAAGC,WAAW;EACjC;EAEA,MAAM;IAACC,KAAK;IAAEC,OAAO,GAAG,CAAC;IAAEC,UAAU,GAAG;EAAE,CAAC,GAAGN,IAAI;EAElDF,MAAM,CAACS,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,IAAIK,MAAM,CAACC,QAAQ,CAACL,OAAO,CAAC,IAAII,MAAM,CAACC,QAAQ,CAACJ,UAAU,CAAC,CAAC;EAEvFL,QAAQ,CAACU,QAAQ,CAACT,UAAU,GAAG,CAAC,EAAEE,KAAK,CAAC,CAAC,CAAC,CAAC;EAC3CH,QAAQ,CAACU,QAAQ,CAACT,UAAU,GAAG,CAAC,EAAEE,KAAK,CAAC,CAAC,CAAC,CAAC;EAC3CH,QAAQ,CAACU,QAAQ,CAACT,UAAU,GAAG,CAAC,EAAEE,KAAK,CAAC,CAAC,CAAC,CAAC;EAC3CH,QAAQ,CAACU,QAAQ,CAACT,UAAU,GAAG,CAAC,EAAEE,KAAK,CAAC,CAAC,CAAC,CAAC;EAC3CH,QAAQ,CAACW,SAAS,CAACV,UAAU,GAAG,CAAC,EAAEG,OAAO,EAAE,IAAI,CAAC;EACjDJ,QAAQ,CAACW,SAAS,CAACV,UAAU,GAAG,CAAC,EAAEI,UAAU,EAAE,IAAI,CAAC;EAEpDJ,UAAU,IAAIC,WAAW;EAEzB,OAAOD,UAAU;AACnB;AAGA,OAAO,SAASW,sBAAsBA,CAACZ,QAAQ,EAAEa,mBAAmB,EAAER,UAAU,EAAE;EAChF,IAAI,CAACL,QAAQ,EAAE;IACb;EACF;EAEAA,QAAQ,CAACW,SAAS,CAACE,mBAAmB,GAAG,CAAC,EAAER,UAAU,EAAE,IAAI,CAAC;AAC/D"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { fetchFile } from '@loaders.gl/core';
|
|
2
|
+
import { assert } from '@loaders.gl/loader-utils';
|
|
3
|
+
const CESIUM_ION_URL = 'https://api.cesium.com/v1/assets';
|
|
4
|
+
export async function getIonTilesetMetadata(accessToken, assetId) {
|
|
5
|
+
if (!assetId) {
|
|
6
|
+
const assets = await getIonAssets(accessToken);
|
|
7
|
+
for (const item of assets.items) {
|
|
8
|
+
if (item.type === '3DTILES') {
|
|
9
|
+
assetId = item.id;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
const ionAssetMetadata = await getIonAssetMetadata(accessToken, assetId);
|
|
14
|
+
const {
|
|
15
|
+
type,
|
|
16
|
+
url
|
|
17
|
+
} = ionAssetMetadata;
|
|
18
|
+
assert(type === '3DTILES' && url);
|
|
19
|
+
ionAssetMetadata.headers = {
|
|
20
|
+
Authorization: "Bearer ".concat(ionAssetMetadata.accessToken)
|
|
21
|
+
};
|
|
22
|
+
return ionAssetMetadata;
|
|
23
|
+
}
|
|
24
|
+
export async function getIonAssets(accessToken) {
|
|
25
|
+
assert(accessToken);
|
|
26
|
+
const url = CESIUM_ION_URL;
|
|
27
|
+
const headers = {
|
|
28
|
+
Authorization: "Bearer ".concat(accessToken)
|
|
29
|
+
};
|
|
30
|
+
const response = await fetchFile(url, {
|
|
31
|
+
fetch: {
|
|
32
|
+
headers
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
if (!response.ok) {
|
|
36
|
+
throw new Error(response.statusText);
|
|
37
|
+
}
|
|
38
|
+
return await response.json();
|
|
39
|
+
}
|
|
40
|
+
export async function getIonAssetMetadata(accessToken, assetId) {
|
|
41
|
+
assert(accessToken, assetId);
|
|
42
|
+
const headers = {
|
|
43
|
+
Authorization: "Bearer ".concat(accessToken)
|
|
44
|
+
};
|
|
45
|
+
const url = "".concat(CESIUM_ION_URL, "/").concat(assetId);
|
|
46
|
+
let response = await fetchFile("".concat(url), {
|
|
47
|
+
fetch: {
|
|
48
|
+
headers
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
if (!response.ok) {
|
|
52
|
+
throw new Error(response.statusText);
|
|
53
|
+
}
|
|
54
|
+
let metadata = await response.json();
|
|
55
|
+
response = await fetchFile("".concat(url, "/endpoint"), {
|
|
56
|
+
fetch: {
|
|
57
|
+
headers
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
if (!response.ok) {
|
|
61
|
+
throw new Error(response.statusText);
|
|
62
|
+
}
|
|
63
|
+
const tilesetInfo = await response.json();
|
|
64
|
+
metadata = {
|
|
65
|
+
...metadata,
|
|
66
|
+
...tilesetInfo
|
|
67
|
+
};
|
|
68
|
+
return metadata;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=ion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ion.js","names":["fetchFile","assert","CESIUM_ION_URL","getIonTilesetMetadata","accessToken","assetId","assets","getIonAssets","item","items","type","id","ionAssetMetadata","getIonAssetMetadata","url","headers","Authorization","concat","response","fetch","ok","Error","statusText","json","metadata","tilesetInfo"],"sources":["../../../../src/lib/ion/ion.ts"],"sourcesContent":["// Minimal support to load tilsets from the Cesium ION services\n\nimport {fetchFile} from '@loaders.gl/core';\nimport {assert} from '@loaders.gl/loader-utils';\n\nconst CESIUM_ION_URL = 'https://api.cesium.com/v1/assets';\n\n// Returns `{url, headers, type, attributions}` for an ion tileset\nexport async function getIonTilesetMetadata(accessToken, assetId) {\n // Step 1, if no asset id, look for first 3DTILES asset associated with this token.\n if (!assetId) {\n const assets = await getIonAssets(accessToken);\n for (const item of assets.items) {\n if (item.type === '3DTILES') {\n assetId = item.id;\n }\n }\n }\n\n // Step 2: Query metdatadata for this asset.\n const ionAssetMetadata = await getIonAssetMetadata(accessToken, assetId);\n const {type, url} = ionAssetMetadata;\n assert(type === '3DTILES' && url);\n\n // Prepare a headers object for fetch\n ionAssetMetadata.headers = {\n Authorization: `Bearer ${ionAssetMetadata.accessToken}`\n };\n return ionAssetMetadata;\n}\n\n// Return a list of all assets associated with accessToken\nexport async function getIonAssets(accessToken) {\n assert(accessToken);\n const url = CESIUM_ION_URL;\n const headers = {Authorization: `Bearer ${accessToken}`};\n const response = await fetchFile(url, {fetch: {headers}});\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n return await response.json();\n}\n\n// Return metadata for a specific asset associated with token\nexport async function getIonAssetMetadata(accessToken, assetId) {\n assert(accessToken, assetId);\n const headers = {Authorization: `Bearer ${accessToken}`};\n\n const url = `${CESIUM_ION_URL}/${assetId}`;\n // https://cesium.com/docs/rest-api/#operation/getAsset\n // Retrieves metadata information about a specific asset.\n let response = await fetchFile(`${url}`, {fetch: {headers}});\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n let metadata = await response.json();\n\n // https://cesium.com/docs/rest-api/#operation/getAssetEndpoint\n // Retrieves information and credentials that allow you to access the tiled asset data for visualization and analysis.\n response = await fetchFile(`${url}/endpoint`, {fetch: {headers}});\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const tilesetInfo = await response.json();\n\n // extract dataset description\n metadata = {\n ...metadata,\n ...tilesetInfo\n };\n\n return metadata;\n}\n"],"mappings":"AAEA,SAAQA,SAAS,QAAO,kBAAkB;AAC1C,SAAQC,MAAM,QAAO,0BAA0B;AAE/C,MAAMC,cAAc,GAAG,kCAAkC;AAGzD,OAAO,eAAeC,qBAAqBA,CAACC,WAAW,EAAEC,OAAO,EAAE;EAEhE,IAAI,CAACA,OAAO,EAAE;IACZ,MAAMC,MAAM,GAAG,MAAMC,YAAY,CAACH,WAAW,CAAC;IAC9C,KAAK,MAAMI,IAAI,IAAIF,MAAM,CAACG,KAAK,EAAE;MAC/B,IAAID,IAAI,CAACE,IAAI,KAAK,SAAS,EAAE;QAC3BL,OAAO,GAAGG,IAAI,CAACG,EAAE;MACnB;IACF;EACF;EAGA,MAAMC,gBAAgB,GAAG,MAAMC,mBAAmB,CAACT,WAAW,EAAEC,OAAO,CAAC;EACxE,MAAM;IAACK,IAAI;IAAEI;EAAG,CAAC,GAAGF,gBAAgB;EACpCX,MAAM,CAACS,IAAI,KAAK,SAAS,IAAII,GAAG,CAAC;EAGjCF,gBAAgB,CAACG,OAAO,GAAG;IACzBC,aAAa,YAAAC,MAAA,CAAYL,gBAAgB,CAACR,WAAW;EACvD,CAAC;EACD,OAAOQ,gBAAgB;AACzB;AAGA,OAAO,eAAeL,YAAYA,CAACH,WAAW,EAAE;EAC9CH,MAAM,CAACG,WAAW,CAAC;EACnB,MAAMU,GAAG,GAAGZ,cAAc;EAC1B,MAAMa,OAAO,GAAG;IAACC,aAAa,YAAAC,MAAA,CAAYb,WAAW;EAAE,CAAC;EACxD,MAAMc,QAAQ,GAAG,MAAMlB,SAAS,CAACc,GAAG,EAAE;IAACK,KAAK,EAAE;MAACJ;IAAO;EAAC,CAAC,CAAC;EACzD,IAAI,CAACG,QAAQ,CAACE,EAAE,EAAE;IAChB,MAAM,IAAIC,KAAK,CAACH,QAAQ,CAACI,UAAU,CAAC;EACtC;EACA,OAAO,MAAMJ,QAAQ,CAACK,IAAI,CAAC,CAAC;AAC9B;AAGA,OAAO,eAAeV,mBAAmBA,CAACT,WAAW,EAAEC,OAAO,EAAE;EAC9DJ,MAAM,CAACG,WAAW,EAAEC,OAAO,CAAC;EAC5B,MAAMU,OAAO,GAAG;IAACC,aAAa,YAAAC,MAAA,CAAYb,WAAW;EAAE,CAAC;EAExD,MAAMU,GAAG,MAAAG,MAAA,CAAMf,cAAc,OAAAe,MAAA,CAAIZ,OAAO,CAAE;EAG1C,IAAIa,QAAQ,GAAG,MAAMlB,SAAS,IAAAiB,MAAA,CAAIH,GAAG,GAAI;IAACK,KAAK,EAAE;MAACJ;IAAO;EAAC,CAAC,CAAC;EAC5D,IAAI,CAACG,QAAQ,CAACE,EAAE,EAAE;IAChB,MAAM,IAAIC,KAAK,CAACH,QAAQ,CAACI,UAAU,CAAC;EACtC;EACA,IAAIE,QAAQ,GAAG,MAAMN,QAAQ,CAACK,IAAI,CAAC,CAAC;EAIpCL,QAAQ,GAAG,MAAMlB,SAAS,IAAAiB,MAAA,CAAIH,GAAG,gBAAa;IAACK,KAAK,EAAE;MAACJ;IAAO;EAAC,CAAC,CAAC;EACjE,IAAI,CAACG,QAAQ,CAACE,EAAE,EAAE;IAChB,MAAM,IAAIC,KAAK,CAACH,QAAQ,CAACI,UAAU,CAAC;EACtC;EACA,MAAMG,WAAW,GAAG,MAAMP,QAAQ,CAACK,IAAI,CAAC,CAAC;EAGzCC,QAAQ,GAAG;IACT,GAAGA,QAAQ;IACX,GAAGC;EACL,CAAC;EAED,OAAOD,QAAQ;AACjB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { decodeRGB565, GL } from '@loaders.gl/math';
|
|
2
|
+
export function normalize3DTileColorAttribute(tile, colors, batchTable) {
|
|
3
|
+
if (!colors && (!tile || !tile.batchIds || !batchTable)) {
|
|
4
|
+
return null;
|
|
5
|
+
}
|
|
6
|
+
const {
|
|
7
|
+
batchIds,
|
|
8
|
+
isRGB565,
|
|
9
|
+
pointCount
|
|
10
|
+
} = tile;
|
|
11
|
+
if (batchIds && batchTable) {
|
|
12
|
+
const colorArray = new Uint8ClampedArray(pointCount * 3);
|
|
13
|
+
for (let i = 0; i < pointCount; i++) {
|
|
14
|
+
const batchId = batchIds[i];
|
|
15
|
+
const dimensions = batchTable.getProperty(batchId, 'dimensions');
|
|
16
|
+
const color = dimensions.map(d => d * 255);
|
|
17
|
+
colorArray[i * 3] = color[0];
|
|
18
|
+
colorArray[i * 3 + 1] = color[1];
|
|
19
|
+
colorArray[i * 3 + 2] = color[2];
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
type: GL.UNSIGNED_BYTE,
|
|
23
|
+
value: colorArray,
|
|
24
|
+
size: 3,
|
|
25
|
+
normalized: true
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (isRGB565) {
|
|
29
|
+
const colorArray = new Uint8ClampedArray(pointCount * 3);
|
|
30
|
+
for (let i = 0; i < pointCount; i++) {
|
|
31
|
+
const color = decodeRGB565(colors[i]);
|
|
32
|
+
colorArray[i * 3] = color[0];
|
|
33
|
+
colorArray[i * 3 + 1] = color[1];
|
|
34
|
+
colorArray[i * 3 + 2] = color[2];
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
type: GL.UNSIGNED_BYTE,
|
|
38
|
+
value: colorArray,
|
|
39
|
+
size: 3,
|
|
40
|
+
normalized: true
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if (colors && colors.length === pointCount * 3) {
|
|
44
|
+
return {
|
|
45
|
+
type: GL.UNSIGNED_BYTE,
|
|
46
|
+
value: colors,
|
|
47
|
+
size: 3,
|
|
48
|
+
normalized: true
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
type: GL.UNSIGNED_BYTE,
|
|
53
|
+
value: colors,
|
|
54
|
+
size: 4,
|
|
55
|
+
normalized: true
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=normalize-3d-tile-colors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-3d-tile-colors.js","names":["decodeRGB565","GL","normalize3DTileColorAttribute","tile","colors","batchTable","batchIds","isRGB565","pointCount","colorArray","Uint8ClampedArray","i","batchId","dimensions","getProperty","color","map","d","type","UNSIGNED_BYTE","value","size","normalized","length"],"sources":["../../../../../src/lib/parsers/helpers/normalize-3d-tile-colors.ts"],"sourcesContent":["import {decodeRGB565, GL} from '@loaders.gl/math';\n\n/* eslint-disable complexity*/\nexport function normalize3DTileColorAttribute(tile, colors, batchTable?) {\n // no colors defined\n if (!colors && (!tile || !tile.batchIds || !batchTable)) {\n return null;\n }\n\n const {batchIds, isRGB565, pointCount} = tile;\n // Batch table, look up colors in table\n if (batchIds && batchTable) {\n const colorArray = new Uint8ClampedArray(pointCount * 3);\n for (let i = 0; i < pointCount; i++) {\n const batchId = batchIds[i];\n // TODO figure out what is `dimensions` used for\n const dimensions = batchTable.getProperty(batchId, 'dimensions');\n const color = dimensions.map((d) => d * 255);\n colorArray[i * 3] = color[0];\n colorArray[i * 3 + 1] = color[1];\n colorArray[i * 3 + 2] = color[2];\n }\n return {\n type: GL.UNSIGNED_BYTE,\n value: colorArray,\n size: 3,\n normalized: true\n };\n }\n\n // RGB565 case, convert to RGB\n if (isRGB565) {\n const colorArray = new Uint8ClampedArray(pointCount * 3);\n for (let i = 0; i < pointCount; i++) {\n const color = decodeRGB565(colors[i]);\n colorArray[i * 3] = color[0];\n colorArray[i * 3 + 1] = color[1];\n colorArray[i * 3 + 2] = color[2];\n }\n return {\n type: GL.UNSIGNED_BYTE,\n value: colorArray,\n size: 3,\n normalized: true\n };\n }\n\n // RGB case (tile.isTranslucent)\n if (colors && colors.length === pointCount * 3) {\n return {\n type: GL.UNSIGNED_BYTE,\n value: colors,\n size: 3,\n normalized: true\n };\n }\n\n // DEFAULT: RGBA case\n return {\n type: GL.UNSIGNED_BYTE,\n value: colors,\n size: 4,\n normalized: true\n };\n}\n/* eslint-enable complexity*/\n"],"mappings":"AAAA,SAAQA,YAAY,EAAEC,EAAE,QAAO,kBAAkB;AAGjD,OAAO,SAASC,6BAA6BA,CAACC,IAAI,EAAEC,MAAM,EAAEC,UAAW,EAAE;EAEvE,IAAI,CAACD,MAAM,KAAK,CAACD,IAAI,IAAI,CAACA,IAAI,CAACG,QAAQ,IAAI,CAACD,UAAU,CAAC,EAAE;IACvD,OAAO,IAAI;EACb;EAEA,MAAM;IAACC,QAAQ;IAAEC,QAAQ;IAAEC;EAAU,CAAC,GAAGL,IAAI;EAE7C,IAAIG,QAAQ,IAAID,UAAU,EAAE;IAC1B,MAAMI,UAAU,GAAG,IAAIC,iBAAiB,CAACF,UAAU,GAAG,CAAC,CAAC;IACxD,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,UAAU,EAAEG,CAAC,EAAE,EAAE;MACnC,MAAMC,OAAO,GAAGN,QAAQ,CAACK,CAAC,CAAC;MAE3B,MAAME,UAAU,GAAGR,UAAU,CAACS,WAAW,CAACF,OAAO,EAAE,YAAY,CAAC;MAChE,MAAMG,KAAK,GAAGF,UAAU,CAACG,GAAG,CAAEC,CAAC,IAAKA,CAAC,GAAG,GAAG,CAAC;MAC5CR,UAAU,CAACE,CAAC,GAAG,CAAC,CAAC,GAAGI,KAAK,CAAC,CAAC,CAAC;MAC5BN,UAAU,CAACE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGI,KAAK,CAAC,CAAC,CAAC;MAChCN,UAAU,CAACE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGI,KAAK,CAAC,CAAC,CAAC;IAClC;IACA,OAAO;MACLG,IAAI,EAAEjB,EAAE,CAACkB,aAAa;MACtBC,KAAK,EAAEX,UAAU;MACjBY,IAAI,EAAE,CAAC;MACPC,UAAU,EAAE;IACd,CAAC;EACH;EAGA,IAAIf,QAAQ,EAAE;IACZ,MAAME,UAAU,GAAG,IAAIC,iBAAiB,CAACF,UAAU,GAAG,CAAC,CAAC;IACxD,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,UAAU,EAAEG,CAAC,EAAE,EAAE;MACnC,MAAMI,KAAK,GAAGf,YAAY,CAACI,MAAM,CAACO,CAAC,CAAC,CAAC;MACrCF,UAAU,CAACE,CAAC,GAAG,CAAC,CAAC,GAAGI,KAAK,CAAC,CAAC,CAAC;MAC5BN,UAAU,CAACE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGI,KAAK,CAAC,CAAC,CAAC;MAChCN,UAAU,CAACE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGI,KAAK,CAAC,CAAC,CAAC;IAClC;IACA,OAAO;MACLG,IAAI,EAAEjB,EAAE,CAACkB,aAAa;MACtBC,KAAK,EAAEX,UAAU;MACjBY,IAAI,EAAE,CAAC;MACPC,UAAU,EAAE;IACd,CAAC;EACH;EAGA,IAAIlB,MAAM,IAAIA,MAAM,CAACmB,MAAM,KAAKf,UAAU,GAAG,CAAC,EAAE;IAC9C,OAAO;MACLU,IAAI,EAAEjB,EAAE,CAACkB,aAAa;MACtBC,KAAK,EAAEhB,MAAM;MACbiB,IAAI,EAAE,CAAC;MACPC,UAAU,EAAE;IACd,CAAC;EACH;EAGA,OAAO;IACLJ,IAAI,EAAEjB,EAAE,CAACkB,aAAa;IACtBC,KAAK,EAAEhB,MAAM;IACbiB,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE;EACd,CAAC;AACH"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Vector3 } from '@math.gl/core';
|
|
2
|
+
import { GL, octDecode } from '@loaders.gl/math';
|
|
3
|
+
const scratchNormal = new Vector3();
|
|
4
|
+
export function normalize3DTileNormalAttribute(tile, normals) {
|
|
5
|
+
if (!normals) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
if (tile.isOctEncoded16P) {
|
|
9
|
+
const decodedArray = new Float32Array(tile.pointsLength * 3);
|
|
10
|
+
for (let i = 0; i < tile.pointsLength; i++) {
|
|
11
|
+
octDecode(normals[i * 2], normals[i * 2 + 1], scratchNormal);
|
|
12
|
+
scratchNormal.toArray(decodedArray, i * 3);
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
type: GL.FLOAT,
|
|
16
|
+
size: 2,
|
|
17
|
+
value: decodedArray
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
type: GL.FLOAT,
|
|
22
|
+
size: 2,
|
|
23
|
+
value: normals
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=normalize-3d-tile-normals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-3d-tile-normals.js","names":["Vector3","GL","octDecode","scratchNormal","normalize3DTileNormalAttribute","tile","normals","isOctEncoded16P","decodedArray","Float32Array","pointsLength","i","toArray","type","FLOAT","size","value"],"sources":["../../../../../src/lib/parsers/helpers/normalize-3d-tile-normals.ts"],"sourcesContent":["import {Vector3} from '@math.gl/core';\nimport {GL, octDecode} from '@loaders.gl/math';\n\nconst scratchNormal = new Vector3();\n\nexport function normalize3DTileNormalAttribute(tile, normals) {\n if (!normals) {\n return null;\n }\n\n if (tile.isOctEncoded16P) {\n const decodedArray = new Float32Array(tile.pointsLength * 3);\n for (let i = 0; i < tile.pointsLength; i++) {\n octDecode(normals[i * 2], normals[i * 2 + 1], scratchNormal);\n // @ts-ignore\n scratchNormal.toArray(decodedArray, i * 3);\n }\n\n return {\n type: GL.FLOAT,\n size: 2,\n value: decodedArray\n };\n }\n\n return {\n type: GL.FLOAT,\n size: 2,\n value: normals\n };\n}\n"],"mappings":"AAAA,SAAQA,OAAO,QAAO,eAAe;AACrC,SAAQC,EAAE,EAAEC,SAAS,QAAO,kBAAkB;AAE9C,MAAMC,aAAa,GAAG,IAAIH,OAAO,CAAC,CAAC;AAEnC,OAAO,SAASI,8BAA8BA,CAACC,IAAI,EAAEC,OAAO,EAAE;EAC5D,IAAI,CAACA,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEA,IAAID,IAAI,CAACE,eAAe,EAAE;IACxB,MAAMC,YAAY,GAAG,IAAIC,YAAY,CAACJ,IAAI,CAACK,YAAY,GAAG,CAAC,CAAC;IAC5D,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,IAAI,CAACK,YAAY,EAAEC,CAAC,EAAE,EAAE;MAC1CT,SAAS,CAACI,OAAO,CAACK,CAAC,GAAG,CAAC,CAAC,EAAEL,OAAO,CAACK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAER,aAAa,CAAC;MAE5DA,aAAa,CAACS,OAAO,CAACJ,YAAY,EAAEG,CAAC,GAAG,CAAC,CAAC;IAC5C;IAEA,OAAO;MACLE,IAAI,EAAEZ,EAAE,CAACa,KAAK;MACdC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAER;IACT,CAAC;EACH;EAEA,OAAO;IACLK,IAAI,EAAEZ,EAAE,CAACa,KAAK;IACdC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAEV;EACT,CAAC;AACH"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Vector3 } from '@math.gl/core';
|
|
2
|
+
import { GL } from '@loaders.gl/math';
|
|
3
|
+
export function normalize3DTilePositionAttribute(tile, positions, options) {
|
|
4
|
+
if (!tile.isQuantized) {
|
|
5
|
+
return positions;
|
|
6
|
+
}
|
|
7
|
+
if (options['3d-tiles'] && options['3d-tiles'].decodeQuantizedPositions) {
|
|
8
|
+
tile.isQuantized = false;
|
|
9
|
+
return decodeQuantizedPositions(tile, positions);
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
type: GL.UNSIGNED_SHORT,
|
|
13
|
+
value: positions,
|
|
14
|
+
size: 3,
|
|
15
|
+
normalized: true
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function decodeQuantizedPositions(tile, positions) {
|
|
19
|
+
const scratchPosition = new Vector3();
|
|
20
|
+
const decodedArray = new Float32Array(tile.pointCount * 3);
|
|
21
|
+
for (let i = 0; i < tile.pointCount; i++) {
|
|
22
|
+
scratchPosition.set(positions[i * 3], positions[i * 3 + 1], positions[i * 3 + 2]).scale(1 / tile.quantizedRange).multiply(tile.quantizedVolumeScale).add(tile.quantizedVolumeOffset).toArray(decodedArray, i * 3);
|
|
23
|
+
}
|
|
24
|
+
return decodedArray;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=normalize-3d-tile-positions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-3d-tile-positions.js","names":["Vector3","GL","normalize3DTilePositionAttribute","tile","positions","options","isQuantized","decodeQuantizedPositions","type","UNSIGNED_SHORT","value","size","normalized","scratchPosition","decodedArray","Float32Array","pointCount","i","set","scale","quantizedRange","multiply","quantizedVolumeScale","add","quantizedVolumeOffset","toArray"],"sources":["../../../../../src/lib/parsers/helpers/normalize-3d-tile-positions.ts"],"sourcesContent":["import {Vector3} from '@math.gl/core';\nimport {GL} from '@loaders.gl/math';\n\n// Prepare attribute for positions\nexport function normalize3DTilePositionAttribute(tile, positions, options) {\n if (!tile.isQuantized) {\n return positions;\n }\n\n // For quantized posititions, either expand to Float32Array or return custom accessor\n // https://github.com/AnalyticalGraphicsInc/3d-tiles/blob/master/specification/TileFormats/Instanced3DModel/README.md#quantized-positions\n\n // Optionally decodes quantized positions on GPU, for simpler renderers that don't accept normalized attributes\n if (options['3d-tiles'] && options['3d-tiles'].decodeQuantizedPositions) {\n tile.isQuantized = false;\n return decodeQuantizedPositions(tile, positions);\n }\n\n // Default: Use normalized shorts directly, no copying/processing.\n // NOTE: The \"missing\" offset/scaling operations are automatically added to modelMatrix if `tile.isQuantized === true`\n return {\n type: GL.UNSIGNED_SHORT,\n value: positions,\n size: 3,\n normalized: true\n };\n}\n\n// Pre-scale quantized positions on CPU\nfunction decodeQuantizedPositions(tile, positions) {\n const scratchPosition = new Vector3();\n const decodedArray = new Float32Array(tile.pointCount * 3);\n\n for (let i = 0; i < tile.pointCount; i++) {\n // POSITION = POSITION_QUANTIZED / 65535.0 * QUANTIZED_VOLUME_SCALE + QUANTIZED_VOLUME_OFFSET\n scratchPosition\n .set(positions[i * 3], positions[i * 3 + 1], positions[i * 3 + 2])\n .scale(1 / tile.quantizedRange)\n .multiply(tile.quantizedVolumeScale)\n .add(tile.quantizedVolumeOffset)\n .toArray(decodedArray, i * 3);\n }\n\n return decodedArray;\n}\n"],"mappings":"AAAA,SAAQA,OAAO,QAAO,eAAe;AACrC,SAAQC,EAAE,QAAO,kBAAkB;AAGnC,OAAO,SAASC,gCAAgCA,CAACC,IAAI,EAAEC,SAAS,EAAEC,OAAO,EAAE;EACzE,IAAI,CAACF,IAAI,CAACG,WAAW,EAAE;IACrB,OAAOF,SAAS;EAClB;EAMA,IAAIC,OAAO,CAAC,UAAU,CAAC,IAAIA,OAAO,CAAC,UAAU,CAAC,CAACE,wBAAwB,EAAE;IACvEJ,IAAI,CAACG,WAAW,GAAG,KAAK;IACxB,OAAOC,wBAAwB,CAACJ,IAAI,EAAEC,SAAS,CAAC;EAClD;EAIA,OAAO;IACLI,IAAI,EAAEP,EAAE,CAACQ,cAAc;IACvBC,KAAK,EAAEN,SAAS;IAChBO,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE;EACd,CAAC;AACH;AAGA,SAASL,wBAAwBA,CAACJ,IAAI,EAAEC,SAAS,EAAE;EACjD,MAAMS,eAAe,GAAG,IAAIb,OAAO,CAAC,CAAC;EACrC,MAAMc,YAAY,GAAG,IAAIC,YAAY,CAACZ,IAAI,CAACa,UAAU,GAAG,CAAC,CAAC;EAE1D,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGd,IAAI,CAACa,UAAU,EAAEC,CAAC,EAAE,EAAE;IAExCJ,eAAe,CACZK,GAAG,CAACd,SAAS,CAACa,CAAC,GAAG,CAAC,CAAC,EAAEb,SAAS,CAACa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAEb,SAAS,CAACa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CACjEE,KAAK,CAAC,CAAC,GAAGhB,IAAI,CAACiB,cAAc,CAAC,CAC9BC,QAAQ,CAAClB,IAAI,CAACmB,oBAAoB,CAAC,CACnCC,GAAG,CAACpB,IAAI,CAACqB,qBAAqB,CAAC,CAC/BC,OAAO,CAACX,YAAY,EAAEG,CAAC,GAAG,CAAC,CAAC;EACjC;EAEA,OAAOH,YAAY;AACrB"}
|