@loaders.gl/3d-tiles 3.1.0-alpha.2 → 3.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +9971 -5
- 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 +36 -32
- package/dist/es5/bundle.js +7 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/cesium-ion-loader.js +45 -0
- package/dist/es5/cesium-ion-loader.js.map +1 -0
- package/dist/es5/index.js +72 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js +108 -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 +223 -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 +312 -0
- package/dist/es5/lib/classes/tile-3d-batch-table.js.map +1 -0
- package/dist/es5/lib/classes/tile-3d-feature-table.js +103 -0
- package/dist/es5/lib/classes/tile-3d-feature-table.js.map +1 -0
- package/dist/es5/lib/constants.js +31 -0
- package/dist/es5/lib/constants.js.map +1 -0
- package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js +56 -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 +34 -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 +48 -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 +52 -0
- package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -0
- package/dist/es5/lib/encoders/encode-3d-tile.js +48 -0
- package/dist/es5/lib/encoders/encode-3d-tile.js.map +1 -0
- package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js +41 -0
- package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -0
- package/dist/es5/lib/ion/ion.js +91 -0
- package/dist/es5/lib/ion/ion.js.map +1 -0
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js +75 -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 +40 -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 +40 -0
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -0
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js +83 -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 +24 -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 +73 -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 +100 -0
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -0
- package/dist/es5/lib/parsers/helpers/parse-utils.js +31 -0
- package/dist/es5/lib/parsers/helpers/parse-utils.js.map +1 -0
- package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js +43 -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 +25 -0
- package/dist/es5/lib/parsers/parse-3d-tile-composite.js.map +1 -0
- package/dist/es5/lib/parsers/parse-3d-tile-header.js +86 -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 +195 -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 +265 -0
- package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -0
- package/dist/es5/lib/parsers/parse-3d-tile.js +41 -0
- package/dist/es5/lib/parsers/parse-3d-tile.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 +26 -0
- package/dist/es5/tile-3d-subtree-loader.js.map +1 -0
- package/dist/es5/tile-3d-writer.js +32 -0
- package/dist/es5/tile-3d-writer.js.map +1 -0
- package/dist/es5/tiles-3d-loader.js +85 -0
- package/dist/es5/tiles-3d-loader.js.map +1 -0
- package/dist/es5/types.js +2 -0
- package/dist/{types.js.map → es5/types.js.map} +0 -0
- package/dist/esm/bundle.js +5 -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 +215 -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 +304 -0
- package/dist/esm/lib/classes/tile-3d-batch-table.js.map +1 -0
- package/dist/esm/lib/classes/tile-3d-feature-table.js +94 -0
- package/dist/esm/lib/classes/tile-3d-feature-table.js.map +1 -0
- package/dist/esm/lib/constants.js +21 -0
- package/dist/esm/lib/constants.js.map +1 -0
- package/dist/esm/lib/encoders/encode-3d-tile-batched-model.js +46 -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 +25 -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 +38 -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 +41 -0
- package/dist/esm/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -0
- package/dist/esm/lib/encoders/encode-3d-tile.js +35 -0
- package/dist/esm/lib/encoders/encode-3d-tile.js.map +1 -0
- package/dist/esm/lib/encoders/helpers/encode-3d-tile-header.js +31 -0
- package/dist/esm/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -0
- package/dist/esm/lib/ion/ion.js +77 -0
- package/dist/esm/lib/ion/ion.js.map +1 -0
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js +67 -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 +30 -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 +31 -0
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -0
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js +69 -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 +17 -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 +64 -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 +89 -0
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -0
- package/dist/esm/lib/parsers/helpers/parse-utils.js +19 -0
- package/dist/esm/lib/parsers/helpers/parse-utils.js.map +1 -0
- package/dist/esm/lib/parsers/parse-3d-tile-batched-model.js +29 -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 +17 -0
- package/dist/esm/lib/parsers/parse-3d-tile-composite.js.map +1 -0
- package/dist/esm/lib/parsers/parse-3d-tile-header.js +77 -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 +177 -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 +245 -0
- package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -0
- package/dist/esm/lib/parsers/parse-3d-tile.js +28 -0
- package/dist/esm/lib/parsers/parse-3d-tile.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 +20 -0
- package/dist/esm/tile-3d-writer.js.map +1 -0
- package/dist/esm/tiles-3d-loader.js +72 -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 +21 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/constants.js +22 -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-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 +9 -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 +74 -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 +25 -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-header.d.ts +3 -0
- package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -0
- package/dist/lib/parsers/parse-3d-tile-header.js +59 -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 +33 -27
- 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 +75 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -2
- package/package.json +14 -12
- package/src/bundle.ts +2 -3
- package/src/index.ts +1 -0
- 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/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} +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/parsers/helpers/{normalize-3d-tile-colors.js → normalize-3d-tile-colors.ts} +1 -1
- 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-gltf-view.js → parse-3d-tile-gltf-view.ts} +1 -1
- package/src/lib/parsers/helpers/{parse-3d-tile-header.js → parse-3d-tile-header.ts} +0 -0
- package/src/lib/parsers/helpers/parse-3d-tile-subtree.ts +104 -0
- package/src/lib/parsers/helpers/{parse-3d-tile-tables.js → parse-3d-tile-tables.ts} +1 -1
- 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/parsers/{parse-3d-tile-header.js → parse-3d-tile-header.ts} +1 -1
- 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} +4 -0
- package/src/lib/utils/{version.js → version.ts} +0 -0
- package/src/tile-3d-subtree-loader.ts +19 -0
- package/src/types.ts +33 -0
- package/dist/bundle.js.map +0 -1
- package/dist/cesium-ion-loader.js.map +0 -1
- package/dist/dist.min.js +0 -2
- package/dist/dist.min.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
|
@@ -1,96 +1,113 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTypedArrayFromAccessor = void 0;
|
|
4
|
+
const math_1 = require("@loaders.gl/math"); // '@math.gl/geometry';
|
|
5
|
+
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
3
6
|
const COMPONENTS_PER_ATTRIBUTE = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
SCALAR: 1,
|
|
8
|
+
VEC2: 2,
|
|
9
|
+
VEC3: 3,
|
|
10
|
+
VEC4: 4,
|
|
11
|
+
MAT2: 4,
|
|
12
|
+
MAT3: 9,
|
|
13
|
+
MAT4: 16
|
|
11
14
|
};
|
|
15
|
+
// TODO - could just return typed array views...
|
|
16
|
+
// prettier-ignore
|
|
12
17
|
const UNPACKER = {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
SCALAR: (values, i) => values[i],
|
|
19
|
+
VEC2: (values, i) => [values[2 * i + 0], values[2 * i + 1]],
|
|
20
|
+
VEC3: (values, i) => [values[3 * i + 0], values[3 * i + 1], values[3 * i + 2]],
|
|
21
|
+
VEC4: (values, i) => [values[4 * i + 0], values[4 * i + 1], values[4 * i + 2], values[4 * i + 3]],
|
|
22
|
+
// TODO: check column major
|
|
23
|
+
MAT2: (values, i) => [
|
|
24
|
+
values[4 * i + 0], values[4 * i + 1],
|
|
25
|
+
values[4 * i + 2], values[4 * i + 3]
|
|
26
|
+
],
|
|
27
|
+
MAT3: (values, i) => [
|
|
28
|
+
values[9 * i + 0], values[9 * i + 1], values[9 * i + 2],
|
|
29
|
+
values[9 * i + 3], values[9 * i + 4], values[9 * i + 5],
|
|
30
|
+
values[9 * i + 6], values[9 * i + 7], values[9 * i + 8]
|
|
31
|
+
],
|
|
32
|
+
MAT4: (values, i) => [
|
|
33
|
+
values[16 * i + 0], values[16 * i + 1], values[16 * i + 2], values[16 * i + 3],
|
|
34
|
+
values[16 * i + 4], values[16 * i + 5], values[16 * i + 6], values[16 * i + 7],
|
|
35
|
+
values[16 * i + 8], values[16 * i + 9], values[16 * i + 10], values[16 * i + 11],
|
|
36
|
+
values[16 * i + 12], values[16 * i + 13], values[16 * i + 14], values[16 * i + 15]
|
|
37
|
+
]
|
|
20
38
|
};
|
|
21
39
|
const PACKER = {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
values
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
values
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
values
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
40
|
+
SCALAR: (x, values, i) => {
|
|
41
|
+
values[i] = x;
|
|
42
|
+
},
|
|
43
|
+
VEC2: (x, values, i) => {
|
|
44
|
+
values[2 * i + 0] = x[0];
|
|
45
|
+
values[2 * i + 1] = x[1];
|
|
46
|
+
},
|
|
47
|
+
VEC3: (x, values, i) => {
|
|
48
|
+
values[3 * i + 0] = x[0];
|
|
49
|
+
values[3 * i + 1] = x[1];
|
|
50
|
+
values[3 * i + 2] = x[2];
|
|
51
|
+
},
|
|
52
|
+
VEC4: (x, values, i) => {
|
|
53
|
+
values[4 * i + 0] = x[0];
|
|
54
|
+
values[4 * i + 1] = x[1];
|
|
55
|
+
values[4 * i + 2] = x[2];
|
|
56
|
+
values[4 * i + 3] = x[3];
|
|
57
|
+
},
|
|
58
|
+
// TODO: check column major correctness
|
|
59
|
+
MAT2: (x, values, i) => {
|
|
60
|
+
values[4 * i + 0] = x[0];
|
|
61
|
+
values[4 * i + 1] = x[1];
|
|
62
|
+
values[4 * i + 2] = x[2];
|
|
63
|
+
values[4 * i + 3] = x[3];
|
|
64
|
+
},
|
|
65
|
+
MAT3: (x, values, i) => {
|
|
66
|
+
values[9 * i + 0] = x[0];
|
|
67
|
+
values[9 * i + 1] = x[1];
|
|
68
|
+
values[9 * i + 2] = x[2];
|
|
69
|
+
values[9 * i + 3] = x[3];
|
|
70
|
+
values[9 * i + 4] = x[4];
|
|
71
|
+
values[9 * i + 5] = x[5];
|
|
72
|
+
values[9 * i + 6] = x[6];
|
|
73
|
+
values[9 * i + 7] = x[7];
|
|
74
|
+
values[9 * i + 8] = x[8];
|
|
75
|
+
values[9 * i + 9] = x[9];
|
|
76
|
+
},
|
|
77
|
+
MAT4: (x, values, i) => {
|
|
78
|
+
values[16 * i + 0] = x[0];
|
|
79
|
+
values[16 * i + 1] = x[1];
|
|
80
|
+
values[16 * i + 2] = x[2];
|
|
81
|
+
values[16 * i + 3] = x[3];
|
|
82
|
+
values[16 * i + 4] = x[4];
|
|
83
|
+
values[16 * i + 5] = x[5];
|
|
84
|
+
values[16 * i + 6] = x[6];
|
|
85
|
+
values[16 * i + 7] = x[7];
|
|
86
|
+
values[16 * i + 8] = x[8];
|
|
87
|
+
values[16 * i + 9] = x[9];
|
|
88
|
+
values[16 * i + 10] = x[10];
|
|
89
|
+
values[16 * i + 11] = x[11];
|
|
90
|
+
values[16 * i + 12] = x[12];
|
|
91
|
+
values[16 * i + 13] = x[13];
|
|
92
|
+
values[16 * i + 14] = x[14];
|
|
93
|
+
values[16 * i + 15] = x[15];
|
|
94
|
+
}
|
|
76
95
|
};
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
componentType
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
packer
|
|
94
|
-
};
|
|
96
|
+
function createTypedArrayFromAccessor(tile3DAccessor, buffer, byteOffset, length) {
|
|
97
|
+
const { componentType } = tile3DAccessor;
|
|
98
|
+
(0, loader_utils_1.assert)(tile3DAccessor.componentType);
|
|
99
|
+
const type = typeof componentType === 'string' ? math_1.GLType.fromName(componentType) : componentType;
|
|
100
|
+
const size = COMPONENTS_PER_ATTRIBUTE[tile3DAccessor.type];
|
|
101
|
+
const unpacker = UNPACKER[tile3DAccessor.type];
|
|
102
|
+
const packer = PACKER[tile3DAccessor.type];
|
|
103
|
+
byteOffset += tile3DAccessor.byteOffset;
|
|
104
|
+
const values = math_1.GLType.createTypedArray(type, buffer, byteOffset, size * length);
|
|
105
|
+
return {
|
|
106
|
+
values,
|
|
107
|
+
type,
|
|
108
|
+
size,
|
|
109
|
+
unpacker,
|
|
110
|
+
packer
|
|
111
|
+
};
|
|
95
112
|
}
|
|
96
|
-
|
|
113
|
+
exports.createTypedArrayFromAccessor = createTypedArrayFromAccessor;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function initializeHierarchy(batchTable: any, jsonHeader: any, binaryBody: any): {
|
|
2
|
+
classes: any;
|
|
3
|
+
classIds: any;
|
|
4
|
+
classIndexes: Uint16Array;
|
|
5
|
+
parentCounts: any;
|
|
6
|
+
parentIndexes: any;
|
|
7
|
+
parentIds: any;
|
|
8
|
+
} | null;
|
|
9
|
+
export declare function traverseHierarchy(hierarchy: any, instanceIndex: any, endConditionCallback: any): any;
|
|
10
|
+
//# sourceMappingURL=tile-3d-batch-table-hierarchy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tile-3d-batch-table-hierarchy.d.ts","sourceRoot":"","sources":["../../../src/lib/classes/tile-3d-batch-table-hierarchy.ts"],"names":[],"mappings":"AAQA,wBAAgB,mBAAmB,CAAC,UAAU,KAAA,EAAE,UAAU,KAAA,EAAE,UAAU,KAAA;;;;;;;SAqBrE;AA2FD,wBAAgB,iBAAiB,CAAC,SAAS,KAAA,EAAE,aAAa,KAAA,EAAE,oBAAoB,KAAA,OAc/E"}
|
|
@@ -1,215 +1,197 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
// This file is derived from the Cesium code base under Apache 2 license
|
|
3
|
+
// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.traverseHierarchy = exports.initializeHierarchy = void 0;
|
|
6
|
+
// TODO - Finish hierarchy suypport: this file is only half ported
|
|
7
|
+
/* eslint-disable */
|
|
8
|
+
// @ts-nocheck
|
|
9
|
+
const defined = (x) => x !== undefined;
|
|
10
|
+
function initializeHierarchy(batchTable, jsonHeader, binaryBody) {
|
|
11
|
+
if (!jsonHeader) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
let hierarchy = batchTable.getExtension('3DTILES_batch_table_hierarchy');
|
|
15
|
+
const legacyHierarchy = jsonHeader.HIERARCHY;
|
|
16
|
+
if (legacyHierarchy) {
|
|
17
|
+
// eslint-disable-next-line
|
|
18
|
+
console.warn('3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy.');
|
|
19
|
+
jsonHeader.extensions = jsonHeader.extensions || {};
|
|
20
|
+
jsonHeader.extensions['3DTILES_batch_table_hierarchy'] = legacyHierarchy;
|
|
21
|
+
hierarchy = legacyHierarchy;
|
|
22
|
+
}
|
|
23
|
+
if (!hierarchy) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
return initializeHierarchyValues(hierarchy, binaryBody);
|
|
23
27
|
}
|
|
24
|
-
|
|
28
|
+
exports.initializeHierarchy = initializeHierarchy;
|
|
29
|
+
// eslint-disable-next-line max-statements
|
|
25
30
|
function initializeHierarchyValues(hierarchyJson, binaryBody) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
31
|
+
let i;
|
|
32
|
+
let classId;
|
|
33
|
+
let binaryAccessor;
|
|
34
|
+
const instancesLength = hierarchyJson.instancesLength;
|
|
35
|
+
const classes = hierarchyJson.classes;
|
|
36
|
+
let classIds = hierarchyJson.classIds;
|
|
37
|
+
let parentCounts = hierarchyJson.parentCounts;
|
|
38
|
+
let parentIds = hierarchyJson.parentIds;
|
|
39
|
+
let parentIdsLength = instancesLength;
|
|
40
|
+
if (defined(classIds.byteOffset)) {
|
|
41
|
+
classIds.componentType = defaultValue(classIds.componentType, GL.UNSIGNED_SHORT);
|
|
42
|
+
classIds.type = AttributeType.SCALAR;
|
|
43
|
+
binaryAccessor = getBinaryAccessor(classIds);
|
|
44
|
+
classIds = binaryAccessor.createArrayBufferView(binaryBody.buffer, binaryBody.byteOffset + classIds.byteOffset, instancesLength);
|
|
45
|
+
}
|
|
46
|
+
let parentIndexes;
|
|
47
|
+
if (defined(parentCounts)) {
|
|
48
|
+
if (defined(parentCounts.byteOffset)) {
|
|
49
|
+
parentCounts.componentType = defaultValue(parentCounts.componentType, GL.UNSIGNED_SHORT);
|
|
50
|
+
parentCounts.type = AttributeType.SCALAR;
|
|
51
|
+
binaryAccessor = getBinaryAccessor(parentCounts);
|
|
52
|
+
parentCounts = binaryAccessor.createArrayBufferView(binaryBody.buffer, binaryBody.byteOffset + parentCounts.byteOffset, instancesLength);
|
|
53
|
+
}
|
|
54
|
+
parentIndexes = new Uint16Array(instancesLength);
|
|
55
|
+
parentIdsLength = 0;
|
|
56
|
+
for (i = 0; i < instancesLength; ++i) {
|
|
57
|
+
parentIndexes[i] = parentIdsLength;
|
|
58
|
+
parentIdsLength += parentCounts[i];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (defined(parentIds) && defined(parentIds.byteOffset)) {
|
|
62
|
+
parentIds.componentType = defaultValue(parentIds.componentType, GL.UNSIGNED_SHORT);
|
|
63
|
+
parentIds.type = AttributeType.SCALAR;
|
|
64
|
+
binaryAccessor = getBinaryAccessor(parentIds);
|
|
65
|
+
parentIds = binaryAccessor.createArrayBufferView(binaryBody.buffer, binaryBody.byteOffset + parentIds.byteOffset, parentIdsLength);
|
|
66
|
+
}
|
|
67
|
+
const classesLength = classes.length;
|
|
68
|
+
for (i = 0; i < classesLength; ++i) {
|
|
69
|
+
const classInstancesLength = classes[i].length;
|
|
70
|
+
const properties = classes[i].instances;
|
|
71
|
+
const binaryProperties = getBinaryProperties(classInstancesLength, properties, binaryBody);
|
|
72
|
+
classes[i].instances = combine(binaryProperties, properties);
|
|
73
|
+
}
|
|
74
|
+
const classCounts = new Array(classesLength).fill(0);
|
|
75
|
+
const classIndexes = new Uint16Array(instancesLength);
|
|
56
76
|
for (i = 0; i < instancesLength; ++i) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
for (i = 0; i < classesLength; ++i) {
|
|
72
|
-
const classInstancesLength = classes[i].length;
|
|
73
|
-
const properties = classes[i].instances;
|
|
74
|
-
const binaryProperties = getBinaryProperties(classInstancesLength, properties, binaryBody);
|
|
75
|
-
classes[i].instances = combine(binaryProperties, properties);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const classCounts = new Array(classesLength).fill(0);
|
|
79
|
-
const classIndexes = new Uint16Array(instancesLength);
|
|
80
|
-
|
|
81
|
-
for (i = 0; i < instancesLength; ++i) {
|
|
82
|
-
classId = classIds[i];
|
|
83
|
-
classIndexes[i] = classCounts[classId];
|
|
84
|
-
++classCounts[classId];
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
const hierarchy = {
|
|
88
|
-
classes,
|
|
89
|
-
classIds,
|
|
90
|
-
classIndexes,
|
|
91
|
-
parentCounts,
|
|
92
|
-
parentIndexes,
|
|
93
|
-
parentIds
|
|
94
|
-
};
|
|
95
|
-
validateHierarchy(hierarchy);
|
|
96
|
-
return hierarchy;
|
|
77
|
+
classId = classIds[i];
|
|
78
|
+
classIndexes[i] = classCounts[classId];
|
|
79
|
+
++classCounts[classId];
|
|
80
|
+
}
|
|
81
|
+
const hierarchy = {
|
|
82
|
+
classes,
|
|
83
|
+
classIds,
|
|
84
|
+
classIndexes,
|
|
85
|
+
parentCounts,
|
|
86
|
+
parentIndexes,
|
|
87
|
+
parentIds
|
|
88
|
+
};
|
|
89
|
+
validateHierarchy(hierarchy);
|
|
90
|
+
return hierarchy;
|
|
97
91
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
return traverseHierarchySingleParent(hierarchy, instanceIndex, endConditionCallback);
|
|
92
|
+
// HELPER CODE
|
|
93
|
+
// Traverse over the hierarchy and process each instance with the endConditionCallback.
|
|
94
|
+
// When the endConditionCallback returns a value, the traversal stops and that value is returned.
|
|
95
|
+
function traverseHierarchy(hierarchy, instanceIndex, endConditionCallback) {
|
|
96
|
+
if (!hierarchy) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const parentCounts = hierarchy.parentCounts;
|
|
100
|
+
const parentIds = hierarchy.parentIds;
|
|
101
|
+
if (parentIds) {
|
|
102
|
+
return endConditionCallback(hierarchy, instanceIndex);
|
|
103
|
+
}
|
|
104
|
+
if (parentCounts > 0) {
|
|
105
|
+
return traverseHierarchyMultipleParents(hierarchy, instanceIndex, endConditionCallback);
|
|
106
|
+
}
|
|
107
|
+
return traverseHierarchySingleParent(hierarchy, instanceIndex, endConditionCallback);
|
|
116
108
|
}
|
|
117
|
-
|
|
109
|
+
exports.traverseHierarchy = traverseHierarchy;
|
|
110
|
+
// eslint-disable-next-line max-statements
|
|
118
111
|
function traverseHierarchyMultipleParents(hierarchy, instanceIndex, endConditionCallback) {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
return null;
|
|
112
|
+
const classIds = hierarchy.classIds;
|
|
113
|
+
const parentCounts = hierarchy.parentCounts;
|
|
114
|
+
const parentIds = hierarchy.parentIds;
|
|
115
|
+
const parentIndexes = hierarchy.parentIndexes;
|
|
116
|
+
const instancesLength = classIds.length;
|
|
117
|
+
// Ignore instances that have already been visited. This occurs in diamond inheritance situations.
|
|
118
|
+
// Use a marker value to indicate that an instance has been visited, which increments with each run.
|
|
119
|
+
// This is more efficient than clearing the visited array every time.
|
|
120
|
+
const visited = scratchVisited;
|
|
121
|
+
visited.length = Math.max(visited.length, instancesLength);
|
|
122
|
+
const visitedMarker = ++marker;
|
|
123
|
+
const stack = scratchStack;
|
|
124
|
+
stack.length = 0;
|
|
125
|
+
stack.push(instanceIndex);
|
|
126
|
+
while (stack.length > 0) {
|
|
127
|
+
instanceIndex = stack.pop();
|
|
128
|
+
if (visited[instanceIndex] === visitedMarker) {
|
|
129
|
+
// This instance has already been visited, stop traversal
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
visited[instanceIndex] = visitedMarker;
|
|
133
|
+
const result = endConditionCallback(hierarchy, instanceIndex);
|
|
134
|
+
if (defined(result)) {
|
|
135
|
+
// The end condition was met, stop the traversal and return the result
|
|
136
|
+
return result;
|
|
137
|
+
}
|
|
138
|
+
const parentCount = parentCounts[instanceIndex];
|
|
139
|
+
const parentIndex = parentIndexes[instanceIndex];
|
|
140
|
+
for (let i = 0; i < parentCount; ++i) {
|
|
141
|
+
const parentId = parentIds[parentIndex + i];
|
|
142
|
+
// Stop the traversal when the instance has no parent (its parentId equals itself)
|
|
143
|
+
// else add the parent to the stack to continue the traversal.
|
|
144
|
+
if (parentId !== instanceIndex) {
|
|
145
|
+
stack.push(parentId);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return null;
|
|
158
150
|
}
|
|
159
|
-
|
|
160
151
|
function traverseHierarchySingleParent(hierarchy, instanceIndex, endConditionCallback) {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
throw new Error('traverseHierarchySingleParent');
|
|
152
|
+
let hasParent = true;
|
|
153
|
+
while (hasParent) {
|
|
154
|
+
const result = endConditionCallback(hierarchy, instanceIndex);
|
|
155
|
+
if (defined(result)) {
|
|
156
|
+
// The end condition was met, stop the traversal and return the result
|
|
157
|
+
return result;
|
|
158
|
+
}
|
|
159
|
+
const parentId = hierarchy.parentIds[instanceIndex];
|
|
160
|
+
hasParent = parentId !== instanceIndex;
|
|
161
|
+
instanceIndex = parentId;
|
|
162
|
+
}
|
|
163
|
+
throw new Error('traverseHierarchySingleParent');
|
|
176
164
|
}
|
|
177
|
-
|
|
165
|
+
// DEBUG CODE
|
|
178
166
|
function validateHierarchy(hierarchy) {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}
|
|
167
|
+
const scratchValidateStack = [];
|
|
168
|
+
const classIds = hierarchy.classIds;
|
|
169
|
+
const instancesLength = classIds.length;
|
|
170
|
+
for (let i = 0; i < instancesLength; ++i) {
|
|
171
|
+
validateInstance(hierarchy, i, stack);
|
|
172
|
+
}
|
|
186
173
|
}
|
|
187
|
-
|
|
188
174
|
function validateInstance(hierarchy, instanceIndex, stack) {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
stack.pop(instanceIndex);
|
|
175
|
+
const parentCounts = hierarchy.parentCounts;
|
|
176
|
+
const parentIds = hierarchy.parentIds;
|
|
177
|
+
const parentIndexes = hierarchy.parentIndexes;
|
|
178
|
+
const classIds = hierarchy.classIds;
|
|
179
|
+
const instancesLength = classIds.length;
|
|
180
|
+
if (!defined(parentIds)) {
|
|
181
|
+
// No need to validate if there are no parents
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
assert(instanceIndex < instancesLength, `Parent index ${instanceIndex} exceeds the total number of instances: ${instancesLength}`);
|
|
185
|
+
assert(stack.indexOf(instanceIndex) === -1, 'Circular dependency detected in the batch table hierarchy.');
|
|
186
|
+
stack.push(instanceIndex);
|
|
187
|
+
const parentCount = defined(parentCounts) ? parentCounts[instanceIndex] : 1;
|
|
188
|
+
const parentIndex = defined(parentCounts) ? parentIndexes[instanceIndex] : instanceIndex;
|
|
189
|
+
for (let i = 0; i < parentCount; ++i) {
|
|
190
|
+
const parentId = parentIds[parentIndex + i];
|
|
191
|
+
// Stop the traversal when the instance has no parent (its parentId equals itself), else continue the traversal.
|
|
192
|
+
if (parentId !== instanceIndex) {
|
|
193
|
+
validateInstance(hierarchy, parentId, stack);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
stack.pop(instanceIndex);
|
|
214
197
|
}
|
|
215
|
-
//# sourceMappingURL=tile-3d-batch-table-hierarchy.js.map
|