@itwin/core-frontend 5.0.0-dev.90 → 5.0.0-dev.92
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/lib/cjs/ContextRealityModelState.d.ts.map +1 -1
- package/lib/cjs/ContextRealityModelState.js +2 -0
- package/lib/cjs/ContextRealityModelState.js.map +1 -1
- package/lib/cjs/ModelState.d.ts.map +1 -1
- package/lib/cjs/ModelState.js +4 -0
- package/lib/cjs/ModelState.js.map +1 -1
- package/lib/cjs/NoRenderApp.d.ts +1 -1
- package/lib/cjs/NoRenderApp.d.ts.map +1 -1
- package/lib/cjs/NoRenderApp.js +1 -1
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +1 -0
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +4 -1
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshParams.d.ts +2 -0
- package/lib/cjs/common/internal/render/MeshParams.d.ts.map +1 -1
- package/lib/cjs/common/internal/render/MeshParams.js.map +1 -1
- package/lib/cjs/internal/render/{RealityMeshGraphicParams.d.ts → MeshMapLayerGraphicParams.d.ts} +4 -4
- package/lib/cjs/internal/render/MeshMapLayerGraphicParams.d.ts.map +1 -0
- package/lib/cjs/internal/render/{RealityMeshGraphicParams.js → MeshMapLayerGraphicParams.js} +1 -1
- package/lib/cjs/internal/render/MeshMapLayerGraphicParams.js.map +1 -0
- package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MapLayerParams.d.ts +54 -0
- package/lib/cjs/internal/render/webgl/MapLayerParams.d.ts.map +1 -0
- package/lib/cjs/internal/render/webgl/MapLayerParams.js +198 -0
- package/lib/cjs/internal/render/webgl/MapLayerParams.js.map +1 -0
- package/lib/cjs/internal/render/webgl/Mesh.js +1 -1
- package/lib/cjs/internal/render/webgl/Mesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RealityMesh.d.ts +6 -35
- package/lib/cjs/internal/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/RealityMesh.js +41 -154
- package/lib/cjs/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderFlags.d.ts +7 -1
- package/lib/cjs/internal/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderFlags.js +7 -0
- package/lib/cjs/internal/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderBuilder.d.ts +12 -11
- package/lib/cjs/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderBuilder.js +13 -8
- package/lib/cjs/internal/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SurfaceGeometry.d.ts +5 -2
- package/lib/cjs/internal/render/webgl/SurfaceGeometry.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/SurfaceGeometry.js +49 -3
- package/lib/cjs/internal/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/System.d.ts +2 -2
- package/lib/cjs/internal/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/System.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.js +11 -2
- package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/AmbientOcclusion.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Blur.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ClearTranslucent.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Clipping.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Combine3Textures.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CombineTextures.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Composite.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyColor.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyPickBuffers.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js +5 -5
- package/lib/cjs/internal/render/webgl/glsl/EDL.js +4 -4
- package/lib/cjs/internal/render/webgl/glsl/EVSMFromDepth.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Edge.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/FeatureSymbology.js +2 -2
- package/lib/cjs/internal/render/webgl/glsl/Fragment.js +9 -9
- package/lib/cjs/internal/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.d.ts +12 -0
- package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.d.ts.map +1 -0
- package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.js +116 -0
- package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -0
- package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js +3 -3
- package/lib/cjs/internal/render/webgl/glsl/PointCloud.js +2 -2
- package/lib/cjs/internal/render/webgl/glsl/PointCloud.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js +6 -91
- package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SkyBox.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SkySphere.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SolarShadowMapping.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Surface.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Surface.js +73 -7
- package/lib/cjs/internal/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Translucency.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Wiremesh.js +1 -1
- package/lib/cjs/internal/tile/B3dmReader.d.ts +2 -1
- package/lib/cjs/internal/tile/B3dmReader.d.ts.map +1 -1
- package/lib/cjs/internal/tile/B3dmReader.js +5 -5
- package/lib/cjs/internal/tile/B3dmReader.js.map +1 -1
- package/lib/cjs/internal/tile/I3dmReader.d.ts +2 -1
- package/lib/cjs/internal/tile/I3dmReader.d.ts.map +1 -1
- package/lib/cjs/internal/tile/I3dmReader.js +4 -4
- package/lib/cjs/internal/tile/I3dmReader.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.d.ts +2 -0
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.js +1 -0
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.d.ts +14 -3
- package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.js +51 -11
- package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.js +8 -2
- package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/render/RealityMeshParams.d.ts +3 -0
- package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -1
- package/lib/cjs/render/RealityMeshParams.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +4 -3
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +2 -1
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.d.ts +1 -1
- package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
- package/lib/cjs/render/RenderTarget.js +1 -1
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +8 -2
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +11 -2
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.d.ts +2 -1
- package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/LayerTileTreeHandler.d.ts +47 -0
- package/lib/cjs/tile/LayerTileTreeHandler.d.ts.map +1 -0
- package/lib/cjs/tile/LayerTileTreeHandler.js +54 -0
- package/lib/cjs/tile/LayerTileTreeHandler.js.map +1 -0
- package/lib/cjs/tile/LayerTileTreeReferenceHandler.d.ts +36 -0
- package/lib/cjs/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -0
- package/lib/cjs/tile/LayerTileTreeReferenceHandler.js +150 -0
- package/lib/cjs/tile/LayerTileTreeReferenceHandler.js.map +1 -0
- package/lib/cjs/tile/Tile.d.ts +2 -0
- package/lib/cjs/tile/Tile.d.ts.map +1 -1
- package/lib/cjs/tile/Tile.js +7 -0
- package/lib/cjs/tile/Tile.js.map +1 -1
- package/lib/cjs/tile/TileTree.d.ts +3 -1
- package/lib/cjs/tile/TileTree.d.ts.map +1 -1
- package/lib/cjs/tile/TileTree.js +2 -0
- package/lib/cjs/tile/TileTree.js.map +1 -1
- package/lib/cjs/tile/internal.d.ts +2 -0
- package/lib/cjs/tile/internal.d.ts.map +1 -1
- package/lib/cjs/tile/internal.js +2 -0
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.d.ts +8 -2
- package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +10 -16
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts +8 -36
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +47 -176
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +9 -9
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/esm/ContextRealityModelState.d.ts.map +1 -1
- package/lib/esm/ContextRealityModelState.js +2 -0
- package/lib/esm/ContextRealityModelState.js.map +1 -1
- package/lib/esm/ModelState.d.ts.map +1 -1
- package/lib/esm/ModelState.js +4 -0
- package/lib/esm/ModelState.js.map +1 -1
- package/lib/esm/NoRenderApp.d.ts +1 -1
- package/lib/esm/NoRenderApp.d.ts.map +1 -1
- package/lib/esm/NoRenderApp.js +1 -1
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/Viewport.d.ts +1 -0
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +4 -1
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/common/internal/render/MeshParams.d.ts +2 -0
- package/lib/esm/common/internal/render/MeshParams.d.ts.map +1 -1
- package/lib/esm/common/internal/render/MeshParams.js.map +1 -1
- package/lib/esm/internal/render/{RealityMeshGraphicParams.d.ts → MeshMapLayerGraphicParams.d.ts} +4 -4
- package/lib/esm/internal/render/MeshMapLayerGraphicParams.d.ts.map +1 -0
- package/lib/esm/internal/render/{RealityMeshGraphicParams.js → MeshMapLayerGraphicParams.js} +1 -1
- package/lib/esm/internal/render/MeshMapLayerGraphicParams.js.map +1 -0
- package/lib/esm/internal/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/esm/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/internal/render/webgl/MapLayerParams.d.ts +54 -0
- package/lib/esm/internal/render/webgl/MapLayerParams.d.ts.map +1 -0
- package/lib/esm/internal/render/webgl/MapLayerParams.js +192 -0
- package/lib/esm/internal/render/webgl/MapLayerParams.js.map +1 -0
- package/lib/esm/internal/render/webgl/Mesh.js +1 -1
- package/lib/esm/internal/render/webgl/Mesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/internal/render/webgl/RealityMesh.d.ts +6 -35
- package/lib/esm/internal/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/RealityMesh.js +41 -153
- package/lib/esm/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderFlags.d.ts +7 -1
- package/lib/esm/internal/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/RenderFlags.js +7 -0
- package/lib/esm/internal/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderBuilder.d.ts +12 -11
- package/lib/esm/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderBuilder.js +13 -8
- package/lib/esm/internal/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/internal/render/webgl/SurfaceGeometry.d.ts +5 -2
- package/lib/esm/internal/render/webgl/SurfaceGeometry.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/SurfaceGeometry.js +50 -4
- package/lib/esm/internal/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/System.d.ts +2 -2
- package/lib/esm/internal/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/System.js.map +1 -1
- package/lib/esm/internal/render/webgl/Target.d.ts +1 -1
- package/lib/esm/internal/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/Target.js +11 -2
- package/lib/esm/internal/render/webgl/Target.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/AmbientOcclusion.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Atmosphere.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Blur.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/ClearTranslucent.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Clipping.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Combine3Textures.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/CombineTextures.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Composite.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyColor.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyPickBuffers.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyStencil.js +5 -5
- package/lib/esm/internal/render/webgl/glsl/EDL.js +4 -4
- package/lib/esm/internal/render/webgl/glsl/EVSMFromDepth.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Edge.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/FeatureSymbology.js +2 -2
- package/lib/esm/internal/render/webgl/glsl/Fragment.js +9 -9
- package/lib/esm/internal/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.d.ts +12 -0
- package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.d.ts.map +1 -0
- package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.js +111 -0
- package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -0
- package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js +3 -3
- package/lib/esm/internal/render/webgl/glsl/PointCloud.js +2 -2
- package/lib/esm/internal/render/webgl/glsl/PointCloud.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/RealityMesh.js +5 -90
- package/lib/esm/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/SkyBox.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/SkySphere.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/SolarShadowMapping.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Surface.d.ts +1 -1
- package/lib/esm/internal/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Surface.js +73 -7
- package/lib/esm/internal/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Translucency.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Wiremesh.js +1 -1
- package/lib/esm/internal/tile/B3dmReader.d.ts +2 -1
- package/lib/esm/internal/tile/B3dmReader.d.ts.map +1 -1
- package/lib/esm/internal/tile/B3dmReader.js +5 -5
- package/lib/esm/internal/tile/B3dmReader.js.map +1 -1
- package/lib/esm/internal/tile/I3dmReader.d.ts +2 -1
- package/lib/esm/internal/tile/I3dmReader.d.ts.map +1 -1
- package/lib/esm/internal/tile/I3dmReader.js +4 -4
- package/lib/esm/internal/tile/I3dmReader.js.map +1 -1
- package/lib/esm/internal/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/IModelTileTree.js +2 -2
- package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/ImdlGraphicsCreator.d.ts +2 -0
- package/lib/esm/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/esm/internal/tile/ImdlGraphicsCreator.js +1 -0
- package/lib/esm/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.d.ts +14 -3
- package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.js +53 -13
- package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.js +8 -2
- package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/render/RealityMeshParams.d.ts +3 -0
- package/lib/esm/render/RealityMeshParams.d.ts.map +1 -1
- package/lib/esm/render/RealityMeshParams.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +4 -3
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +2 -1
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.d.ts +1 -1
- package/lib/esm/render/RenderTarget.d.ts.map +1 -1
- package/lib/esm/render/RenderTarget.js +1 -1
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +8 -2
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +11 -2
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/ImdlReader.d.ts +2 -1
- package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/LayerTileTreeHandler.d.ts +47 -0
- package/lib/esm/tile/LayerTileTreeHandler.d.ts.map +1 -0
- package/lib/esm/tile/LayerTileTreeHandler.js +50 -0
- package/lib/esm/tile/LayerTileTreeHandler.js.map +1 -0
- package/lib/esm/tile/LayerTileTreeReferenceHandler.d.ts +36 -0
- package/lib/esm/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -0
- package/lib/esm/tile/LayerTileTreeReferenceHandler.js +146 -0
- package/lib/esm/tile/LayerTileTreeReferenceHandler.js.map +1 -0
- package/lib/esm/tile/Tile.d.ts +2 -0
- package/lib/esm/tile/Tile.d.ts.map +1 -1
- package/lib/esm/tile/Tile.js +7 -0
- package/lib/esm/tile/Tile.js.map +1 -1
- package/lib/esm/tile/TileTree.d.ts +3 -1
- package/lib/esm/tile/TileTree.d.ts.map +1 -1
- package/lib/esm/tile/TileTree.js +2 -0
- package/lib/esm/tile/TileTree.js.map +1 -1
- package/lib/esm/tile/internal.d.ts +2 -0
- package/lib/esm/tile/internal.d.ts.map +1 -1
- package/lib/esm/tile/internal.js +2 -0
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/MapTile.d.ts +8 -2
- package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTile.js +9 -16
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts +8 -36
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +49 -178
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js +9 -9
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/package.json +16 -16
- package/lib/cjs/internal/render/RealityMeshGraphicParams.d.ts.map +0 -1
- package/lib/cjs/internal/render/RealityMeshGraphicParams.js.map +0 -1
- package/lib/esm/internal/render/RealityMeshGraphicParams.d.ts.map +0 -1
- package/lib/esm/internal/render/RealityMeshGraphicParams.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealityTileLoader.js","sourceRoot":"","sources":["../../../../src/internal/tile/RealityTileLoader.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { assert, ByteStream } from \"@itwin/core-bentley\";\nimport { Point2d, Point3d, Transform } from \"@itwin/core-geometry\";\nimport { BatchType, CompositeTileHeader, TileFormat, ViewFlagOverrides } from \"@itwin/core-common\";\nimport { IModelApp } from \"../../IModelApp\";\nimport { GraphicBranch } from \"../../render/GraphicBranch\";\nimport { RenderSystem } from \"../../render/RenderSystem\";\nimport { ScreenViewport, Viewport } from \"../../Viewport\";\nimport { GltfWrapMode } from \"../../common/gltf/GltfSchema\";\nimport {\n B3dmReader, BatchedTileIdMap, createDefaultViewFlagOverrides, GltfGraphicsReader, GltfReader, GltfReaderProps, I3dmReader, ImdlReader, readPointCloudTileContent,\n RealityTile, RealityTileContent, RealityTileTree, Tile, TileContent, TileDrawArgs, TileLoadPriority, TileRequest, TileRequestChannel, TileUser,\n} from \"../../tile/internal\";\n\nconst defaultViewFlagOverrides = createDefaultViewFlagOverrides({});\n\nconst scratchTileCenterWorld = new Point3d();\nconst scratchTileCenterView = new Point3d();\n\n/** Serves as a \"handler\" for a specific type of [[TileTree]]. Its primary responsibilities involve loading tile content.\n * @internal\n */\nexport abstract class RealityTileLoader {\n private _containsPointClouds = false;\n public readonly preloadRealityParentDepth: number;\n public readonly preloadRealityParentSkip: number;\n\n public constructor(private _produceGeometry?: boolean) {\n this.preloadRealityParentDepth = IModelApp.tileAdmin.contextPreloadParentDepth;\n this.preloadRealityParentSkip = IModelApp.tileAdmin.contextPreloadParentSkip;\n }\n\n public computeTilePriority(tile: Tile, viewports: Iterable<Viewport>, _users: Iterable<TileUser>): number {\n // ###TODO: Handle case where tile tree reference(s) have a transform different from tree's (background map with ground bias).\n return RealityTileLoader.computeTileLocationPriority(tile, viewports, tile.tree.iModelTransform);\n }\n\n public abstract loadChildren(tile: RealityTile): Promise<Tile[] | undefined>;\n public abstract getRequestChannel(tile: Tile): TileRequestChannel;\n public abstract requestTileContent(tile: Tile, isCanceled: () => boolean): Promise<TileRequest.Response>;\n public get wantDeduplicatedVertices(): boolean { return false; }\n public abstract get maxDepth(): number;\n public abstract get minDepth(): number;\n public abstract get priority(): TileLoadPriority;\n protected get _batchType(): BatchType { return BatchType.Primary; }\n protected get _loadEdges(): boolean { return true; }\n public getBatchIdMap(): BatchedTileIdMap | undefined { return undefined; }\n public get isContentUnbounded(): boolean { return false; }\n public get containsPointClouds(): boolean { return this._containsPointClouds; }\n public get parentsAndChildrenExclusive(): boolean { return true; }\n public forceTileLoad(_tile: Tile): boolean { return false; }\n public get maximumScreenSpaceError(): number | undefined { return undefined; }\n\n public processSelectedTiles(selected: Tile[], _args: TileDrawArgs): Tile[] { return selected; }\n\n // NB: The isCanceled arg is chiefly for tests...in usual case it just returns false if the tile is no longer in 'loading' state.\n public async loadTileContent(tile: Tile, data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<RealityTileContent> {\n assert(data instanceof Uint8Array);\n const blob = data;\n const streamBuffer = ByteStream.fromUint8Array(blob);\n const realityTile = tile as RealityTile;\n return this._produceGeometry ? this.loadGeometryFromStream(realityTile, streamBuffer, system) : this.loadGraphicsFromStream(realityTile, streamBuffer, system, isCanceled);\n }\n\n private _getFormat(streamBuffer: ByteStream) {\n const position = streamBuffer.curPos;\n const format = streamBuffer.readUint32();\n streamBuffer.curPos = position;\n return format;\n\n }\n\n public async loadGeometryFromStream(tile: RealityTile, streamBuffer: ByteStream, system: RenderSystem): Promise<RealityTileContent> {\n const format = this._getFormat(streamBuffer);\n if (format !== TileFormat.B3dm)\n return {};\n\n const { is3d, yAxisUp, iModel, modelId } = tile.realityRoot;\n const reader = B3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, tile.center, tile.transformToRoot, undefined, this.getBatchIdMap());\n if (reader)\n reader.defaultWrapMode = GltfWrapMode.ClampToEdge;\n\n return { geometry: reader?.readGltfAndCreateGeometry(tile.tree.iModelTransform) };\n }\n\n private async loadGraphicsFromStream(tile: RealityTile, streamBuffer: ByteStream, system: RenderSystem, isCanceled?: () => boolean): Promise<TileContent> {\n const format = this._getFormat(streamBuffer);\n if (undefined === isCanceled)\n isCanceled = () => !tile.isLoading;\n\n const { is3d, yAxisUp, iModel, modelId } = tile.realityRoot;\n let reader: GltfReader | ImdlReader | undefined;\n switch (format) {\n case TileFormat.IModel:\n reader = ImdlReader.create({\n stream: streamBuffer,\n iModel,\n modelId,\n is3d,\n system,\n isCanceled,\n });\n break;\n case TileFormat.Pnts:\n this._containsPointClouds = true;\n const res = await readPointCloudTileContent(streamBuffer, iModel, modelId, is3d, tile, system);\n let graphic = res.graphic;\n const rtcCenter = res.rtcCenter;\n if (graphic && (rtcCenter || tile.transformToRoot && !tile.transformToRoot.isIdentity)) {\n const transformBranch = new GraphicBranch(true);\n transformBranch.add(graphic);\n let xform: Transform;\n if (!tile.transformToRoot && rtcCenter)\n xform = Transform.createTranslation(rtcCenter);\n else {\n if (rtcCenter)\n xform = Transform.createOriginAndMatrix(rtcCenter.plus(tile.transformToRoot!.origin), tile.transformToRoot!.matrix);\n else\n xform = tile.transformToRoot!;\n }\n graphic = system.createBranch(transformBranch, xform);\n }\n\n return { graphic };\n case TileFormat.B3dm:\n reader = B3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, tile.center, tile.transformToRoot, isCanceled, this.getBatchIdMap(), this.wantDeduplicatedVertices);\n if (reader) {\n // glTF spec defaults wrap mode to \"repeat\" but many reality tiles omit the wrap mode and should not repeat.\n // The render system also currently only produces mip-maps for repeating textures, and we don't want mip-maps for reality tile textures.\n assert(reader instanceof GltfReader);\n reader.defaultWrapMode = GltfWrapMode.ClampToEdge;\n }\n\n break;\n case TileFormat.I3dm:\n reader = I3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, isCanceled, undefined, this.wantDeduplicatedVertices);\n break;\n case TileFormat.Gltf:\n const tree = tile.tree as RealityTileTree;\n const baseUrl = tree.baseUrl;\n const props = createReaderPropsWithBaseUrl(streamBuffer, yAxisUp, baseUrl);\n if (props) {\n reader = new GltfGraphicsReader(props, {\n iModel,\n gltf: props.glTF,\n contentRange: tile.contentRange,\n transform: tile.transformToRoot,\n hasChildren: !tile.isLeaf,\n pickableOptions: { id: modelId },\n idMap: this.getBatchIdMap(),\n });\n }\n break;\n case TileFormat.Cmpt:\n const header = new CompositeTileHeader(streamBuffer);\n if (!header.isValid)\n return {};\n\n const branch = new GraphicBranch(true);\n for (let i = 0; i < header.tileCount; i++) {\n const tilePosition = streamBuffer.curPos;\n streamBuffer.advance(8); // Skip magic and version.\n const tileBytes = streamBuffer.readUint32();\n streamBuffer.curPos = tilePosition;\n const result = await this.loadGraphicsFromStream(tile, streamBuffer, system, isCanceled);\n if (result.graphic)\n branch.add(result.graphic);\n streamBuffer.curPos = tilePosition + tileBytes;\n }\n return { graphic: branch.isEmpty ? undefined : system.createBranch(branch, Transform.createIdentity()), isLeaf: tile.isLeaf };\n\n default:\n assert(false, `unknown tile format ${format}`);\n break;\n }\n\n let content: TileContent = {};\n if (undefined !== reader) {\n try {\n content = await reader.read();\n if (content.containsPointCloud)\n this._containsPointClouds = true;\n } catch {\n // Failure to load should prevent us from trying to load children\n content.isLeaf = true;\n }\n }\n\n return content;\n }\n\n public get viewFlagOverrides(): ViewFlagOverrides { return defaultViewFlagOverrides; }\n\n public static computeTileLocationPriority(tile: Tile, viewports: Iterable<Viewport>, location: Transform): number {\n // Compute a priority value for tiles that are:\n // * Closer to the eye;\n // * Closer to the center of attention (center of the screen or zoom target).\n // This way, we can load in priority tiles that are more likely to be important.\n let center: Point3d | undefined;\n let minDistance = 1.0;\n\n const currentInputState = IModelApp.toolAdmin.currentInputState;\n const now = Date.now();\n const wheelEventRelevanceTimeout = 1000; // Wheel events older than this value will not be considered\n\n for (const viewport of viewports) {\n center = center ?? location.multiplyPoint3d(tile.center, scratchTileCenterWorld);\n const npc = viewport.worldToNpc(center, scratchTileCenterView);\n\n let focusPoint = new Point2d(0.5, 0.5);\n\n if (currentInputState.viewport === viewport && viewport instanceof ScreenViewport) {\n // Try to get a better target point from the last zoom target\n const { lastWheelEvent } = currentInputState;\n\n if (lastWheelEvent !== undefined && now - lastWheelEvent.time < wheelEventRelevanceTimeout) {\n const focusPointCandidate = Point2d.fromJSON(viewport.worldToNpc(lastWheelEvent.point));\n\n if (focusPointCandidate.x > 0 && focusPointCandidate.x < 1 && focusPointCandidate.y > 0 && focusPointCandidate.y < 1)\n focusPoint = focusPointCandidate;\n }\n }\n\n // NB: In NPC coords, 0 = far plane, 1 = near plane.\n const distanceToEye = 1.0 - npc.z;\n const distanceToCenter = Math.min(npc.distanceXY(focusPoint) / 0.707, 1.0); // Math.sqrt(0.5) = 0.707\n\n // Distance is a mix of the two previously computed values, still in range [0; 1]\n // We use this factor to determine how much the distance to the center of attention is important compared to distance to the eye\n const distanceToCenterWeight = 0.3;\n const distance = distanceToEye * (1.0 - distanceToCenterWeight) + distanceToCenter * distanceToCenterWeight;\n\n minDistance = Math.min(distance, minDistance);\n }\n\n return minDistance;\n }\n}\n\n/** Exposed strictly for testing purposes.\n* @internal\n*/\nexport function createReaderPropsWithBaseUrl(streamBuffer: ByteStream, yAxisUp: boolean, baseUrl?: string): GltfReaderProps | undefined {\n let url: URL | undefined;\n if (baseUrl) {\n try {\n url = new URL(baseUrl);\n } catch {\n url = undefined;\n }\n }\n return GltfReaderProps.create(streamBuffer.nextBytes(streamBuffer.arrayBuffer.byteLength), yAxisUp, url);\n}"]}
|
|
1
|
+
{"version":3,"file":"RealityTileLoader.js","sourceRoot":"","sources":["../../../../src/internal/tile/RealityTileLoader.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { assert, ByteStream } from \"@itwin/core-bentley\";\nimport { Point2d, Point3d, Transform } from \"@itwin/core-geometry\";\nimport { BatchType, CompositeTileHeader, TileFormat, ViewFlagOverrides } from \"@itwin/core-common\";\nimport { IModelApp } from \"../../IModelApp\";\nimport { GraphicBranch } from \"../../render/GraphicBranch\";\nimport { RenderSystem } from \"../../render/RenderSystem\";\nimport { ScreenViewport, Viewport } from \"../../Viewport\";\nimport { GltfWrapMode } from \"../../common/gltf/GltfSchema\";\nimport {\n B3dmReader, BatchedTileIdMap, createDefaultViewFlagOverrides, GltfGraphicsReader, GltfReader, GltfReaderProps, I3dmReader, ImdlReader, readPointCloudTileContent,\n RealityTile, RealityTileContent, RealityTileTree, Tile, TileContent, TileDrawArgs, TileLoadPriority, TileRequest, TileRequestChannel, TileUser,\n} from \"../../tile/internal\";\nimport { LayerTileData } from \"../render/webgl/MapLayerParams\";\n\nconst defaultViewFlagOverrides = createDefaultViewFlagOverrides({});\n\nconst scratchTileCenterWorld = new Point3d();\nconst scratchTileCenterView = new Point3d();\n\n/** Serves as a \"handler\" for a specific type of [[TileTree]]. Its primary responsibilities involve loading tile content.\n * @internal\n */\nexport abstract class RealityTileLoader {\n private _containsPointClouds = false;\n public readonly preloadRealityParentDepth: number;\n public readonly preloadRealityParentSkip: number;\n\n public constructor(private _produceGeometry?: boolean) {\n this.preloadRealityParentDepth = IModelApp.tileAdmin.contextPreloadParentDepth;\n this.preloadRealityParentSkip = IModelApp.tileAdmin.contextPreloadParentSkip;\n }\n\n public computeTilePriority(tile: Tile, viewports: Iterable<Viewport>, _users: Iterable<TileUser>): number {\n // ###TODO: Handle case where tile tree reference(s) have a transform different from tree's (background map with ground bias).\n return RealityTileLoader.computeTileLocationPriority(tile, viewports, tile.tree.iModelTransform);\n }\n\n public abstract loadChildren(tile: RealityTile): Promise<Tile[] | undefined>;\n public abstract getRequestChannel(tile: Tile): TileRequestChannel;\n public abstract requestTileContent(tile: Tile, isCanceled: () => boolean): Promise<TileRequest.Response>;\n public get wantDeduplicatedVertices(): boolean { return false; }\n public abstract get maxDepth(): number;\n public abstract get minDepth(): number;\n public abstract get priority(): TileLoadPriority;\n protected get _batchType(): BatchType { return BatchType.Primary; }\n protected get _loadEdges(): boolean { return true; }\n public getBatchIdMap(): BatchedTileIdMap | undefined { return undefined; }\n public get isContentUnbounded(): boolean { return false; }\n public get containsPointClouds(): boolean { return this._containsPointClouds; }\n public get parentsAndChildrenExclusive(): boolean { return true; }\n public forceTileLoad(_tile: Tile): boolean { return false; }\n public get maximumScreenSpaceError(): number | undefined { return undefined; }\n\n public processSelectedTiles(selected: Tile[], _args: TileDrawArgs): Tile[] { return selected; }\n\n // NB: The isCanceled arg is chiefly for tests...in usual case it just returns false if the tile is no longer in 'loading' state.\n public async loadTileContent(tile: Tile, data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<RealityTileContent> {\n assert(data instanceof Uint8Array);\n const blob = data;\n const streamBuffer = ByteStream.fromUint8Array(blob);\n const realityTile = tile as RealityTile;\n return this._produceGeometry ? this.loadGeometryFromStream(realityTile, streamBuffer, system) : this.loadGraphicsFromStream(realityTile, streamBuffer, system, isCanceled);\n }\n\n private _getFormat(streamBuffer: ByteStream) {\n const position = streamBuffer.curPos;\n const format = streamBuffer.readUint32();\n streamBuffer.curPos = position;\n return format;\n\n }\n\n public async loadGeometryFromStream(tile: RealityTile, streamBuffer: ByteStream, system: RenderSystem): Promise<RealityTileContent> {\n const format = this._getFormat(streamBuffer);\n if (format !== TileFormat.B3dm)\n return {};\n\n const { is3d, yAxisUp, iModel, modelId } = tile.realityRoot;\n const reader = B3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, tile.center, tile.transformToRoot, undefined, this.getBatchIdMap());\n if (reader)\n reader.defaultWrapMode = GltfWrapMode.ClampToEdge;\n\n return { geometry: reader?.readGltfAndCreateGeometry(tile.tree.iModelTransform) };\n }\n\n private async loadGraphicsFromStream(tile: RealityTile, streamBuffer: ByteStream, system: RenderSystem, isCanceled?: () => boolean): Promise<TileContent> {\n const format = this._getFormat(streamBuffer);\n if (undefined === isCanceled)\n isCanceled = () => !tile.isLoading;\n\n const { is3d, yAxisUp, iModel, modelId } = tile.realityRoot;\n let reader: GltfReader | ImdlReader | undefined;\n const tileData: LayerTileData = {\n ecefTransform: tile.tree.iModel.getEcefTransform(),\n range: tile.range,\n layerClassifiers: tile.tree.layerHandler?.layerClassifiers,\n };\n switch (format) {\n case TileFormat.IModel:\n reader = ImdlReader.create({\n stream: streamBuffer,\n iModel,\n modelId,\n is3d,\n system,\n isCanceled,\n });\n break;\n case TileFormat.Pnts:\n this._containsPointClouds = true;\n const res = await readPointCloudTileContent(streamBuffer, iModel, modelId, is3d, tile, system);\n let graphic = res.graphic;\n const rtcCenter = res.rtcCenter;\n if (graphic && (rtcCenter || tile.transformToRoot && !tile.transformToRoot.isIdentity)) {\n const transformBranch = new GraphicBranch(true);\n transformBranch.add(graphic);\n let xform: Transform;\n if (!tile.transformToRoot && rtcCenter)\n xform = Transform.createTranslation(rtcCenter);\n else {\n if (rtcCenter)\n xform = Transform.createOriginAndMatrix(rtcCenter.plus(tile.transformToRoot!.origin), tile.transformToRoot!.matrix);\n else\n xform = tile.transformToRoot!;\n }\n graphic = system.createBranch(transformBranch, xform);\n }\n\n return { graphic };\n case TileFormat.B3dm:\n reader = B3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, tile.center, tile.transformToRoot, isCanceled, this.getBatchIdMap(), this.wantDeduplicatedVertices, tileData);\n if (reader) {\n // glTF spec defaults wrap mode to \"repeat\" but many reality tiles omit the wrap mode and should not repeat.\n // The render system also currently only produces mip-maps for repeating textures, and we don't want mip-maps for reality tile textures.\n assert(reader instanceof GltfReader);\n reader.defaultWrapMode = GltfWrapMode.ClampToEdge;\n }\n\n break;\n case TileFormat.I3dm:\n reader = I3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, isCanceled, undefined, this.wantDeduplicatedVertices, tileData);\n break;\n case TileFormat.Gltf:\n const tree = tile.tree as RealityTileTree;\n const baseUrl = tree.baseUrl;\n const props = createReaderPropsWithBaseUrl(streamBuffer, yAxisUp, baseUrl);\n if (props) {\n reader = new GltfGraphicsReader(props, {\n iModel,\n gltf: props.glTF,\n contentRange: tile.contentRange,\n transform: tile.transformToRoot,\n hasChildren: !tile.isLeaf,\n pickableOptions: { id: modelId },\n idMap: this.getBatchIdMap(),\n tileData\n });\n }\n break;\n case TileFormat.Cmpt:\n const header = new CompositeTileHeader(streamBuffer);\n if (!header.isValid)\n return {};\n\n const branch = new GraphicBranch(true);\n for (let i = 0; i < header.tileCount; i++) {\n const tilePosition = streamBuffer.curPos;\n streamBuffer.advance(8); // Skip magic and version.\n const tileBytes = streamBuffer.readUint32();\n streamBuffer.curPos = tilePosition;\n const result = await this.loadGraphicsFromStream(tile, streamBuffer, system, isCanceled);\n if (result.graphic)\n branch.add(result.graphic);\n streamBuffer.curPos = tilePosition + tileBytes;\n }\n return { graphic: branch.isEmpty ? undefined : system.createBranch(branch, Transform.createIdentity()), isLeaf: tile.isLeaf };\n\n default:\n assert(false, `unknown tile format ${format}`);\n break;\n }\n\n let content: TileContent = {};\n if (undefined !== reader) {\n try {\n content = await reader.read();\n if (content.containsPointCloud)\n this._containsPointClouds = true;\n } catch {\n // Failure to load should prevent us from trying to load children\n content.isLeaf = true;\n }\n }\n\n return content;\n }\n\n public get viewFlagOverrides(): ViewFlagOverrides { return defaultViewFlagOverrides; }\n\n public static computeTileLocationPriority(tile: Tile, viewports: Iterable<Viewport>, location: Transform): number {\n // Compute a priority value for tiles that are:\n // * Closer to the eye;\n // * Closer to the center of attention (center of the screen or zoom target).\n // This way, we can load in priority tiles that are more likely to be important.\n let center: Point3d | undefined;\n let minDistance = 1.0;\n\n const currentInputState = IModelApp.toolAdmin.currentInputState;\n const now = Date.now();\n const wheelEventRelevanceTimeout = 1000; // Wheel events older than this value will not be considered\n\n for (const viewport of viewports) {\n center = center ?? location.multiplyPoint3d(tile.center, scratchTileCenterWorld);\n const npc = viewport.worldToNpc(center, scratchTileCenterView);\n\n let focusPoint = new Point2d(0.5, 0.5);\n\n if (currentInputState.viewport === viewport && viewport instanceof ScreenViewport) {\n // Try to get a better target point from the last zoom target\n const { lastWheelEvent } = currentInputState;\n\n if (lastWheelEvent !== undefined && now - lastWheelEvent.time < wheelEventRelevanceTimeout) {\n const focusPointCandidate = Point2d.fromJSON(viewport.worldToNpc(lastWheelEvent.point));\n\n if (focusPointCandidate.x > 0 && focusPointCandidate.x < 1 && focusPointCandidate.y > 0 && focusPointCandidate.y < 1)\n focusPoint = focusPointCandidate;\n }\n }\n\n // NB: In NPC coords, 0 = far plane, 1 = near plane.\n const distanceToEye = 1.0 - npc.z;\n const distanceToCenter = Math.min(npc.distanceXY(focusPoint) / 0.707, 1.0); // Math.sqrt(0.5) = 0.707\n\n // Distance is a mix of the two previously computed values, still in range [0; 1]\n // We use this factor to determine how much the distance to the center of attention is important compared to distance to the eye\n const distanceToCenterWeight = 0.3;\n const distance = distanceToEye * (1.0 - distanceToCenterWeight) + distanceToCenter * distanceToCenterWeight;\n\n minDistance = Math.min(distance, minDistance);\n }\n\n return minDistance;\n }\n}\n\n/** Exposed strictly for testing purposes.\n* @internal\n*/\nexport function createReaderPropsWithBaseUrl(streamBuffer: ByteStream, yAxisUp: boolean, baseUrl?: string): GltfReaderProps | undefined {\n let url: URL | undefined;\n if (baseUrl) {\n try {\n url = new URL(baseUrl);\n } catch {\n url = undefined;\n }\n }\n return GltfReaderProps.create(streamBuffer.nextBytes(streamBuffer.arrayBuffer.byteLength), yAxisUp, url);\n}"]}
|
|
@@ -5,6 +5,7 @@ import { Uint16ArrayBuilder, UintArray, UintArrayBuilder } from "@itwin/core-ben
|
|
|
5
5
|
import { IndexedPolyface, Range2d, Range3d, Transform, XAndY, XYAndZ } from "@itwin/core-geometry";
|
|
6
6
|
import { QPoint2dBuffer, QPoint2dBufferBuilder, QPoint3dBuffer, QPoint3dBufferBuilder, RenderTexture } from "@itwin/core-common";
|
|
7
7
|
import { GltfMeshData } from "../tile/internal";
|
|
8
|
+
import { LayerTileData } from "../internal/render/webgl/MapLayerParams";
|
|
8
9
|
/** Geometry for a reality mesh to be submitted to the [[RenderSystem]] for conversion to a [[RenderGraphic]].
|
|
9
10
|
* A reality mesh is a simple triangle mesh to which a [RenderTexture]($common) image can be mapped. Sources of reality meshes
|
|
10
11
|
* include [[TerrainMeshProvider]]s to which background map imagery is applied, and [ContextRealityModel]($common)s captured using
|
|
@@ -25,6 +26,8 @@ export interface RealityMeshParams {
|
|
|
25
26
|
featureID?: number;
|
|
26
27
|
/** @alpha unused by terrain meshes */
|
|
27
28
|
texture?: RenderTexture;
|
|
29
|
+
/** @internal */
|
|
30
|
+
tileData?: LayerTileData;
|
|
28
31
|
}
|
|
29
32
|
/** @public */
|
|
30
33
|
export declare namespace RealityMeshParams {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealityMeshParams.d.ts","sourceRoot":"","sources":["../../../src/render/RealityMeshParams.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EACL,eAAe,EAAoB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAY,KAAK,EAAE,MAAM,EACxF,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACuB,cAAc,EAAE,qBAAqB,EAAY,cAAc,EAAE,qBAAqB,EAAE,aAAa,EAClI,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"RealityMeshParams.d.ts","sourceRoot":"","sources":["../../../src/render/RealityMeshParams.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealityMeshParams.js","sourceRoot":"","sources":["../../../src/render/RealityMeshParams.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\nimport { assert, Uint16ArrayBuilder, UintArray, UintArrayBuilder } from \"@itwin/core-bentley\";\nimport {\n IndexedPolyface, Point2d, Point3d, Range2d, Range3d, Transform, Vector3d, XAndY, XYAndZ,\n} from \"@itwin/core-geometry\";\nimport {\n OctEncodedNormal, QPoint2d, QPoint2dBuffer, QPoint2dBufferBuilder, QPoint3d, QPoint3dBuffer, QPoint3dBufferBuilder, RenderTexture,\n} from \"@itwin/core-common\";\nimport { GltfMeshData } from \"../tile/internal\";\nimport { MeshPrimitiveType } from \"../common/internal/render/MeshPrimitive\";\n\nfunction precondition(condition: boolean, message: string | (() => string)): asserts condition {\n if (condition)\n return;\n\n if (\"string\" !== typeof message)\n message = message();\n\n throw new Error(`Logic Error: ${message}`);\n}\n\n/** Geometry for a reality mesh to be submitted to the [[RenderSystem]] for conversion to a [[RenderGraphic]].\n * A reality mesh is a simple triangle mesh to which a [RenderTexture]($common) image can be mapped. Sources of reality meshes\n * include [[TerrainMeshProvider]]s to which background map imagery is applied, and [ContextRealityModel]($common)s captured using\n * [photogrammetry](https://en.wikipedia.org/wiki/Photogrammetry).\n * @see [[RealityMeshParamsBuilder]] to incrementally construct a `RealityMeshParams`.\n * @public\n */\nexport interface RealityMeshParams {\n /** The 3d position of each vertex in the mesh, indexed by [[indices]]. */\n positions: QPoint3dBuffer;\n /** The 2d texture coordinates of each vertex in the mesh, indexed by [[indices]]. */\n uvs: QPoint2dBuffer;\n /** The optional normal vector for each vertex in the mesh, indexed by [[indices]], stored as [OctEncodedNormal]($common)s. */\n normals?: Uint16Array;\n /** The integer indices of each triangle in the mesh. The array's length must be a multiple of 3. */\n indices: UintArray;\n /** @alpha unused by terrain meshes */\n featureID?: number; // default 0\n /** @alpha unused by terrain meshes */\n texture?: RenderTexture;\n}\n\n/** @public */\nexport namespace RealityMeshParams {\n /** @internal */\n export function fromGltfMesh(mesh: GltfMeshData): RealityMeshParams | undefined {\n // The specialized reality mesh shaders expect a mesh with uvs and no edges.\n if (mesh.primitive.type !== MeshPrimitiveType.Mesh || mesh.primitive.edges || !mesh.pointQParams || !mesh.uvQParams || !mesh.points || !mesh.uvs || !mesh.indices)\n return undefined;\n\n return {\n indices: mesh.indices,\n positions: {\n params: mesh.pointQParams,\n points: mesh.points,\n },\n uvs: {\n params: mesh.uvQParams,\n points: mesh.uvs,\n },\n normals: mesh.normals,\n // featureID: 0,\n texture: mesh.primitive.displayParams.textureMapping?.texture,\n };\n }\n\n /** @alpha */\n export function toPolyface(params: RealityMeshParams, options?: { transform?: Transform, wantNormals?: boolean, wantParams?: boolean }): IndexedPolyface | undefined {\n const { positions, normals, uvs, indices } = params;\n const includeNormals = options?.wantNormals && undefined !== normals;\n const includeParams = options?.wantParams;\n\n const polyface = IndexedPolyface.create(includeNormals, includeParams);\n const points = positions.points;\n const point = new Point3d();\n const transform = options?.transform;\n for (let i = 0; i < positions.points.length; i += 3) {\n positions.params.unquantize(points[i], points[i + 1], points[i + 2], point);\n transform?.multiplyPoint3d(point, point);\n polyface.addPoint(point);\n }\n\n if (includeNormals) {\n const normal = new Vector3d();\n for (const oen of normals)\n polyface.addNormal(OctEncodedNormal.decodeValue(oen, normal));\n }\n\n if (includeParams) {\n const uv = new Point2d();\n for (let i = 0; i < uvs.points.length; i += 2)\n polyface.addParam(uvs.params.unquantize(uvs.points[i], uvs.points[i + 1], uv));\n }\n\n let j = 0;\n indices.forEach((index: number) => {\n polyface.addPointIndex(index);\n if (includeNormals)\n polyface.addNormalIndex(index);\n\n if (includeParams)\n polyface.addParamIndex(index);\n\n if (0 === (++j % 3))\n polyface.terminateFacet();\n });\n\n return polyface;\n }\n}\n\n/** Options used to construct a [[RealityMeshParamsBuilder]].\n * @beta\n */\nexport interface RealityMeshParamsBuilderOptions {\n /** A bounding box fully containing the positions of all vertices to be included in the mesh.\n * This range is used to quantize [[RealityMeshParams.positions]].\n */\n positionRange: Range3d;\n /** A range fully containing the texture coordinates of all vertices to be included in the mesh.\n * This range is used to quantize [[RealityMeshParams.uvs]].\n * Default: [0.0, 1.0].\n */\n uvRange?: Range2d;\n /** If true, [[RealityMeshParams.normals]] will be populated.\n * If you set this to true, you must supply a normal for every vertex when calling [[RealityMeshParamsBuilder.addQuantizedVertex]] or [[RealityMeshParamsBuilder.addUnquantizedVertex]].\n */\n wantNormals?: boolean;\n /** If defined, memory for this number of vertices will be allocated up-front. Set this if you know the minimum number of vertices in the mesh, to\n * avoid unnecessary reallocations when adding vertices.\n */\n initialVertexCapacity?: number;\n /** If defined, memory for this number of indices will be allocated up-front. Set this if you know the minimum number of triangles in the mesh, to avoid\n * unnecessary reallocations when adding triangles. The number of indices is equal to three times the number of triangles.\n */\n initialIndexCapacity?: number;\n}\n\n/** Incrementally constructs a [[RealityMeshParams]].\n * The following simple example produces a rectangular mesh containing two triangles.\n * ```ts\n * [[include:Build_Reality_Mesh_Params]]\n * ```\n * @beta\n */\nexport class RealityMeshParamsBuilder {\n /** The indices of the vertices in each triangle of the mesh.\n * @see [[addTriangle]] to add 3 indices describing a single triangle.\n * @see [[addQuad]] to add 4 indices describing two triangles sharing an edge.\n * @see [[addIndices]] to add any number of indices.\n */\n public readonly indices: UintArrayBuilder;\n /** The 3d position of each vertex in the mesh.\n * @see [[addQuantizedVertex]] and [[addUnquantizedVertex]] to add a vertex.\n */\n public readonly positions: QPoint3dBufferBuilder;\n /** The 2d texture coordinates of each vertex in the mesh.\n * @see [[addQuantizedVertex]] and [[addUnquantizedVertex]] to add a vertex.\n */\n public readonly uvs: QPoint2dBufferBuilder;\n /** The normal vector of each vertex in the mesh, or `undefined` if [[RealityMeshParamsBuilderOptions.wantNormals]] was not `true` when constructing the builder.\n * A normal vector must be supplied to [[addQuantizedVertex]] and [[addUnquantizedVertex]] if and only if [[RealityMeshParamsBuilderOptions.wantNormals]] was\n * specified as `true`.\n * The vectors are stored as [OctEncodedNormal]($common)s.\n */\n public normals?: Uint16ArrayBuilder;\n\n // Scratch variables\n private readonly _q3d = new QPoint3d();\n private readonly _q2d = new QPoint2d();\n\n /** Construct a builder from the specified options. */\n public constructor(options: RealityMeshParamsBuilderOptions) {\n let initialType;\n if (undefined !== options.initialVertexCapacity && options.initialVertexCapacity > 0xff)\n initialType = options.initialVertexCapacity > 0xffff ? Uint32Array : Uint16Array;\n\n this.indices = new UintArrayBuilder({\n initialCapacity: options.initialIndexCapacity,\n initialType,\n });\n\n if (options.wantNormals)\n this.normals = new Uint16ArrayBuilder({ initialCapacity: options.initialVertexCapacity });\n\n this.positions = new QPoint3dBufferBuilder({\n range: options.positionRange,\n initialCapacity: options.initialVertexCapacity,\n });\n\n this.uvs = new QPoint2dBufferBuilder({\n range: options.uvRange ?? new Range2d(0, 0, 1, 1),\n initialCapacity: options.initialVertexCapacity,\n });\n }\n\n /** Add a vertex to the mesh and return its index in [[positions]].\n * @param position The 3d position, which will be quantized to the [[RealityMeshParamsBuilderOptions.positionRange]] supplied to the builder's constructor.\n * @param uv The texture coordinates, which will be quantized to the [[RealityMeshParamsBuilderOptions.uvRange]] supplied to the builder's constructor.\n * @param the normal vector, to be supplied if and only if [[RealityMeshParamsBuilderOptions.wantNormals]] was `true` when the builder was constructed.\n * @see [[addQuantizedVertex]] if your vertex data is already quantized.\n * @returns the index of the new vertex in [[positions]].\n */\n public addUnquantizedVertex(position: XYAndZ, uv: XAndY, normal?: XYAndZ): number {\n this._q3d.init(position, this.positions.params);\n this._q2d.init(uv, this.uvs.params);\n const oen = normal ? OctEncodedNormal.encode(normal) : undefined;\n return this.addQuantizedVertex(this._q3d, this._q2d, oen);\n }\n\n /** Original API had weird mix of quantized and unquantized, used by CesiumTerrainProvider.\n * @internal\n */\n public addVertex(position: XYAndZ, uv: XAndY, normal?: number): void {\n this._q3d.init(position, this.positions.params);\n this.addQuantizedVertex(this._q3d, uv, normal);\n }\n\n /** Add a vertex to the mesh and return its index in [[positions]].\n * @param position The 3d position, quantized to the [[RealityMeshParamsBuilderOptions.positionRange]] supplied to the builder's constructor.\n * @param uv The texture coordinates, quantized to the [[RealityMeshParamsBuilderOptions.uvRange]] supplied to the builder's constructor.\n * @param normal The unsigned 16-bit [OctEncodedNormal]($common) integer representation of the normal vector, to be supplied if and only if\n * [[RealityMeshParamsBuilderOptions.wantNormals]] was `true` when the builder was constructed.\n * @see [[addUnquantizedVertex]] if your vertex data is not already quantized.\n * @returns the index of the new vertex in [[positions]].\n * @throws Error if `normal` is `undefined` but `wantNormals` was specified at construction of the builder, or vice-versa.\n */\n public addQuantizedVertex(position: XYAndZ, uv: XAndY, normal?: number): number {\n precondition((undefined === normal) === (undefined === this.normals), \"RealityMeshParams requires all vertices to have normals, or none.\");\n\n this.positions.push(position);\n this.uvs.push(uv);\n if (undefined !== normal) {\n assert(undefined !== this.normals);\n this.normals.push(normal);\n }\n\n return this.positions.length - 1;\n }\n\n /** Add a triangle corresponding to the three specified vertices. */\n public addTriangle(i0: number, i1: number, i2: number): void {\n this.addIndex(i0);\n this.addIndex(i1);\n this.addIndex(i2);\n }\n\n /** Add two triangles sharing an edge. This is equivalent to calling `addTriangle(i0, i1, i2); addTriangle(i1, i3, i2);`. */\n public addQuad(i0: number, i1: number, i2: number, i3: number): void {\n this.addTriangle(i0, i1, i2);\n this.addTriangle(i1, i3, i2);\n }\n\n /** Add all of the indices in `indices` to the index buffer. */\n public addIndices(indices: Iterable<number>): void {\n for (const index of indices)\n this.addIndex(index);\n }\n\n private addIndex(index: number): void {\n this.indices.push(index);\n }\n\n /** Extract the finished [[RealityMeshParams]].\n * @throws Error if the mesh contains no triangles.\n */\n public finish(): RealityMeshParams {\n precondition(this.positions.length >= 3 && this.indices.length >= 3, \"RealityMeshParams requires at least one triangle\");\n return {\n positions: this.positions.finish(),\n uvs: this.uvs.finish(),\n normals: this.normals?.toTypedArray(),\n indices: this.indices.toTypedArray(),\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"RealityMeshParams.js","sourceRoot":"","sources":["../../../src/render/RealityMeshParams.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\nimport { assert, Uint16ArrayBuilder, UintArray, UintArrayBuilder } from \"@itwin/core-bentley\";\nimport {\n IndexedPolyface, Point2d, Point3d, Range2d, Range3d, Transform, Vector3d, XAndY, XYAndZ,\n} from \"@itwin/core-geometry\";\nimport {\n OctEncodedNormal, QPoint2d, QPoint2dBuffer, QPoint2dBufferBuilder, QPoint3d, QPoint3dBuffer, QPoint3dBufferBuilder, RenderTexture,\n} from \"@itwin/core-common\";\nimport { GltfMeshData } from \"../tile/internal\";\nimport { MeshPrimitiveType } from \"../common/internal/render/MeshPrimitive\";\nimport { LayerTileData } from \"../internal/render/webgl/MapLayerParams\";\n\nfunction precondition(condition: boolean, message: string | (() => string)): asserts condition {\n if (condition)\n return;\n\n if (\"string\" !== typeof message)\n message = message();\n\n throw new Error(`Logic Error: ${message}`);\n}\n\n/** Geometry for a reality mesh to be submitted to the [[RenderSystem]] for conversion to a [[RenderGraphic]].\n * A reality mesh is a simple triangle mesh to which a [RenderTexture]($common) image can be mapped. Sources of reality meshes\n * include [[TerrainMeshProvider]]s to which background map imagery is applied, and [ContextRealityModel]($common)s captured using\n * [photogrammetry](https://en.wikipedia.org/wiki/Photogrammetry).\n * @see [[RealityMeshParamsBuilder]] to incrementally construct a `RealityMeshParams`.\n * @public\n */\nexport interface RealityMeshParams {\n /** The 3d position of each vertex in the mesh, indexed by [[indices]]. */\n positions: QPoint3dBuffer;\n /** The 2d texture coordinates of each vertex in the mesh, indexed by [[indices]]. */\n uvs: QPoint2dBuffer;\n /** The optional normal vector for each vertex in the mesh, indexed by [[indices]], stored as [OctEncodedNormal]($common)s. */\n normals?: Uint16Array;\n /** The integer indices of each triangle in the mesh. The array's length must be a multiple of 3. */\n indices: UintArray;\n /** @alpha unused by terrain meshes */\n featureID?: number; // default 0\n /** @alpha unused by terrain meshes */\n texture?: RenderTexture;\n /** @internal */\n tileData?: LayerTileData;\n}\n\n/** @public */\nexport namespace RealityMeshParams {\n /** @internal */\n export function fromGltfMesh(mesh: GltfMeshData): RealityMeshParams | undefined {\n // The specialized reality mesh shaders expect a mesh with uvs and no edges.\n if (mesh.primitive.type !== MeshPrimitiveType.Mesh || mesh.primitive.edges || !mesh.pointQParams || !mesh.uvQParams || !mesh.points || !mesh.uvs || !mesh.indices)\n return undefined;\n\n return {\n indices: mesh.indices,\n positions: {\n params: mesh.pointQParams,\n points: mesh.points,\n },\n uvs: {\n params: mesh.uvQParams,\n points: mesh.uvs,\n },\n normals: mesh.normals,\n // featureID: 0,\n texture: mesh.primitive.displayParams.textureMapping?.texture,\n };\n }\n\n /** @alpha */\n export function toPolyface(params: RealityMeshParams, options?: { transform?: Transform, wantNormals?: boolean, wantParams?: boolean }): IndexedPolyface | undefined {\n const { positions, normals, uvs, indices } = params;\n const includeNormals = options?.wantNormals && undefined !== normals;\n const includeParams = options?.wantParams;\n\n const polyface = IndexedPolyface.create(includeNormals, includeParams);\n const points = positions.points;\n const point = new Point3d();\n const transform = options?.transform;\n for (let i = 0; i < positions.points.length; i += 3) {\n positions.params.unquantize(points[i], points[i + 1], points[i + 2], point);\n transform?.multiplyPoint3d(point, point);\n polyface.addPoint(point);\n }\n\n if (includeNormals) {\n const normal = new Vector3d();\n for (const oen of normals)\n polyface.addNormal(OctEncodedNormal.decodeValue(oen, normal));\n }\n\n if (includeParams) {\n const uv = new Point2d();\n for (let i = 0; i < uvs.points.length; i += 2)\n polyface.addParam(uvs.params.unquantize(uvs.points[i], uvs.points[i + 1], uv));\n }\n\n let j = 0;\n indices.forEach((index: number) => {\n polyface.addPointIndex(index);\n if (includeNormals)\n polyface.addNormalIndex(index);\n\n if (includeParams)\n polyface.addParamIndex(index);\n\n if (0 === (++j % 3))\n polyface.terminateFacet();\n });\n\n return polyface;\n }\n}\n\n/** Options used to construct a [[RealityMeshParamsBuilder]].\n * @beta\n */\nexport interface RealityMeshParamsBuilderOptions {\n /** A bounding box fully containing the positions of all vertices to be included in the mesh.\n * This range is used to quantize [[RealityMeshParams.positions]].\n */\n positionRange: Range3d;\n /** A range fully containing the texture coordinates of all vertices to be included in the mesh.\n * This range is used to quantize [[RealityMeshParams.uvs]].\n * Default: [0.0, 1.0].\n */\n uvRange?: Range2d;\n /** If true, [[RealityMeshParams.normals]] will be populated.\n * If you set this to true, you must supply a normal for every vertex when calling [[RealityMeshParamsBuilder.addQuantizedVertex]] or [[RealityMeshParamsBuilder.addUnquantizedVertex]].\n */\n wantNormals?: boolean;\n /** If defined, memory for this number of vertices will be allocated up-front. Set this if you know the minimum number of vertices in the mesh, to\n * avoid unnecessary reallocations when adding vertices.\n */\n initialVertexCapacity?: number;\n /** If defined, memory for this number of indices will be allocated up-front. Set this if you know the minimum number of triangles in the mesh, to avoid\n * unnecessary reallocations when adding triangles. The number of indices is equal to three times the number of triangles.\n */\n initialIndexCapacity?: number;\n}\n\n/** Incrementally constructs a [[RealityMeshParams]].\n * The following simple example produces a rectangular mesh containing two triangles.\n * ```ts\n * [[include:Build_Reality_Mesh_Params]]\n * ```\n * @beta\n */\nexport class RealityMeshParamsBuilder {\n /** The indices of the vertices in each triangle of the mesh.\n * @see [[addTriangle]] to add 3 indices describing a single triangle.\n * @see [[addQuad]] to add 4 indices describing two triangles sharing an edge.\n * @see [[addIndices]] to add any number of indices.\n */\n public readonly indices: UintArrayBuilder;\n /** The 3d position of each vertex in the mesh.\n * @see [[addQuantizedVertex]] and [[addUnquantizedVertex]] to add a vertex.\n */\n public readonly positions: QPoint3dBufferBuilder;\n /** The 2d texture coordinates of each vertex in the mesh.\n * @see [[addQuantizedVertex]] and [[addUnquantizedVertex]] to add a vertex.\n */\n public readonly uvs: QPoint2dBufferBuilder;\n /** The normal vector of each vertex in the mesh, or `undefined` if [[RealityMeshParamsBuilderOptions.wantNormals]] was not `true` when constructing the builder.\n * A normal vector must be supplied to [[addQuantizedVertex]] and [[addUnquantizedVertex]] if and only if [[RealityMeshParamsBuilderOptions.wantNormals]] was\n * specified as `true`.\n * The vectors are stored as [OctEncodedNormal]($common)s.\n */\n public normals?: Uint16ArrayBuilder;\n\n // Scratch variables\n private readonly _q3d = new QPoint3d();\n private readonly _q2d = new QPoint2d();\n\n /** Construct a builder from the specified options. */\n public constructor(options: RealityMeshParamsBuilderOptions) {\n let initialType;\n if (undefined !== options.initialVertexCapacity && options.initialVertexCapacity > 0xff)\n initialType = options.initialVertexCapacity > 0xffff ? Uint32Array : Uint16Array;\n\n this.indices = new UintArrayBuilder({\n initialCapacity: options.initialIndexCapacity,\n initialType,\n });\n\n if (options.wantNormals)\n this.normals = new Uint16ArrayBuilder({ initialCapacity: options.initialVertexCapacity });\n\n this.positions = new QPoint3dBufferBuilder({\n range: options.positionRange,\n initialCapacity: options.initialVertexCapacity,\n });\n\n this.uvs = new QPoint2dBufferBuilder({\n range: options.uvRange ?? new Range2d(0, 0, 1, 1),\n initialCapacity: options.initialVertexCapacity,\n });\n }\n\n /** Add a vertex to the mesh and return its index in [[positions]].\n * @param position The 3d position, which will be quantized to the [[RealityMeshParamsBuilderOptions.positionRange]] supplied to the builder's constructor.\n * @param uv The texture coordinates, which will be quantized to the [[RealityMeshParamsBuilderOptions.uvRange]] supplied to the builder's constructor.\n * @param the normal vector, to be supplied if and only if [[RealityMeshParamsBuilderOptions.wantNormals]] was `true` when the builder was constructed.\n * @see [[addQuantizedVertex]] if your vertex data is already quantized.\n * @returns the index of the new vertex in [[positions]].\n */\n public addUnquantizedVertex(position: XYAndZ, uv: XAndY, normal?: XYAndZ): number {\n this._q3d.init(position, this.positions.params);\n this._q2d.init(uv, this.uvs.params);\n const oen = normal ? OctEncodedNormal.encode(normal) : undefined;\n return this.addQuantizedVertex(this._q3d, this._q2d, oen);\n }\n\n /** Original API had weird mix of quantized and unquantized, used by CesiumTerrainProvider.\n * @internal\n */\n public addVertex(position: XYAndZ, uv: XAndY, normal?: number): void {\n this._q3d.init(position, this.positions.params);\n this.addQuantizedVertex(this._q3d, uv, normal);\n }\n\n /** Add a vertex to the mesh and return its index in [[positions]].\n * @param position The 3d position, quantized to the [[RealityMeshParamsBuilderOptions.positionRange]] supplied to the builder's constructor.\n * @param uv The texture coordinates, quantized to the [[RealityMeshParamsBuilderOptions.uvRange]] supplied to the builder's constructor.\n * @param normal The unsigned 16-bit [OctEncodedNormal]($common) integer representation of the normal vector, to be supplied if and only if\n * [[RealityMeshParamsBuilderOptions.wantNormals]] was `true` when the builder was constructed.\n * @see [[addUnquantizedVertex]] if your vertex data is not already quantized.\n * @returns the index of the new vertex in [[positions]].\n * @throws Error if `normal` is `undefined` but `wantNormals` was specified at construction of the builder, or vice-versa.\n */\n public addQuantizedVertex(position: XYAndZ, uv: XAndY, normal?: number): number {\n precondition((undefined === normal) === (undefined === this.normals), \"RealityMeshParams requires all vertices to have normals, or none.\");\n\n this.positions.push(position);\n this.uvs.push(uv);\n if (undefined !== normal) {\n assert(undefined !== this.normals);\n this.normals.push(normal);\n }\n\n return this.positions.length - 1;\n }\n\n /** Add a triangle corresponding to the three specified vertices. */\n public addTriangle(i0: number, i1: number, i2: number): void {\n this.addIndex(i0);\n this.addIndex(i1);\n this.addIndex(i2);\n }\n\n /** Add two triangles sharing an edge. This is equivalent to calling `addTriangle(i0, i1, i2); addTriangle(i1, i3, i2);`. */\n public addQuad(i0: number, i1: number, i2: number, i3: number): void {\n this.addTriangle(i0, i1, i2);\n this.addTriangle(i1, i3, i2);\n }\n\n /** Add all of the indices in `indices` to the index buffer. */\n public addIndices(indices: Iterable<number>): void {\n for (const index of indices)\n this.addIndex(index);\n }\n\n private addIndex(index: number): void {\n this.indices.push(index);\n }\n\n /** Extract the finished [[RealityMeshParams]].\n * @throws Error if the mesh contains no triangles.\n */\n public finish(): RealityMeshParams {\n precondition(this.positions.length >= 3 && this.indices.length >= 3, \"RealityMeshParams requires at least one triangle\");\n return {\n positions: this.positions.finish(),\n uvs: this.uvs.finish(),\n normals: this.normals?.toTypedArray(),\n indices: this.indices.toTypedArray(),\n };\n }\n}\n"]}
|
|
@@ -17,7 +17,7 @@ import { GraphicBranch, GraphicBranchOptions } from "./GraphicBranch";
|
|
|
17
17
|
import { CustomGraphicBuilderOptions, GraphicBuilder, ViewportGraphicBuilderOptions } from "./GraphicBuilder";
|
|
18
18
|
import { InstancedGraphicParams, PatternGraphicParams } from "../common/render/InstancedGraphicParams";
|
|
19
19
|
import { Mesh } from "../common/internal/render/MeshPrimitives";
|
|
20
|
-
import {
|
|
20
|
+
import { MeshMapLayerGraphicParams } from "../internal/render/MeshMapLayerGraphicParams";
|
|
21
21
|
import { RealityMeshParams } from "./RealityMeshParams";
|
|
22
22
|
import { PointCloudArgs } from "../common/internal/render/PointCloudPrimitive";
|
|
23
23
|
import { RenderClipVolume } from "./RenderClipVolume";
|
|
@@ -42,6 +42,7 @@ import { RenderTextureDrape } from "../internal/render/RenderTextureDrape";
|
|
|
42
42
|
import { RenderTerrainGeometry } from "../internal/render/RenderTerrain";
|
|
43
43
|
import { RenderSkyBoxParams } from "../internal/render/RenderSkyBoxParams";
|
|
44
44
|
import { RenderAreaPattern } from "../internal/render/RenderAreaPattern";
|
|
45
|
+
import { LayerTileData } from "../internal/render/webgl/MapLayerParams";
|
|
45
46
|
/** Transparency settings for planar grid display.
|
|
46
47
|
* @alpha
|
|
47
48
|
*/
|
|
@@ -193,7 +194,7 @@ export declare abstract class RenderSystem implements Disposable {
|
|
|
193
194
|
/** @internal */
|
|
194
195
|
createMeshGraphics(mesh: Mesh, instances?: InstancedGraphicParams | Point3d): RenderGraphic | undefined;
|
|
195
196
|
/** @internal */
|
|
196
|
-
createGeometryFromMesh(mesh: Mesh, viOrigin: Point3d | undefined): RenderGeometry | undefined;
|
|
197
|
+
createGeometryFromMesh(mesh: Mesh, viOrigin: Point3d | undefined, tileData?: LayerTileData): RenderGeometry | undefined;
|
|
197
198
|
/** Create a graphic from a low-level representation of a set of line strings.
|
|
198
199
|
* @param args A description of the line strings.
|
|
199
200
|
* @param instances Repetitions of the line strings to be drawn.
|
|
@@ -235,7 +236,7 @@ export declare abstract class RenderSystem implements Disposable {
|
|
|
235
236
|
/** @internal */
|
|
236
237
|
createTerrainMesh(_params: RealityMeshParams, _transform?: Transform, _disableTextureDisposal?: boolean): RenderTerrainGeometry | undefined;
|
|
237
238
|
/** @internal */
|
|
238
|
-
createRealityMeshGraphic(_params:
|
|
239
|
+
createRealityMeshGraphic(_params: MeshMapLayerGraphicParams, _disableTextureDisposal?: boolean): RenderGraphic | undefined;
|
|
239
240
|
/** @internal */
|
|
240
241
|
createRealityMesh(realityMesh: RealityMeshParams, disableTextureDisposal?: boolean): RenderGraphic | undefined;
|
|
241
242
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderSystem.d.ts","sourceRoot":"","sources":["../../../src/render/RenderSystem.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAA4B,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EACL,QAAQ,EAAc,mBAAmB,EAA6C,OAAO,EAAE,QAAQ,EAA4B,iBAAiB,EAC1H,kBAAkB,EAA2B,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAC9I,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAW,OAAO,EAAW,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAsE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE/I,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAA2B,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACzG,OAAO,EAAwB,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,cAAc,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACvG,OAAO,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RenderSystem.d.ts","sourceRoot":"","sources":["../../../src/render/RenderSystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,10 +126,11 @@ export class RenderSystem {
|
|
|
126
126
|
return polylineArgs ? this.createIndexedPolylines(polylineArgs, instances) : undefined;
|
|
127
127
|
}
|
|
128
128
|
/** @internal */
|
|
129
|
-
createGeometryFromMesh(mesh, viOrigin) {
|
|
129
|
+
createGeometryFromMesh(mesh, viOrigin, tileData) {
|
|
130
130
|
const meshArgs = mesh.toMeshArgs();
|
|
131
131
|
if (meshArgs) {
|
|
132
132
|
const meshParams = createMeshParams(meshArgs, this.maxTextureSize, IModelApp.tileAdmin.edgeOptions.type !== "non-indexed");
|
|
133
|
+
meshParams.tileData = tileData;
|
|
133
134
|
return this.createMeshGeometry(meshParams, viOrigin);
|
|
134
135
|
}
|
|
135
136
|
const plArgs = mesh.toPolylineArgs();
|