@itwin/core-frontend 5.1.0-dev.4 → 5.1.0-dev.41
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/CHANGELOG.md +91 -1
- package/lib/cjs/AccuDraw.d.ts +2 -0
- package/lib/cjs/AccuDraw.d.ts.map +1 -1
- package/lib/cjs/AccuDraw.js +2 -0
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/AccuSnap.js +2 -2
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/GraphicalEditingScope.d.ts +1 -1
- package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
- package/lib/cjs/GraphicalEditingScope.js +1 -1
- package/lib/cjs/GraphicalEditingScope.js.map +1 -1
- package/lib/cjs/HitDetail.d.ts +1 -1
- package/lib/cjs/HitDetail.d.ts.map +1 -1
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +18 -3
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +20 -1
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +6 -6
- package/lib/cjs/IModelConnection.js +6 -6
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/IpcApp.d.ts +2 -1
- package/lib/cjs/IpcApp.d.ts.map +1 -1
- package/lib/cjs/IpcApp.js +4 -2
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/SelectionSet.d.ts +7 -7
- package/lib/cjs/SelectionSet.js +3 -3
- package/lib/cjs/SelectionSet.js.map +1 -1
- package/lib/cjs/SheetViewState.d.ts +2 -0
- package/lib/cjs/SheetViewState.d.ts.map +1 -1
- package/lib/cjs/SheetViewState.js +25 -3
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/ViewContext.d.ts +4 -1
- package/lib/cjs/ViewContext.d.ts.map +1 -1
- package/lib/cjs/ViewContext.js +10 -5
- package/lib/cjs/ViewContext.js.map +1 -1
- package/lib/cjs/ViewManager.js +2 -2
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewState.d.ts +1 -1
- package/lib/cjs/ViewState.js +1 -1
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +7 -5
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +9 -5
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/core-frontend.d.ts +1 -1
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/extension/ExtensionRuntime.js +15 -2
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
- package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/cjs/internal/render/MockRender.d.ts +1 -1
- package/lib/cjs/internal/render/MockRender.d.ts.map +1 -1
- package/lib/cjs/internal/render/MockRender.js +1 -1
- package/lib/cjs/internal/render/MockRender.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js +1 -1
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts +2 -2
- package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeBuffers.js +2 -2
- package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ClippingProgram.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/ClippingProgram.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/ClippingProgram.js +1 -1
- package/lib/cjs/internal/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderCommands.js +2 -3
- package/lib/cjs/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderProgram.d.ts +2 -2
- package/lib/cjs/internal/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderProgram.js +2 -2
- package/lib/cjs/internal/render/webgl/ShaderProgram.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 +2 -2
- package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetGraphics.d.ts +3 -3
- package/lib/cjs/internal/render/webgl/TargetGraphics.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetGraphics.js +10 -7
- package/lib/cjs/internal/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Technique.d.ts +3 -3
- package/lib/cjs/internal/render/webgl/Technique.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/Technique.js +3 -3
- package/lib/cjs/internal/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/internal/tile/ClassifierTileTree.js +3 -1
- package/lib/cjs/internal/tile/ClassifierTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTile.d.ts +1 -0
- package/lib/cjs/internal/tile/IModelTile.d.ts.map +1 -1
- package/lib/cjs/internal/tile/IModelTile.js +4 -0
- package/lib/cjs/internal/tile/IModelTile.js.map +1 -1
- package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
- package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js +8 -0
- package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
- package/lib/cjs/internal/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/PrimaryTileTree.js +4 -3
- package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.d.ts +15 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.js +25 -11
- package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +4 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +52 -11
- package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts +7 -0
- package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/WmtsCapabilities.js +17 -0
- package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/cjs/properties/AngleDescription.d.ts +4 -1
- package/lib/cjs/properties/AngleDescription.d.ts.map +1 -1
- package/lib/cjs/properties/AngleDescription.js +10 -2
- package/lib/cjs/properties/AngleDescription.js.map +1 -1
- package/lib/cjs/properties/FormattedQuantityDescription.d.ts +11 -1
- package/lib/cjs/properties/FormattedQuantityDescription.d.ts.map +1 -1
- package/lib/cjs/properties/FormattedQuantityDescription.js +7 -2
- package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/cjs/properties/LengthDescription.d.ts +12 -3
- package/lib/cjs/properties/LengthDescription.d.ts.map +1 -1
- package/lib/cjs/properties/LengthDescription.js +30 -6
- package/lib/cjs/properties/LengthDescription.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +103 -7
- package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js +212 -23
- package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/cjs/render/Decorations.d.ts +1 -1
- package/lib/cjs/render/Decorations.d.ts.map +1 -1
- package/lib/cjs/render/Decorations.js +1 -1
- package/lib/cjs/render/Decorations.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/RenderGraphic.d.ts +1 -1
- package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
- package/lib/cjs/render/RenderGraphic.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +2 -2
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -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.map +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/cjs/request/Request.d.ts +2 -2
- package/lib/cjs/request/Request.js.map +1 -1
- package/lib/cjs/tile/Tile.d.ts +1 -1
- package/lib/cjs/tile/Tile.d.ts.map +1 -1
- package/lib/cjs/tile/Tile.js +1 -1
- package/lib/cjs/tile/Tile.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.d.ts +10 -0
- package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
- package/lib/cjs/tile/TileAdmin.js +3 -0
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileTree.d.ts +1 -1
- package/lib/cjs/tile/TileTree.d.ts.map +1 -1
- package/lib/cjs/tile/TileTree.js +1 -1
- package/lib/cjs/tile/TileTree.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +1 -1
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -2
- package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js +2 -2
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.d.ts +10 -0
- package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.js +12 -0
- package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +3 -3
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js +9 -5
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +1 -1
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/QuadId.d.ts +15 -0
- package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
- package/lib/cjs/tile/map/QuadId.js +12 -0
- package/lib/cjs/tile/map/QuadId.js.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.js +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/cjs/tools/AccuDrawViewportUI.d.ts +7 -0
- package/lib/cjs/tools/AccuDrawViewportUI.d.ts.map +1 -1
- package/lib/cjs/tools/AccuDrawViewportUI.js +14 -0
- package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
- package/lib/cjs/tools/ElementSetTool.d.ts +9 -1
- package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
- package/lib/cjs/tools/ElementSetTool.js +128 -7
- package/lib/cjs/tools/ElementSetTool.js.map +1 -1
- package/lib/cjs/tools/MeasureTool.d.ts +9 -0
- package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
- package/lib/cjs/tools/MeasureTool.js +53 -22
- package/lib/cjs/tools/MeasureTool.js.map +1 -1
- package/lib/cjs/tools/SelectTool.d.ts +2 -2
- package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
- package/lib/cjs/tools/SelectTool.js +26 -97
- package/lib/cjs/tools/SelectTool.js.map +1 -1
- package/lib/cjs/tools/Tool.d.ts +10 -1
- package/lib/cjs/tools/Tool.d.ts.map +1 -1
- package/lib/cjs/tools/Tool.js +27 -4
- package/lib/cjs/tools/Tool.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.d.ts +1 -0
- package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js +8 -2
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ToolSettings.d.ts +5 -0
- package/lib/cjs/tools/ToolSettings.d.ts.map +1 -1
- package/lib/cjs/tools/ToolSettings.js +5 -0
- package/lib/cjs/tools/ToolSettings.js.map +1 -1
- package/lib/cjs/tools/ViewTool.d.ts +1 -2
- package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ViewTool.js +10 -47
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/esm/AccuDraw.d.ts +2 -0
- package/lib/esm/AccuDraw.d.ts.map +1 -1
- package/lib/esm/AccuDraw.js +2 -0
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/AccuSnap.js +2 -2
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/GraphicalEditingScope.d.ts +1 -1
- package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
- package/lib/esm/GraphicalEditingScope.js +1 -1
- package/lib/esm/GraphicalEditingScope.js.map +1 -1
- package/lib/esm/HitDetail.d.ts +1 -1
- package/lib/esm/HitDetail.d.ts.map +1 -1
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +18 -3
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +21 -2
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +6 -6
- package/lib/esm/IModelConnection.js +6 -6
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/IpcApp.d.ts +2 -1
- package/lib/esm/IpcApp.d.ts.map +1 -1
- package/lib/esm/IpcApp.js +4 -2
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/SelectionSet.d.ts +7 -7
- package/lib/esm/SelectionSet.js +3 -3
- package/lib/esm/SelectionSet.js.map +1 -1
- package/lib/esm/SheetViewState.d.ts +2 -0
- package/lib/esm/SheetViewState.d.ts.map +1 -1
- package/lib/esm/SheetViewState.js +25 -3
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/ViewContext.d.ts +4 -1
- package/lib/esm/ViewContext.d.ts.map +1 -1
- package/lib/esm/ViewContext.js +10 -5
- package/lib/esm/ViewContext.js.map +1 -1
- package/lib/esm/ViewManager.js +2 -2
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewState.d.ts +1 -1
- package/lib/esm/ViewState.js +1 -1
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/Viewport.d.ts +7 -5
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +9 -5
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/core-frontend.d.ts +1 -1
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/extension/ExtensionRuntime.js +15 -2
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
- package/lib/esm/extension/providers/ExtensionLoadScript.js +1 -1
- package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/esm/internal/render/MockRender.d.ts +1 -1
- package/lib/esm/internal/render/MockRender.d.ts.map +1 -1
- package/lib/esm/internal/render/MockRender.js +1 -1
- package/lib/esm/internal/render/MockRender.js.map +1 -1
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts +1 -1
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.js +1 -1
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts +2 -2
- package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeBuffers.js +2 -2
- package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/esm/internal/render/webgl/ClippingProgram.d.ts +1 -1
- package/lib/esm/internal/render/webgl/ClippingProgram.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/ClippingProgram.js +1 -1
- package/lib/esm/internal/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/RenderCommands.js +2 -3
- package/lib/esm/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderProgram.d.ts +2 -2
- package/lib/esm/internal/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderProgram.js +2 -2
- package/lib/esm/internal/render/webgl/ShaderProgram.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 +2 -2
- package/lib/esm/internal/render/webgl/Target.js.map +1 -1
- package/lib/esm/internal/render/webgl/TargetGraphics.d.ts +3 -3
- package/lib/esm/internal/render/webgl/TargetGraphics.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/TargetGraphics.js +10 -7
- package/lib/esm/internal/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/esm/internal/render/webgl/Technique.d.ts +3 -3
- package/lib/esm/internal/render/webgl/Technique.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/Technique.js +3 -3
- package/lib/esm/internal/render/webgl/Technique.js.map +1 -1
- package/lib/esm/internal/tile/ClassifierTileTree.js +3 -1
- package/lib/esm/internal/tile/ClassifierTileTree.js.map +1 -1
- package/lib/esm/internal/tile/IModelTile.d.ts +1 -0
- package/lib/esm/internal/tile/IModelTile.d.ts.map +1 -1
- package/lib/esm/internal/tile/IModelTile.js +4 -0
- package/lib/esm/internal/tile/IModelTile.js.map +1 -1
- package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
- package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js +8 -0
- package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
- package/lib/esm/internal/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/PrimaryTileTree.js +4 -3
- package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.d.ts +15 -1
- package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.js +24 -11
- package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +4 -0
- package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +52 -11
- package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts +7 -0
- package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/WmtsCapabilities.js +17 -0
- package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/esm/properties/AngleDescription.d.ts +4 -1
- package/lib/esm/properties/AngleDescription.d.ts.map +1 -1
- package/lib/esm/properties/AngleDescription.js +10 -2
- package/lib/esm/properties/AngleDescription.js.map +1 -1
- package/lib/esm/properties/FormattedQuantityDescription.d.ts +11 -1
- package/lib/esm/properties/FormattedQuantityDescription.d.ts.map +1 -1
- package/lib/esm/properties/FormattedQuantityDescription.js +7 -2
- package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/esm/properties/LengthDescription.d.ts +12 -3
- package/lib/esm/properties/LengthDescription.d.ts.map +1 -1
- package/lib/esm/properties/LengthDescription.js +30 -6
- package/lib/esm/properties/LengthDescription.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +103 -7
- package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.js +210 -23
- package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/esm/render/Decorations.d.ts +1 -1
- package/lib/esm/render/Decorations.d.ts.map +1 -1
- package/lib/esm/render/Decorations.js +1 -1
- package/lib/esm/render/Decorations.js.map +1 -1
- package/lib/esm/render/GraphicBranch.d.ts +1 -1
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/RenderGraphic.d.ts +1 -1
- package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
- package/lib/esm/render/RenderGraphic.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +2 -2
- package/lib/esm/render/RenderSystem.d.ts.map +1 -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.map +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/esm/request/Request.d.ts +2 -2
- package/lib/esm/request/Request.js.map +1 -1
- package/lib/esm/tile/Tile.d.ts +1 -1
- package/lib/esm/tile/Tile.d.ts.map +1 -1
- package/lib/esm/tile/Tile.js +1 -1
- package/lib/esm/tile/Tile.js.map +1 -1
- package/lib/esm/tile/TileAdmin.d.ts +10 -0
- package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
- package/lib/esm/tile/TileAdmin.js +3 -0
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileTree.d.ts +1 -1
- package/lib/esm/tile/TileTree.d.ts.map +1 -1
- package/lib/esm/tile/TileTree.js +1 -1
- package/lib/esm/tile/TileTree.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +1 -1
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -2
- package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js +2 -2
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.d.ts +10 -0
- package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.js +12 -0
- package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +3 -3
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js +9 -5
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +1 -1
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/QuadId.d.ts +15 -0
- package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
- package/lib/esm/tile/map/QuadId.js +12 -0
- package/lib/esm/tile/map/QuadId.js.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.d.ts +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.js +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/esm/tools/AccuDrawViewportUI.d.ts +7 -0
- package/lib/esm/tools/AccuDrawViewportUI.d.ts.map +1 -1
- package/lib/esm/tools/AccuDrawViewportUI.js +14 -0
- package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
- package/lib/esm/tools/ElementSetTool.d.ts +9 -1
- package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
- package/lib/esm/tools/ElementSetTool.js +130 -9
- package/lib/esm/tools/ElementSetTool.js.map +1 -1
- package/lib/esm/tools/MeasureTool.d.ts +9 -0
- package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
- package/lib/esm/tools/MeasureTool.js +53 -22
- package/lib/esm/tools/MeasureTool.js.map +1 -1
- package/lib/esm/tools/SelectTool.d.ts +2 -2
- package/lib/esm/tools/SelectTool.d.ts.map +1 -1
- package/lib/esm/tools/SelectTool.js +26 -97
- package/lib/esm/tools/SelectTool.js.map +1 -1
- package/lib/esm/tools/Tool.d.ts +10 -1
- package/lib/esm/tools/Tool.d.ts.map +1 -1
- package/lib/esm/tools/Tool.js +27 -4
- package/lib/esm/tools/Tool.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.d.ts +1 -0
- package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/esm/tools/ToolAdmin.js +8 -2
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ToolSettings.d.ts +5 -0
- package/lib/esm/tools/ToolSettings.d.ts.map +1 -1
- package/lib/esm/tools/ToolSettings.js +5 -0
- package/lib/esm/tools/ToolSettings.js.map +1 -1
- package/lib/esm/tools/ViewTool.d.ts +1 -2
- package/lib/esm/tools/ViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ViewTool.js +10 -47
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/lib/public/scripts/parse-imdl-worker.js +1 -1
- package/lib/workers/webpack/parse-imdl-worker.js +1 -1
- package/package.json +20 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenSpaceEffectBuilder.js","sourceRoot":"","sources":["../../../src/render/ScreenSpaceEffectBuilder.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH;;;;;GAKG;AACH,IAAY,WAaX;AAbD,WAAY,WAAW;IACrB,mBAAmB;IACnB,6CAAI,CAAA;IACJ,kBAAkB;IAClB,2CAAG,CAAA;IACH,oBAAoB;IACpB,+CAAK,CAAA;IACL,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;AACN,CAAC,EAbW,WAAW,2BAAX,WAAW,QAatB;AAED;;;;GAIG;AACH,IAAY,WASX;AATD,WAAY,WAAW;IACrB,oBAAoB;IACpB,+CAAK,CAAA;IACL,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;AACN,CAAC,EATW,WAAW,2BAAX,WAAW,QAStB","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 { Viewport } from \"../Viewport\";\n\n/** The underlying data types that can be used for uniform variables in screen-space effect shaders.\n * @see [[ScreenSpaceEffectBuilder.addUniform]] to define a uniform variable.\n * @see [[Uniform]] to set the value of a uniform variable.\n * @public\n * @extensions\n */\nexport enum UniformType {\n /** GLSL `bool`. */\n Bool,\n /** GLSL `int`. */\n Int,\n /** GLSL `float`. */\n Float,\n /** GLSL `vec2`. */\n Vec2,\n /** GLSL `vec3`. */\n Vec3,\n /** GLSL `vec4`. */\n Vec4,\n}\n\n/** The underlying data types that can be used for varying variables in screen-space effect shaders.\n * @see [[ScreenSpaceEffectBuilder.addVarying]] to define a varying variable.\n * @public\n * @extensions\n */\nexport enum VaryingType {\n /** GLSL `float`. */\n Float,\n /** GLSL `vec2`. */\n Vec2,\n /** GLSL `vec3`. */\n Vec3,\n /** GLSL `vec4`. */\n Vec4,\n}\n\n/** Represents a uniform variable in a shader program used by a custom screen-space effect, providing methods for setting the current value of the uniform.\n * @see [[UniformParams.bind]] to provide the value of the variable.\n * @see [[ScreenSpaceEffectBuilder.addUniform]] to add a uniform variable to an effect shader.\n * @public\n * @extensions\n */\nexport interface Uniform {\n /** Sets the value to an integer - equivalent to `WebGLRenderingContext.uniform1i`. */\n setUniform1i: (value: number) => void;\n /** Sets the value to a float - equivalent to `WebGLRenderingContext.uniform1f`. */\n setUniform1f: (value: number) => void;\n /** Sets the value to an array of floats - equivalent to `WebGLRenderingContext.uniform1fv`. */\n setUniform1fv: (value: Float32Array | number[]) => void;\n /** Sets the value to an array of integers - equivalent to `WebGLRenderingContext.uniform1iv`. */\n setUniform1iv: (value: Int32Array | number[]) => void;\n /** Sets the value as a vec2, equivalent to `WebGLRenderingContext.uniform2fv`. */\n setUniform2fv: (value: Float32Array | number[]) => void;\n /** Sets the value as a vec3 - equivalent to `WebGLRenderingContext.uniform3fv`. */\n setUniform3fv: (value: Float32Array | number[]) => void;\n /** Sets the value as a vec4 - equivalent to `WebGLRenderingContext.uniform4fv`. */\n setUniform4fv: (value: Float32Array | number[]) => void;\n}\n\n/** Context supplied to [[UniformParams.bind]].\n * @public\n * @extensions\n */\nexport interface UniformContext {\n /** The viewport to which the screen-space effect is to be applied. */\n viewport: Viewport;\n}\n\n/** Parameters used to define a uniform variable for a [[ScreenSpaceEffectBuilder]]'s shader program.\n * @see [[ScreenSpaceEffectBuilder.addUniform]] to add a uniform variable to an effect shader.\n * @public\n * @extensions\n */\nexport interface UniformParams {\n /** The data type of the uniform variable. */\n type: UniformType;\n /** The name of the variable. It must be unique among all uniforms used by the shader program. */\n name: string;\n /** A function that computes the value of the variable and binds it to the shader program each time the effect is rendered. */\n bind: (uniform: Uniform, context: UniformContext) => void;\n}\n\n/** Parameters used to define an array of uniform variables for a [[ScreenSpaceEffectBuilder]]'s shader program.\n * @see [[ScreenSpaceEffectBuilder.addUniformArray]] to add a uniform array to an effect shader.\n * @public\n * @extensions\n */\nexport interface UniformArrayParams extends UniformParams {\n /** The number of elements in the array. */\n length: number;\n}\n\n/** The GLSL implementation of the effect produced by a [[ScreenSpaceEffectBuilder]], to be integrated into a complete shader program. The effect shader code differs slightly from that of an ordinary shader:\n * - Instead of `main`, it should implement `effectMain`.\n * - It can include other functions, variables, etc outside of `effectMain`.\n * - It should omit declarations of uniform and varying variables - these will be generated from those supplied to [[ScreenSpaceEffectBuilder.addUniform]] and [[ScreenSpaceEffectBuilder.addVarying]].\n * The program receives one pre-defined `uniform sampler2D u_diffuse` representing the viewport's rendered image.\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectSource {\n /** The GLSL implementation of the vertex shader. Instead of `main`, it implements `void effectMain(vec4 position)` where `position` is the vertex position in normalized device coordinates ([-1..1]).\n * `effectMain` should compute whatever information is required by the fragment shader. It should not assign to `gl_Position`.\n */\n vertex: string;\n\n /** The GLSL implementation of the fragment shader. Instead of `main`, it implements `vec4 effectMain()` returning the color to be output.\n * `effectMain` should sample `u_diffuse` directly using `TEXTURE()` or `TEXTURE_PROJ()` instead of `texture2D()`, `texture2DProj()`, or `texture()`;\n * or, if [[ScreenSpaceEffectSource.sampleSourcePixel]] is defined, it can use `sampleSourcePixel()` instead.\n * It should not assign to `gl_FragColor`.\n * The alpha component of the output color is ignored as there is nothing with which to blend.\n */\n fragment: string;\n\n /** If the fragment shader shifts pixels from their original locations, then by default element locate will not work, because it expects the pixels produced by an element\n * to remain at their original locations. This can be fixed by supplying the body of a GLSL function `vec4 sampleSourcePixel()` that, as part of the fragment shader,\n * obtains the pixel in the source image corresponding to the pixel that will be output by the shader.\n * For example, if the source pixel is simply specified by a `varying vec2 v_texCoord` computed by the vertex shader, then this property should be defined as `return TEXTURE(u_diffuse, v_texCoord);`.\n * This function will automatically be included in the fragment shader, so it can also be used by `effectMain` when computing the output color.\n * @note `sampleSourcePixel` should not modify the sample in any way - that should be done only in `effectMain`.\n * @note `sampleSourcePixel` should **not** be supplied if the effect does **not** shift pixels as it can negatively impact performance of element locate.\n * @see [FlipImageEffect]($frontend-devtools) or [LensDistortionEffect]($frontend-devtools) for examples of effects that implement this property.\n */\n sampleSourcePixel?: string;\n}\n\n/** Parameters used to create a [[ScreenSpaceEffectBuilder]].\n * @see [[RenderSystem.createScreenSpaceEffectBuilder]].\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectBuilderParams {\n /** The name of the effect. Must be unique among all registered screen-space effects. It is not displayed to the user. */\n name: string;\n /** If true, adds a `vec2 textureCoordFromPosition(vec4 position)` function to the vertex shader that computes a UV coordinate based on the vertex's position. */\n textureCoordFromPosition?: boolean;\n\n /** The GLSL implementation of the effect.\n * @see [[ScreenSpaceEffectSource]] for details.\n */\n source: ScreenSpaceEffectSource;\n}\n\n/** Context passed to [[ScreenSpaceEffectBuilder.shouldApply]].\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectContext {\n /** The viewport to which the screen-space effect is to be applied. */\n viewport: Viewport;\n}\n\n/** An interface used to construct and register with the [[IModelApp.renderSystem]] a custom screen-space effect.\n * Screen-space effects take as input the image rendered by a Viewport, as a WebGL texture, and execute a shader program to modify the image.\n * Any number of screen-space effects can be registered, but each must have a unique name. Each Viewport has an ordered list of effects to be applied to it.\n *\n * Each time a Viewport's contents are rendered, the [[RenderSystem]] does the following:\n * - Render Viewport's contents to a texture.\n * - For each effect name in [[Viewport.screenSpaceEffects]]:\n * - Look up the corresponding registered effect.\n * - If `shouldApply is defined and returns false, skip the effect. Otherwise:\n * - For each [[Uniform]] defined by the effect, invoke its `bind` property to set its current value.\n * - Bind the Viewport's rendered image to the uniform `u_diffuse`.\n * - Execute the effect shader to alter the viewport's image.\n * In this way, a series of multiple effects can be chained together, each consuming as input the image output by the previous effect.\n *\n * A screen-space effect that **moves** pixels from their original locations rather than simply recoloring them may cause some tools to behave unexpectedly:\n * - Element locate will only work correctly if [[ScreenSpaceEffectBuilderParams.sampleSourcePixel]] is properly defined.\n * - Tools like the measurement tool that require snapping to element geometry will not snap correctly since the element geometry has been distorted by the shader.\n * @see [Screen-space Effects Sample](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=screen-space-effects-sample&imodel=Villa) for an interactive demonstration.\n * @see [[RenderSystem.createScreenSpaceEffectBuilder]] to create and register a new effect.\n * @see [[ScreenSpaceEffectBuilderParams]] to define the initial state of the builder.\n * @see [[Viewport.screenSpaceEffects]], [[Viewport.addScreenSpaceEffect]], and [[Viewport.removeScreenSpaceEffects]] to change the effects applied to a viewport.\n * @see [LensDistortionEffect]($frontend-devtools) for an simulation of the fish-eye distortion produced by real-world cameras with very wide fields of view.\n * @see [SaturationEffect]($frontend-devtools) for an example of an effect that adjusts the saturation of the original image.\n * @see [VignetteEffect]($frontend-devtools) for an example of an effect that applies [vignetting](https://en.wikipedia.org/wiki/Vignetting) to the original image.\n * @see [ConvolutionEffect]($frontend-devtools) for examples of effects like blur, sharpen, and emboss.\n * @see [FlipImageEffect]($frontend-devtools) for a very simple example of an effect that shifts pixels from their original locations.\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectBuilder {\n /** True if the shader will be used with a WebGL 2 rendering context.\n * @deprecated in 4.x. WebGL 1 is no longer supported, so this property is always `true`.\n */\n readonly isWebGL2: boolean;\n\n /** Add a uniform variable to the shader program. */\n addUniform: (params: UniformParams) => void;\n\n /** Add an array of uniform variables to the shader program. */\n addUniformArray: (params: UniformArrayParams) => void;\n\n /** Add a varying variable to the shader program. */\n addVarying: (name: string, type: VaryingType) => void;\n\n /** If defined, a function invoked each frame before the effect is applied. If it returns false, the effect will be skipped for that frame. */\n shouldApply?: (context: ScreenSpaceEffectContext) => boolean;\n\n /** Finishes construction of the effect and, if successful, registers it with [[IModelApp.renderSystem]].\n * @throws Error if the shader fails to compile and link, or an effect with the same name has already been registered.\n * @note After `finish` is called, no other properties or methods of the builder will have any effect.\n */\n finish: () => void;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ScreenSpaceEffectBuilder.js","sourceRoot":"","sources":["../../../src/render/ScreenSpaceEffectBuilder.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH;;;;;GAKG;AACH,IAAY,WAaX;AAbD,WAAY,WAAW;IACrB,mBAAmB;IACnB,6CAAI,CAAA;IACJ,kBAAkB;IAClB,2CAAG,CAAA;IACH,oBAAoB;IACpB,+CAAK,CAAA;IACL,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;AACN,CAAC,EAbW,WAAW,2BAAX,WAAW,QAatB;AAED;;;;GAIG;AACH,IAAY,WASX;AATD,WAAY,WAAW;IACrB,oBAAoB;IACpB,+CAAK,CAAA;IACL,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;AACN,CAAC,EATW,WAAW,2BAAX,WAAW,QAStB","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 { Viewport } from \"../Viewport\";\n\n/** The underlying data types that can be used for uniform variables in screen-space effect shaders.\n * @see [[ScreenSpaceEffectBuilder.addUniform]] to define a uniform variable.\n * @see [[Uniform]] to set the value of a uniform variable.\n * @public\n * @extensions\n */\nexport enum UniformType {\n /** GLSL `bool`. */\n Bool,\n /** GLSL `int`. */\n Int,\n /** GLSL `float`. */\n Float,\n /** GLSL `vec2`. */\n Vec2,\n /** GLSL `vec3`. */\n Vec3,\n /** GLSL `vec4`. */\n Vec4,\n}\n\n/** The underlying data types that can be used for varying variables in screen-space effect shaders.\n * @see [[ScreenSpaceEffectBuilder.addVarying]] to define a varying variable.\n * @public\n * @extensions\n */\nexport enum VaryingType {\n /** GLSL `float`. */\n Float,\n /** GLSL `vec2`. */\n Vec2,\n /** GLSL `vec3`. */\n Vec3,\n /** GLSL `vec4`. */\n Vec4,\n}\n\n/** Represents a uniform variable in a shader program used by a custom screen-space effect, providing methods for setting the current value of the uniform.\n * @see [[UniformParams.bind]] to provide the value of the variable.\n * @see [[ScreenSpaceEffectBuilder.addUniform]] to add a uniform variable to an effect shader.\n * @public\n * @extensions\n */\nexport interface Uniform {\n /** Sets the value to an integer - equivalent to `WebGLRenderingContext.uniform1i`. */\n setUniform1i: (value: number) => void;\n /** Sets the value to a float - equivalent to `WebGLRenderingContext.uniform1f`. */\n setUniform1f: (value: number) => void;\n /** Sets the value to an array of floats - equivalent to `WebGLRenderingContext.uniform1fv`. */\n setUniform1fv: (value: Float32Array | number[]) => void;\n /** Sets the value to an array of integers - equivalent to `WebGLRenderingContext.uniform1iv`. */\n setUniform1iv: (value: Int32Array | number[]) => void;\n /** Sets the value as a vec2, equivalent to `WebGLRenderingContext.uniform2fv`. */\n setUniform2fv: (value: Float32Array | number[]) => void;\n /** Sets the value as a vec3 - equivalent to `WebGLRenderingContext.uniform3fv`. */\n setUniform3fv: (value: Float32Array | number[]) => void;\n /** Sets the value as a vec4 - equivalent to `WebGLRenderingContext.uniform4fv`. */\n setUniform4fv: (value: Float32Array | number[]) => void;\n}\n\n/** Context supplied to [[UniformParams.bind]].\n * @public\n * @extensions\n */\nexport interface UniformContext {\n /** The viewport to which the screen-space effect is to be applied. */\n viewport: Viewport;\n}\n\n/** Parameters used to define a uniform variable for a [[ScreenSpaceEffectBuilder]]'s shader program.\n * @see [[ScreenSpaceEffectBuilder.addUniform]] to add a uniform variable to an effect shader.\n * @public\n * @extensions\n */\nexport interface UniformParams {\n /** The data type of the uniform variable. */\n type: UniformType;\n /** The name of the variable. It must be unique among all uniforms used by the shader program. */\n name: string;\n /** A function that computes the value of the variable and binds it to the shader program each time the effect is rendered. */\n bind: (uniform: Uniform, context: UniformContext) => void;\n}\n\n/** Parameters used to define an array of uniform variables for a [[ScreenSpaceEffectBuilder]]'s shader program.\n * @see [[ScreenSpaceEffectBuilder.addUniformArray]] to add a uniform array to an effect shader.\n * @public\n * @extensions\n */\nexport interface UniformArrayParams extends UniformParams {\n /** The number of elements in the array. */\n length: number;\n}\n\n/** The GLSL implementation of the effect produced by a [[ScreenSpaceEffectBuilder]], to be integrated into a complete shader program. The effect shader code differs slightly from that of an ordinary shader:\n * - Instead of `main`, it should implement `effectMain`.\n * - It can include other functions, variables, etc outside of `effectMain`.\n * - It should omit declarations of uniform and varying variables - these will be generated from those supplied to [[ScreenSpaceEffectBuilder.addUniform]] and [[ScreenSpaceEffectBuilder.addVarying]].\n * The program receives one pre-defined `uniform sampler2D u_diffuse` representing the viewport's rendered image.\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectSource {\n /** The GLSL implementation of the vertex shader. Instead of `main`, it implements `void effectMain(vec4 position)` where `position` is the vertex position in normalized device coordinates ([-1..1]).\n * `effectMain` should compute whatever information is required by the fragment shader. It should not assign to `gl_Position`.\n */\n vertex: string;\n\n /** The GLSL implementation of the fragment shader. Instead of `main`, it implements `vec4 effectMain()` returning the color to be output.\n * `effectMain` should sample `u_diffuse` directly using `TEXTURE()` or `TEXTURE_PROJ()` instead of `texture2D()`, `texture2DProj()`, or `texture()`;\n * or, if [[ScreenSpaceEffectSource.sampleSourcePixel]] is defined, it can use `sampleSourcePixel()` instead.\n * It should not assign to `gl_FragColor`.\n * The alpha component of the output color is ignored as there is nothing with which to blend.\n */\n fragment: string;\n\n /** If the fragment shader shifts pixels from their original locations, then by default element locate will not work, because it expects the pixels produced by an element\n * to remain at their original locations. This can be fixed by supplying the body of a GLSL function `vec4 sampleSourcePixel()` that, as part of the fragment shader,\n * obtains the pixel in the source image corresponding to the pixel that will be output by the shader.\n * For example, if the source pixel is simply specified by a `varying vec2 v_texCoord` computed by the vertex shader, then this property should be defined as `return TEXTURE(u_diffuse, v_texCoord);`.\n * This function will automatically be included in the fragment shader, so it can also be used by `effectMain` when computing the output color.\n * @note `sampleSourcePixel` should not modify the sample in any way - that should be done only in `effectMain`.\n * @note `sampleSourcePixel` should **not** be supplied if the effect does **not** shift pixels as it can negatively impact performance of element locate.\n * @see [FlipImageEffect]($frontend-devtools) or [LensDistortionEffect]($frontend-devtools) for examples of effects that implement this property.\n */\n sampleSourcePixel?: string;\n}\n\n/** Parameters used to create a [[ScreenSpaceEffectBuilder]].\n * @see [[RenderSystem.createScreenSpaceEffectBuilder]].\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectBuilderParams {\n /** The name of the effect. Must be unique among all registered screen-space effects. It is not displayed to the user. */\n name: string;\n /** If true, adds a `vec2 textureCoordFromPosition(vec4 position)` function to the vertex shader that computes a UV coordinate based on the vertex's position. */\n textureCoordFromPosition?: boolean;\n\n /** The GLSL implementation of the effect.\n * @see [[ScreenSpaceEffectSource]] for details.\n */\n source: ScreenSpaceEffectSource;\n}\n\n/** Context passed to [[ScreenSpaceEffectBuilder.shouldApply]].\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectContext {\n /** The viewport to which the screen-space effect is to be applied. */\n viewport: Viewport;\n}\n\n/** An interface used to construct and register with the [[IModelApp.renderSystem]] a custom screen-space effect.\n * Screen-space effects take as input the image rendered by a Viewport, as a WebGL texture, and execute a shader program to modify the image.\n * Any number of screen-space effects can be registered, but each must have a unique name. Each Viewport has an ordered list of effects to be applied to it.\n *\n * Each time a Viewport's contents are rendered, the [[RenderSystem]] does the following:\n * - Render Viewport's contents to a texture.\n * - For each effect name in [[Viewport.screenSpaceEffects]]:\n * - Look up the corresponding registered effect.\n * - If `shouldApply is defined and returns false, skip the effect. Otherwise:\n * - For each [[Uniform]] defined by the effect, invoke its `bind` property to set its current value.\n * - Bind the Viewport's rendered image to the uniform `u_diffuse`.\n * - Execute the effect shader to alter the viewport's image.\n * In this way, a series of multiple effects can be chained together, each consuming as input the image output by the previous effect.\n *\n * A screen-space effect that **moves** pixels from their original locations rather than simply recoloring them may cause some tools to behave unexpectedly:\n * - Element locate will only work correctly if [[ScreenSpaceEffectBuilderParams.sampleSourcePixel]] is properly defined.\n * - Tools like the measurement tool that require snapping to element geometry will not snap correctly since the element geometry has been distorted by the shader.\n * @see [Screen-space Effects Sample](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=screen-space-effects-sample&imodel=Villa) for an interactive demonstration.\n * @see [[RenderSystem.createScreenSpaceEffectBuilder]] to create and register a new effect.\n * @see [[ScreenSpaceEffectBuilderParams]] to define the initial state of the builder.\n * @see [[Viewport.screenSpaceEffects]], [[Viewport.addScreenSpaceEffect]], and [[Viewport.removeScreenSpaceEffects]] to change the effects applied to a viewport.\n * @see [LensDistortionEffect]($frontend-devtools) for an simulation of the fish-eye distortion produced by real-world cameras with very wide fields of view.\n * @see [SaturationEffect]($frontend-devtools) for an example of an effect that adjusts the saturation of the original image.\n * @see [VignetteEffect]($frontend-devtools) for an example of an effect that applies [vignetting](https://en.wikipedia.org/wiki/Vignetting) to the original image.\n * @see [ConvolutionEffect]($frontend-devtools) for examples of effects like blur, sharpen, and emboss.\n * @see [FlipImageEffect]($frontend-devtools) for a very simple example of an effect that shifts pixels from their original locations.\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectBuilder {\n /** True if the shader will be used with a WebGL 2 rendering context.\n * @deprecated in 4.x - will not be removed until after 2026-06-13. WebGL 1 is no longer supported, so this property is always `true`.\n */\n readonly isWebGL2: boolean;\n\n /** Add a uniform variable to the shader program. */\n addUniform: (params: UniformParams) => void;\n\n /** Add an array of uniform variables to the shader program. */\n addUniformArray: (params: UniformArrayParams) => void;\n\n /** Add a varying variable to the shader program. */\n addVarying: (name: string, type: VaryingType) => void;\n\n /** If defined, a function invoked each frame before the effect is applied. If it returns false, the effect will be skipped for that frame. */\n shouldApply?: (context: ScreenSpaceEffectContext) => boolean;\n\n /** Finishes construction of the effect and, if successful, registers it with [[IModelApp.renderSystem]].\n * @throws Error if the shader fails to compile and link, or an effect with the same name has already been registered.\n * @note After `finish` is called, no other properties or methods of the builder will have any effect.\n */\n finish: () => void;\n}\n"]}
|
|
@@ -26,7 +26,7 @@ export declare function request(url: string, responseType: "json", options?: Req
|
|
|
26
26
|
export declare function request(url: string, responseType: "text", options?: RequestOptions): Promise<string>;
|
|
27
27
|
/**
|
|
28
28
|
* @internal
|
|
29
|
-
* @deprecated in 4.0. Use [[DownloadProgressInfo]].
|
|
29
|
+
* @deprecated in 4.0 - will not be removed until after 2026-06-13. Use [[DownloadProgressInfo]].
|
|
30
30
|
*/
|
|
31
31
|
export interface ProgressInfo {
|
|
32
32
|
percent?: number;
|
|
@@ -35,7 +35,7 @@ export interface ProgressInfo {
|
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* @internal
|
|
38
|
-
* @deprecated in 4.0. Use [[OnDownloadProgress]].
|
|
38
|
+
* @deprecated in 4.0 - will not be removed until after 2026-06-13. Use [[OnDownloadProgress]].
|
|
39
39
|
*/
|
|
40
40
|
export type ProgressCallback = (progress: ProgressInfo) => void;
|
|
41
41
|
//# sourceMappingURL=Request.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Request.js","sourceRoot":"","sources":["../../../src/request/Request.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AA2C/F,0BA+BC;AAlED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,KAAK;IAGjC;IACA;IAFT,YACS,MAAc,EACd,YAAqB;QAE5B,IAAI,OAAO,GAAG,8BAA8B,MAAM,GAAG,CAAC;QACtD,IAAI,YAAY;YACd,OAAO,IAAI,mBAAmB,YAAY,EAAE,CAAC;QAE/C,KAAK,CAAC,OAAO,CAAC,CAAC;QAPR,WAAM,GAAN,MAAM,CAAQ;QACd,iBAAY,GAAZ,YAAY,CAAS;IAO9B,CAAC;CACF;AAZD,8CAYC;AAmBD,gBAAgB;AACT,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,YAA6C,EAAE,OAAwB;IAChH,MAAM,OAAO,GAAQ;QACnB,GAAG,OAAO,EAAE,OAAO;KACpB,CAAC;IAEF,IAAI,OAAO,EAAE,IAAI;QACf,OAAO,CAAC,aAAa,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;IAElG,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,OAAO,EAAE,OAAO;QAClB,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAExD,MAAM,YAAY,GAAgB;QAChC,OAAO;QACP,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC;IAE3E,IAAI,CAAC,QAAQ,CAAC,EAAE;QACd,MAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAEtE,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,aAAa;YAChB,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;QAChC,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,SAAkC,EAAE,gBAAwB;IACxF,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YACvD,MAAM,KAAK,CAAC;QAEd,IAAI,gBAAgB,KAAK,CAAC;YACxB,MAAM,KAAK,CAAC;QAEd,OAAO,cAAc,CAAC,SAAS,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACvD,CAAC;AACH,CAAC","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\n/** @internal */\nexport interface RequestBasicCredentials { // axios: AxiosBasicCredentials\n user: string; // axios: username\n password: string; // axios: password\n}\n\n/** Error object that's thrown if the status is *not* in the range of 200-299 (inclusive).\n * @internal\n */\nexport class HttpResponseError extends Error {\n\n public constructor(\n public status: number,\n public responseText?: string,\n ) {\n let message = `HTTP response status code: ${status}.`;\n if (responseText)\n message += ` Response body: ${responseText}`;\n\n super(message);\n }\n}\n\n/** @internal */\nexport interface RequestOptions {\n retryCount?: number;\n headers?: any;\n timeout?: number;\n auth?: RequestBasicCredentials;\n}\n\n/** @internal */\nexport async function request(url: string, responseType: \"arraybuffer\", options?: RequestOptions): Promise<ArrayBuffer>;\n\n/** @internal */\nexport async function request(url: string, responseType: \"json\", options?: RequestOptions): Promise<any>;\n\n/** @internal */\nexport async function request(url: string, responseType: \"text\", options?: RequestOptions): Promise<string>;\n\n/** @internal */\nexport async function request(url: string, responseType: \"arraybuffer\" | \"json\" | \"text\", options?: RequestOptions): Promise<any> {\n const headers: any = {\n ...options?.headers,\n };\n\n if (options?.auth)\n headers.authorization = `Basic ${window.btoa(`${options.auth.user}:${options.auth.password}`)}`;\n\n const controller = new AbortController();\n if (options?.timeout)\n setTimeout(() => controller.abort(), options.timeout);\n\n const fetchOptions: RequestInit = {\n headers,\n signal: controller.signal,\n };\n\n const fetchFunc = async () => fetch(url, fetchOptions);\n const response = await fetchWithRetry(fetchFunc, options?.retryCount ?? 4);\n\n if (!response.ok)\n throw new HttpResponseError(response.status, await response.text());\n\n switch (responseType) {\n case \"arraybuffer\":\n return response.arrayBuffer();\n case \"json\":\n return response.json();\n case \"text\":\n return response.text();\n }\n}\n\nasync function fetchWithRetry(fetchFunc: () => Promise<Response>, remainingRetries: number): Promise<Response> {\n try {\n return await fetchFunc();\n } catch (error: unknown) {\n if (error instanceof Error && error.name === \"AbortError\")\n throw error;\n\n if (remainingRetries === 0)\n throw error;\n\n return fetchWithRetry(fetchFunc, --remainingRetries);\n }\n}\n\n/**\n * @internal\n * @deprecated in 4.0. Use [[DownloadProgressInfo]].\n */\nexport interface ProgressInfo {\n percent?: number;\n total?: number;\n loaded: number;\n}\n\n/**\n * @internal\n * @deprecated in 4.0. Use [[OnDownloadProgress]].\n */\nexport type ProgressCallback = (progress: ProgressInfo) => void;\n"]}
|
|
1
|
+
{"version":3,"file":"Request.js","sourceRoot":"","sources":["../../../src/request/Request.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AA2C/F,0BA+BC;AAlED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,KAAK;IAGjC;IACA;IAFT,YACS,MAAc,EACd,YAAqB;QAE5B,IAAI,OAAO,GAAG,8BAA8B,MAAM,GAAG,CAAC;QACtD,IAAI,YAAY;YACd,OAAO,IAAI,mBAAmB,YAAY,EAAE,CAAC;QAE/C,KAAK,CAAC,OAAO,CAAC,CAAC;QAPR,WAAM,GAAN,MAAM,CAAQ;QACd,iBAAY,GAAZ,YAAY,CAAS;IAO9B,CAAC;CACF;AAZD,8CAYC;AAmBD,gBAAgB;AACT,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,YAA6C,EAAE,OAAwB;IAChH,MAAM,OAAO,GAAQ;QACnB,GAAG,OAAO,EAAE,OAAO;KACpB,CAAC;IAEF,IAAI,OAAO,EAAE,IAAI;QACf,OAAO,CAAC,aAAa,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;IAElG,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,OAAO,EAAE,OAAO;QAClB,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAExD,MAAM,YAAY,GAAgB;QAChC,OAAO;QACP,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC;IAE3E,IAAI,CAAC,QAAQ,CAAC,EAAE;QACd,MAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAEtE,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,aAAa;YAChB,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;QAChC,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,SAAkC,EAAE,gBAAwB;IACxF,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YACvD,MAAM,KAAK,CAAC;QAEd,IAAI,gBAAgB,KAAK,CAAC;YACxB,MAAM,KAAK,CAAC;QAEd,OAAO,cAAc,CAAC,SAAS,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACvD,CAAC;AACH,CAAC","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\n/** @internal */\nexport interface RequestBasicCredentials { // axios: AxiosBasicCredentials\n user: string; // axios: username\n password: string; // axios: password\n}\n\n/** Error object that's thrown if the status is *not* in the range of 200-299 (inclusive).\n * @internal\n */\nexport class HttpResponseError extends Error {\n\n public constructor(\n public status: number,\n public responseText?: string,\n ) {\n let message = `HTTP response status code: ${status}.`;\n if (responseText)\n message += ` Response body: ${responseText}`;\n\n super(message);\n }\n}\n\n/** @internal */\nexport interface RequestOptions {\n retryCount?: number;\n headers?: any;\n timeout?: number;\n auth?: RequestBasicCredentials;\n}\n\n/** @internal */\nexport async function request(url: string, responseType: \"arraybuffer\", options?: RequestOptions): Promise<ArrayBuffer>;\n\n/** @internal */\nexport async function request(url: string, responseType: \"json\", options?: RequestOptions): Promise<any>;\n\n/** @internal */\nexport async function request(url: string, responseType: \"text\", options?: RequestOptions): Promise<string>;\n\n/** @internal */\nexport async function request(url: string, responseType: \"arraybuffer\" | \"json\" | \"text\", options?: RequestOptions): Promise<any> {\n const headers: any = {\n ...options?.headers,\n };\n\n if (options?.auth)\n headers.authorization = `Basic ${window.btoa(`${options.auth.user}:${options.auth.password}`)}`;\n\n const controller = new AbortController();\n if (options?.timeout)\n setTimeout(() => controller.abort(), options.timeout);\n\n const fetchOptions: RequestInit = {\n headers,\n signal: controller.signal,\n };\n\n const fetchFunc = async () => fetch(url, fetchOptions);\n const response = await fetchWithRetry(fetchFunc, options?.retryCount ?? 4);\n\n if (!response.ok)\n throw new HttpResponseError(response.status, await response.text());\n\n switch (responseType) {\n case \"arraybuffer\":\n return response.arrayBuffer();\n case \"json\":\n return response.json();\n case \"text\":\n return response.text();\n }\n}\n\nasync function fetchWithRetry(fetchFunc: () => Promise<Response>, remainingRetries: number): Promise<Response> {\n try {\n return await fetchFunc();\n } catch (error: unknown) {\n if (error instanceof Error && error.name === \"AbortError\")\n throw error;\n\n if (remainingRetries === 0)\n throw error;\n\n return fetchWithRetry(fetchFunc, --remainingRetries);\n }\n}\n\n/**\n * @internal\n * @deprecated in 4.0 - will not be removed until after 2026-06-13. Use [[DownloadProgressInfo]].\n */\nexport interface ProgressInfo {\n percent?: number;\n total?: number;\n loaded: number;\n}\n\n/**\n * @internal\n * @deprecated in 4.0 - will not be removed until after 2026-06-13. Use [[OnDownloadProgress]].\n */\nexport type ProgressCallback = (progress: ProgressInfo) => void;\n"]}
|
package/lib/cjs/tile/Tile.d.ts
CHANGED
|
@@ -98,7 +98,7 @@ export declare abstract class Tile {
|
|
|
98
98
|
disposeContents(): void;
|
|
99
99
|
/** Dispose of resources held by this tile and all of its children, marking it and all of its children as "abandoned". */
|
|
100
100
|
[Symbol.dispose](): void;
|
|
101
|
-
/** @deprecated in 5.0 Use [Symbol.dispose] instead. */
|
|
101
|
+
/** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [Symbol.dispose] instead. */
|
|
102
102
|
dispose(): void;
|
|
103
103
|
/** This tile's child tiles, if they exist and are loaded. The children are fully contained within this tile's volume and provide higher-resolution graphics than this tile.
|
|
104
104
|
* @see [[loadChildren]]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tile.d.ts","sourceRoot":"","sources":["../../../src/tile/Tile.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Tile.d.ts","sourceRoot":"","sources":["../../../src/tile/Tile.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/tile/Tile.js
CHANGED
|
@@ -134,7 +134,7 @@ class Tile {
|
|
|
134
134
|
this._state = 5 /* TileState.Abandoned */;
|
|
135
135
|
this.disposeChildren();
|
|
136
136
|
}
|
|
137
|
-
/** @deprecated in 5.0 Use [Symbol.dispose] instead. */
|
|
137
|
+
/** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [Symbol.dispose] instead. */
|
|
138
138
|
dispose() {
|
|
139
139
|
this[Symbol.dispose]();
|
|
140
140
|
}
|
package/lib/cjs/tile/Tile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tile.js","sourceRoot":"","sources":["../../../src/tile/Tile.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, dispose } from \"@itwin/core-bentley\";\nimport { Arc3d, ClipPlaneContainment, Matrix4d, Point2d, Point3d, Point4d, Range3d, Transform, Vector3d } from \"@itwin/core-geometry\";\nimport { BoundingSphere, ColorDef, ElementAlignedBox3d, Frustum, FrustumPlanes } from \"@itwin/core-common\";\nimport { IModelApp } from \"../IModelApp\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport { GraphicBuilder } from \"../render/GraphicBuilder\";\nimport { RenderGraphic } from \"../render/RenderGraphic\";\nimport { RenderMemory } from \"../render/RenderMemory\";\nimport { RenderSystem } from \"../render/RenderSystem\";\nimport { SceneContext } from \"../ViewContext\";\nimport { Viewport } from \"../Viewport\";\nimport {\n LRUTileListNode, TileContent, TileDrawArgs, TileParams, TileRequest, TileRequestChannel, TileTree, TileTreeLoadStatus, TileUsageMarker, TileUser, TileUserIdSet,\n} from \"./internal\";\n\n// cSpell:ignore undisplayable bitfield\n\nconst scratchRange2d = [new Point2d(), new Point2d(), new Point2d(), new Point2d()];\n\n/** @internal */\nexport function addRangeGraphic(builder: GraphicBuilder, range: Range3d, is2d: boolean): void {\n if (!is2d) {\n builder.addRangeBox(range);\n return;\n }\n\n // 3d box is useless in 2d and will be clipped by near/far planes anyway\n const pts = scratchRange2d;\n pts[0].set(range.low.x, range.low.y);\n pts[1].set(range.high.x, range.low.y);\n pts[2].set(range.high.x, range.high.y);\n pts[3].set(range.low.x, range.high.y);\n builder.addLineString2d(pts, 0);\n}\n\nconst scratchWorldFrustum = new Frustum();\nconst scratchRootFrustum = new Frustum();\nconst scratchWorldSphere = new BoundingSphere();\nconst scratchPoint4d = Point4d.createZero();\nconst scratchFrustum = new Frustum();\n\n/** A 3d tile within a [[TileTree]].\n *\n * A tile represents the contents of some sub-volume of the tile tree's volume. It may produce graphics representing those contents, or may have no graphics.\n * A tile can have child tiles that further sub-divide its own volume, providing higher-resolution representations of its contents. A tile that has no children is\n * referred to as a \"leaf\" of the tile tree. A non-leaf tile's children are produced when they are needed, and discarded when no longer needed.\n * A tile's contents can be discarded at any time by [[TileAdmin]] when GPU memory needs to be reclaimed; or when the Tile itself is discarded via\n * [[Tile.dispose]].\n *\n * Several public [[Tile]] methods carry a warning that they should **not** be overridden by subclasses; typically a protected method exists that can be overridden instead.\n * For example, [[loadChildren]] should not be overridden, but it calls [[_loadChildren]], which must be overridden because it is abstract.\n * @public\n * @extensions\n */\nexport abstract class Tile {\n private _state: TileState = TileState.NotReady;\n private _children: Tile[] | undefined;\n private _rangeGraphic?: RenderGraphic;\n private _rangeGraphicType: TileBoundingBoxes = TileBoundingBoxes.None;\n /** This tile's renderable content. */\n protected _graphic?: RenderGraphic;\n /** True if this tile ever had graphics loaded. Used to determine when a tile's graphics were later freed to conserve memory. */\n protected _hadGraphics = false;\n /** Uniquely identifies this tile's content in the context of its tree. */\n protected _contentId: string;\n /** The current loading state of this tile's children. Child tiles are loaded on-demand, potentially asynchronously. */\n protected _childrenLoadStatus: TileTreeLoadStatus;\n /** @internal */\n protected _request?: TileRequest;\n /** @internal */\n protected _isLeaf: boolean;\n /** A volume no larger than this tile's `range`, and optionally more tightly encompassing its contents, used for more accurate culling.\n * [[contentRange]] uses this range if defined; otherwise it uses [[range]].\n */\n protected _contentRange?: ElementAlignedBox3d;\n /** The maximum size in pixels this tile can be drawn. If the size of the tile on screen exceeds this maximum, a higher-resolution tile should be drawn in its place. */\n protected _maximumSize: number;\n /** The [[TileTree]] to which this tile belongs. */\n public readonly tree: TileTree;\n /** The volume of space occupied by this tile. Its children are guaranteed to also be contained within this volume. */\n public readonly range: ElementAlignedBox3d;\n /** The parent of this tile, or undefined if it is the [[TileTree]]'s root tile. */\n public readonly parent: Tile | undefined;\n /** The depth of this tile within its [[TileTree]]. The root tile has a depth of zero. */\n public readonly depth: number;\n /** The bounding sphere for this tile. */\n public readonly boundingSphere: BoundingSphere;\n /** The point at the center of this tile's volume. */\n public get center(): Point3d { return this.boundingSphere.center; }\n /** The radius of a sphere fully encompassing this tile's volume - used for culling. */\n public get radius(): number { return this.boundingSphere.radius; }\n /** Tracks the usage of this tile. After a period of disuse, the tile may be [[prune]]d to free up memory. */\n public readonly usageMarker = new TileUsageMarker();\n\n /** Exclusively for use by LRUTileList. @internal */\n public previous?: LRUTileListNode;\n /** Exclusively for use by LRUTileList. @internal */\n public next?: LRUTileListNode;\n /** Exclusively for use by LRUTileList. @internal */\n public bytesUsed = 0;\n /** Exclusively for use by LRUTileList. @internal */\n public tileUserIds?: TileUserIdSet;\n\n /** Load this tile's children, possibly asynchronously. Pass them to `resolve`, or an error to `reject`. */\n protected abstract _loadChildren(resolve: (children: Tile[] | undefined) => void, reject: (error: Error) => void): void;\n\n /** Return the channel via which this tile's content should be requested.\n * @note The channel *must* be registered with `IModelApp.tileAdmin.channels`.\n * @see [[TileRequestChannels.getForHttp]] to create a channel that requests content over HTTP.\n * @see [[TileAdmin.channels]].\n * @public\n */\n public abstract get channel(): TileRequestChannel;\n\n /** Return a Promise that resolves to the raw data representing this tile's content. */\n public abstract requestContent(isCanceled: () => boolean): Promise<TileRequest.Response>;\n\n /** Return a Promise that deserializes this tile's content from raw format produced by [[requestContent]]. */\n public abstract readContent(data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<TileContent>;\n\n /** Constructor */\n protected constructor(params: TileParams, tree: TileTree) {\n this.tree = tree;\n this.parent = params.parent;\n this.depth = undefined !== this.parent ? this.parent.depth + 1 : 0;\n this.range = params.range;\n this._maximumSize = params.maximumSize;\n this._contentRange = params.contentRange;\n this._contentId = params.contentId;\n\n const center = this.range.low.interpolate(0.5, this.range.high);\n const radius = 0.5 * this.range.low.distance(this.range.high);\n this.boundingSphere = new BoundingSphere(center, radius);\n\n if (params.maximumSize <= 0)\n this.setIsReady();\n\n this._isLeaf = true === params.isLeaf;\n this._childrenLoadStatus = (undefined === tree.maxDepth || this.depth < tree.maxDepth) ? TileTreeLoadStatus.NotLoaded : TileTreeLoadStatus.Loaded;\n }\n\n /** Free memory-consuming resources owned by this tile to reduce memory pressure.\n * By default, this calls [[disposeContents]]. Problematic subclasses (MapTile, ImageryMapTile) may opt out for now by overriding this method to do nothing.\n * That option may be removed in the future.\n * @alpha\n */\n public freeMemory(): void {\n this.disposeContents();\n }\n\n /** Dispose of resources held by this tile. */\n public disposeContents(): void {\n this._state = TileState.NotReady;\n this._graphic = dispose(this._graphic);\n this._rangeGraphic = dispose(this._rangeGraphic);\n this._rangeGraphicType = TileBoundingBoxes.None;\n IModelApp.tileAdmin.onTileContentDisposed(this);\n }\n\n /** Dispose of resources held by this tile and all of its children, marking it and all of its children as \"abandoned\". */\n public [Symbol.dispose](): void {\n this.disposeContents();\n this._state = TileState.Abandoned;\n this.disposeChildren();\n }\n\n /** @deprecated in 5.0 Use [Symbol.dispose] instead. */\n public dispose() {\n this[Symbol.dispose]();\n }\n\n /** This tile's child tiles, if they exist and are loaded. The children are fully contained within this tile's volume and provide higher-resolution graphics than this tile.\n * @see [[loadChildren]]\n */\n public get children(): Tile[] | undefined { return this._children; }\n /** The [[IModelConnection]] to which this tile belongs. */\n public get iModel(): IModelConnection { return this.tree.iModel; }\n /** Uniquely identifies this tile's content. */\n public get contentId(): string { return this._contentId; }\n\n /** True if this tile's content is currently being loaded. */\n public get isLoading(): boolean { return TileLoadStatus.Loading === this.loadStatus; }\n /** True if a request for this tile's content has been enqueued. */\n public get isQueued(): boolean { return TileLoadStatus.Queued === this.loadStatus; }\n /** True if an attempt to load this tile's content failed. */\n public get isNotFound(): boolean { return TileLoadStatus.NotFound === this.loadStatus; }\n /** True if this tile's content has been loaded and is ready to be drawn. */\n public get isReady(): boolean { return TileLoadStatus.Ready === this.loadStatus; }\n\n /** Indicates the tile should not be selected for display because it is out of the range of LODs supported by the tile provider.\n * @see [[ImageryMapTile.isOutOfLodRange]].\n * @alpha\n */\n public get isOutOfLodRange(): boolean { return false; }\n\n /** @public */\n public setNotFound(): void {\n this._state = TileState.NotFound;\n }\n\n /** @public */\n public setIsReady(): void {\n if (this.hasGraphics)\n this._hadGraphics = true;\n\n this._state = TileState.Ready;\n IModelApp.tileAdmin.onTileContentLoaded(this);\n }\n\n /** @public */\n public setLeaf(): void {\n // Don't potentially re-request the children later.\n this.disposeChildren();\n this._isLeaf = true;\n this._childrenLoadStatus = TileTreeLoadStatus.Loaded;\n }\n\n /** True if this tile has no child tiles. */\n public get isLeaf(): boolean { return this._isLeaf; }\n /** @internal */\n public get isEmpty(): boolean { return this.isReady && !this.hasGraphics && this.isLeaf; }\n /** @internal */\n public get isDisplayable(): boolean { return 0 < this.maximumSize; }\n /** The maximum size in pixels this tile can be drawn. If the size of the tile on screen exceeds this maximum, a higher-resolution tile should be drawn in its place. */\n public get maximumSize(): number { return this._maximumSize; }\n /** @internal */\n public get isParentDisplayable(): boolean { return undefined !== this.parent && this.parent.isDisplayable; }\n /** @internal */\n public get isUndisplayableRootTile(): boolean { return undefined === this.parent && !this.isDisplayable; }\n\n /** @internal */\n public get request(): TileRequest | undefined { return this._request; }\n public set request(request: TileRequest | undefined) {\n assert(undefined === request || undefined === this.request);\n this._request = request;\n }\n\n /** Compute the load priority of this tile. This determines which tiles' contents are requested first.\n * @param _viewports The subset of `users` that are [[Viewport]]s - typically, these viewports want to display the tile's content.\n * @param users The [[TileUser]]s that are currently using the tile for some purpose, such as displaying its content.\n * @returns The priority.\n * @see [[TileLoadPriority]] for suggested priority values.\n */\n public computeLoadPriority(_viewports: Iterable<Viewport>, _users: Iterable<TileUser>): number {\n return this.depth;\n }\n\n /** True if this tile has graphics ready to draw. */\n public get hasGraphics(): boolean { return undefined !== this._graphic; }\n /** True if this tile has a known volume tightly encompassing its graphics. */\n public get hasContentRange(): boolean { return undefined !== this._contentRange; }\n /** A volume no larger than this tile's `range`, and optionally more tightly encompassing its contents, used for more accurate culling. */\n public get contentRange(): ElementAlignedBox3d {\n if (undefined !== this._contentRange)\n return this._contentRange;\n else if (undefined === this.parent && undefined !== this.tree.contentRange)\n return this.tree.contentRange;\n else\n return this.range;\n }\n\n /** Tile contents are loaded asynchronously on demand. This member tracks the current loading status of this tile's contents. */\n public get loadStatus(): TileLoadStatus {\n switch (this._state) {\n case TileState.NotReady: {\n if (undefined === this.request)\n return TileLoadStatus.NotLoaded;\n else if (TileRequest.State.Loading === this.request.state)\n return TileLoadStatus.Loading;\n\n assert(TileRequest.State.Completed !== this.request.state && TileRequest.State.Failed !== this.request.state); // this.request should be undefined in these cases...\n return TileLoadStatus.Queued;\n }\n case TileState.Ready: {\n assert(undefined === this.request);\n return TileLoadStatus.Ready;\n }\n case TileState.NotFound: {\n assert(undefined === this.request);\n return TileLoadStatus.NotFound;\n }\n default: {\n assert(TileState.Abandoned === this._state);\n return TileLoadStatus.Abandoned;\n }\n }\n }\n\n /** Produce the graphics that should be drawn. */\n public produceGraphics(): RenderGraphic | undefined {\n return this._graphic;\n }\n\n protected setGraphic(graphic: RenderGraphic | undefined): void {\n dispose(this._graphic);\n this._graphic = graphic;\n this.setIsReady();\n }\n\n /** Set this tile's content to the result of [[readContent]] */\n public setContent(content: TileContent): void {\n const { graphic, isLeaf, contentRange } = content;\n this.setGraphic(graphic);\n\n if (undefined !== isLeaf && isLeaf !== this._isLeaf) {\n if (isLeaf)\n this.setLeaf();\n else\n this._isLeaf = false;\n }\n\n if (undefined !== contentRange)\n this._contentRange = contentRange;\n\n this.setIsReady();\n }\n\n /** Disclose any resources owned by this tile, other than its [[RenderGraphic]].\n * @internal\n */\n protected _collectStatistics(_stats: RenderMemory.Statistics): void { }\n\n /** Disclose resources owned by this tile and (by default) all of its child tiles.\n * @note Do not override this method! Override `_collectStatistics` instead.\n * @internal\n */\n public collectStatistics(stats: RenderMemory.Statistics, includeChildren = true): void {\n if (undefined !== this._graphic)\n this._graphic.collectStatistics(stats);\n\n this._collectStatistics(stats);\n if (!includeChildren)\n return;\n\n const children = this.children;\n if (undefined !== children)\n for (const child of children)\n child.collectStatistics(stats);\n }\n\n /** If this tile's child tiles have not yet been requested, enqueue an asynchronous request to load them.\n * @note This function itself is *not* asynchronous - it immediately returns the current loading status.\n * @note Do not override this method - implement [[_loadChildren]].\n */\n protected loadChildren(): TileTreeLoadStatus {\n if (this._childrenLoadStatus !== TileTreeLoadStatus.NotLoaded)\n return this._childrenLoadStatus;\n\n this._childrenLoadStatus = TileTreeLoadStatus.Loading;\n\n this._loadChildren((children: Tile[] | undefined) => {\n this._children = children;\n this._childrenLoadStatus = TileTreeLoadStatus.Loaded;\n\n if (undefined === children || 0 === children.length)\n this._isLeaf = true;\n\n IModelApp.tileAdmin.onTileChildrenLoad.raiseEvent(this);\n }, (_error: Error) => {\n this._isLeaf = true;\n this._childrenLoadStatus = TileTreeLoadStatus.NotFound;\n\n IModelApp.tileAdmin.onTileChildrenLoad.raiseEvent(this);\n });\n\n return this._childrenLoadStatus;\n }\n\n /** Dispose of this tile's child tiles and mark them as \"not loaded\". */\n protected disposeChildren(): void {\n const children = this.children;\n if (undefined === children)\n return;\n\n for (const child of children)\n child[Symbol.dispose]();\n\n this._childrenLoadStatus = TileTreeLoadStatus.NotLoaded;\n this._children = undefined;\n }\n\n /** Returns true if this tile's bounding volume is culled by the frustum or clip volumes specified by `args`. */\n protected isRegionCulled(args: TileDrawArgs): boolean {\n return this.isCulled(this.range, args, true, this.boundingSphere);\n }\n\n /** Returns true if this tile's content bounding volume is culled by the frustum or clip volumes specified by `args`. */\n protected isContentCulled(args: TileDrawArgs): boolean {\n return this.isCulled(this.contentRange, args, false);\n }\n\n private isCulled(range: ElementAlignedBox3d, args: TileDrawArgs, testClipIntersection: boolean, sphere?: BoundingSphere) {\n const box = Frustum.fromRange(range, scratchRootFrustum);\n return this.isFrustumCulled(box, args, testClipIntersection, sphere);\n }\n\n protected isFrustumCulled(box: Frustum, args: TileDrawArgs, testClipIntersection: boolean, sphere?: BoundingSphere) {\n const worldBox = box.transformBy(args.location, scratchWorldFrustum);\n const worldSphere = sphere?.transformBy(args.location, scratchWorldSphere);\n\n // Test against frustum.\n if (FrustumPlanes.Containment.Outside === args.frustumPlanes.computeFrustumContainment(worldBox, worldSphere))\n return true;\n\n // Test against TileTree's own clip volume, if any.\n if (undefined !== args.clip && ClipPlaneContainment.StronglyOutside === args.clip.classifyPointContainment(worldBox.points))\n return true;\n\n // Test against view clip, if any (will be undefined if TileTree does not want view clip applied to it).\n if (undefined !== args.viewClip && ClipPlaneContainment.StronglyOutside === args.viewClip.classifyPointContainment(worldBox.points))\n return true;\n\n // Test against intersection clip - reject if tile doesn't intersect (used for section-cut graphics).\n if (testClipIntersection && undefined !== args.intersectionClip && ClipPlaneContainment.Ambiguous !== args.intersectionClip.classifyPointContainment(worldBox.points))\n return true;\n\n return false;\n }\n\n /** Determine the visibility of this tile according to the specified args. */\n public computeVisibility(args: TileDrawArgs): TileVisibility {\n if (this.isEmpty)\n return TileVisibility.OutsideFrustum;\n\n if (args.boundingRange && !args.boundingRange.intersectsRange(this.range))\n return TileVisibility.OutsideFrustum;\n\n // NB: We test for region culling before isDisplayable - otherwise we will never unload children of undisplayed tiles when\n // they are outside frustum\n if (this.isRegionCulled(args))\n return TileVisibility.OutsideFrustum;\n\n // some nodes are merely for structure and don't have any geometry\n if (!this.isDisplayable)\n return TileVisibility.TooCoarse;\n\n if (this.isLeaf) {\n if (this.hasContentRange && this.isContentCulled(args))\n return TileVisibility.OutsideFrustum;\n else\n return TileVisibility.Visible;\n }\n\n return this.meetsScreenSpaceError(args) ? TileVisibility.Visible : TileVisibility.TooCoarse;\n }\n\n /** Returns true if this tile is of at least high enough resolution to be displayed, per the supplied [[TileDrawArgs]]; or false if\n * a higher-resolution tile should be substituted for it.\n * This method is called by [[computeVisibility]] if the tile has passed all culling checks.\n */\n protected meetsScreenSpaceError(args: TileDrawArgs): boolean {\n const pixelSize = args.getPixelSize(this) * args.pixelSizeScaleFactor;\n const maxSize = this.maximumSize * args.tileSizeModifier;\n return pixelSize <= maxSize;\n }\n\n /** @internal */\n public extendRangeForContent(range: Range3d, matrix: Matrix4d, treeTransform: Transform, frustumPlanes?: FrustumPlanes): void {\n if (this.isEmpty || this.contentRange.isNull)\n return;\n\n const box = Frustum.fromRange(this.contentRange, scratchFrustum);\n box.transformBy(treeTransform, box);\n if (frustumPlanes !== undefined && FrustumPlanes.Containment.Outside === frustumPlanes.computeFrustumContainment(box))\n return;\n\n if (this.children === undefined) {\n for (const boxPoint of box.points) {\n const pt = matrix.multiplyPoint3d(boxPoint, 1, scratchPoint4d);\n if (pt.w > .0001)\n range.extendXYZW(pt.x, pt.y, pt.z, pt.w);\n else\n range.high.z = Math.max(1.0, range.high.z); // behind eye plane...\n }\n } else {\n for (const child of this.children)\n child.extendRangeForContent(range, matrix, treeTransform, frustumPlanes);\n }\n }\n\n /** Primarily for debugging purposes, compute the number of tiles below this one in the [[TileTree]]. */\n public countDescendants(): number {\n const children = this.children;\n if (undefined === children || 0 === children.length)\n return 0;\n\n let count = 0;\n for (const child of children)\n count += child.countDescendants();\n\n return count;\n }\n\n /** Output this tile's graphics. */\n public drawGraphics(args: TileDrawArgs): void {\n const gfx = this.produceGraphics();\n if (undefined === gfx)\n return;\n\n args.graphics.add(gfx);\n const rangeGfx = this.getRangeGraphic(args.context);\n if (undefined !== rangeGfx)\n args.graphics.add(rangeGfx);\n }\n\n /** @internal */\n protected get rangeGraphicColor(): ColorDef {\n return this.isLeaf ? ColorDef.blue : ColorDef.green;\n }\n\n /** @internal */\n public getRangeGraphic(context: SceneContext): RenderGraphic | undefined {\n const type = context.viewport.debugBoundingBoxes;\n if (type === this._rangeGraphicType)\n return this._rangeGraphic;\n\n this._rangeGraphic = dispose(this._rangeGraphic);\n this._rangeGraphicType = type;\n if (TileBoundingBoxes.None !== type) {\n const builder = context.createSceneGraphicBuilder();\n this.addRangeGraphic(builder, type);\n this._rangeGraphic = builder.finish();\n }\n\n return this._rangeGraphic;\n }\n\n /** @internal */\n protected addRangeGraphic(builder: GraphicBuilder, type: TileBoundingBoxes): void {\n if (TileBoundingBoxes.Both === type) {\n builder.setSymbology(ColorDef.blue, ColorDef.blue, 1);\n addRangeGraphic(builder, this.range, this.tree.is2d);\n\n if (this.hasContentRange) {\n builder.setSymbology(ColorDef.red, ColorDef.red, 1);\n addRangeGraphic(builder, this.contentRange, this.tree.is2d);\n }\n } else if (TileBoundingBoxes.Sphere === type) {\n builder.setSymbology(ColorDef.green, ColorDef.green, 1);\n\n const x = new Vector3d(this.radius, 0, 0);\n const y = new Vector3d(0, this.radius, 0);\n const z = new Vector3d(0, 0, this.radius);\n\n builder.addArc(Arc3d.create(this.center, x, y), false, false);\n builder.addArc(Arc3d.create(this.center, x, z), false, false);\n builder.addArc(Arc3d.create(this.center, y, z), false, false);\n } else if (TileBoundingBoxes.SolidBox === type) {\n const range = this.range;\n let color = this.rangeGraphicColor;\n builder.setSymbology(color, color, 1);\n addRangeGraphic(builder, range, this.tree.is2d);\n color = color.withTransparency(0xcf);\n builder.setSymbology(color, color, 1);\n builder.addRangeBox(range, true);\n } else {\n const color = this.rangeGraphicColor;\n builder.setSymbology(color, color, 1);\n const range = TileBoundingBoxes.Content === type ? this.contentRange : this.range;\n addRangeGraphic(builder, range, this.tree.is2d);\n }\n }\n\n /** Optional corners used to compute the screen size of the tile. These are used, e.g., by reality tiles with oriented bounding boxes to\n * produce more accurate size calculation.\n */\n public getSizeProjectionCorners(): Point3d[] | undefined { return undefined; }\n\n /** @internal */\n public clearLayers() {\n this.disposeContents();\n if (this.children)\n for (const child of this.children)\n (child).clearLayers();\n }\n}\n\n/** Describes the current status of a [[Tile]]'s content. Tile content is loaded via an asynchronous [[TileRequest]].\n * @see [[Tile.loadStatus]].\n * @public\n * @extensions\n */\nexport enum TileLoadStatus {\n /** No attempt to load the tile's content has been made, or the tile has since been unloaded. It currently has no graphics. */\n NotLoaded = 0,\n /** A request has been dispatched to load the tile's contents, and a response is pending. */\n Queued = 1,\n /** A response has been received and the tile's graphics and other data are being loaded on the frontend. */\n Loading = 2,\n /** The tile has been loaded, and if the tile is displayable it has graphics. */\n Ready = 3,\n /** A request to load the tile's contents failed. */\n NotFound = 4,\n /** The tile has been disposed. */\n Abandoned = 5,\n}\n\n/**\n * Describes the visibility of a tile based on its size and a view frustum.\n * @public\n * @extensions\n */\nexport enum TileVisibility {\n /** The tile is entirely outside of the viewing frustum. */\n OutsideFrustum,\n /** The tile's graphics are of too low a resolution for the viewing frustum. */\n TooCoarse,\n /** The tile's graphics are of appropriate resolution for the viewing frustum. */\n Visible,\n}\n\n/**\n * Loosely describes the \"importance\" of a [[Tile]]. Requests for tiles of greater \"importance\" are prioritized for loading.\n * @note A lower priority value indicates higher importance.\n * @public\n * @extensions\n */\nexport enum TileLoadPriority {\n /** Contents of geometric models that are being interactively edited. */\n Dynamic = 5,\n /** Background map tiles. */\n Map = 15,\n /** Typically, tiles generated from the contents of geometric models. */\n Primary = 20,\n /** 3d terrain tiles onto which background map imagery is draped. */\n Terrain = 10,\n /** Typically, reality models. */\n Context = 40,\n /** Supplementary tiles used to classify the contents of geometric or reality models. */\n Classifier = 50,\n}\n\n/**\n * Options for displaying tile bounding boxes for debugging purposes.\n *\n * Bounding boxes are color-coded based on refinement strategy:\n * - Blue: A leaf tile (has no child tiles).\n * - Green: An ordinary tile (sub-divides into 4 or 8 child tiles).\n * - Red: A tile which refines to a single higher-resolution child occupying the same volume.\n * @see [[Viewport.debugBoundingBoxes]]\n * @public\n * @extensions\n */\nexport enum TileBoundingBoxes {\n /** Display no bounding boxes */\n None = 0,\n /** Display boxes representing the tile's full volume. */\n Volume,\n /** Display boxes representing the range of the tile's contents, which may be tighter than (but never larger than) the tile's full volume. */\n Content,\n /** Display both volume and content boxes. */\n Both,\n /** Display boxes for direct children, where blue boxes indicate empty volumes. */\n ChildVolumes,\n /** Display bounding sphere. */\n Sphere,\n /** Display a transparent solid box representing the tile's full volume.\n * @alpha To be replaced with a separate option that applies to any of the other TileBoundingBoxes modes.\n */\n SolidBox,\n}\n\n// TileLoadStatus is computed from the combination of Tile._state and, if Tile.request is defined, Tile.request.state.\nconst enum TileState {// eslint-disable-line no-restricted-syntax\n NotReady = TileLoadStatus.NotLoaded, // Tile requires loading, but no request has yet completed.\n Ready = TileLoadStatus.Ready, // request completed successfully, or no loading was required.\n NotFound = TileLoadStatus.NotFound, // request failed.\n Abandoned = TileLoadStatus.Abandoned, // tile was abandoned.\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Tile.js","sourceRoot":"","sources":["../../../src/tile/Tile.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, dispose } from \"@itwin/core-bentley\";\nimport { Arc3d, ClipPlaneContainment, Matrix4d, Point2d, Point3d, Point4d, Range3d, Transform, Vector3d } from \"@itwin/core-geometry\";\nimport { BoundingSphere, ColorDef, ElementAlignedBox3d, Frustum, FrustumPlanes } from \"@itwin/core-common\";\nimport { IModelApp } from \"../IModelApp\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport { GraphicBuilder } from \"../render/GraphicBuilder\";\nimport { RenderGraphic } from \"../render/RenderGraphic\";\nimport { RenderMemory } from \"../render/RenderMemory\";\nimport { RenderSystem } from \"../render/RenderSystem\";\nimport { SceneContext } from \"../ViewContext\";\nimport { Viewport } from \"../Viewport\";\nimport {\n LRUTileListNode, TileContent, TileDrawArgs, TileParams, TileRequest, TileRequestChannel, TileTree, TileTreeLoadStatus, TileUsageMarker, TileUser, TileUserIdSet,\n} from \"./internal\";\n\n// cSpell:ignore undisplayable bitfield\n\nconst scratchRange2d = [new Point2d(), new Point2d(), new Point2d(), new Point2d()];\n\n/** @internal */\nexport function addRangeGraphic(builder: GraphicBuilder, range: Range3d, is2d: boolean): void {\n if (!is2d) {\n builder.addRangeBox(range);\n return;\n }\n\n // 3d box is useless in 2d and will be clipped by near/far planes anyway\n const pts = scratchRange2d;\n pts[0].set(range.low.x, range.low.y);\n pts[1].set(range.high.x, range.low.y);\n pts[2].set(range.high.x, range.high.y);\n pts[3].set(range.low.x, range.high.y);\n builder.addLineString2d(pts, 0);\n}\n\nconst scratchWorldFrustum = new Frustum();\nconst scratchRootFrustum = new Frustum();\nconst scratchWorldSphere = new BoundingSphere();\nconst scratchPoint4d = Point4d.createZero();\nconst scratchFrustum = new Frustum();\n\n/** A 3d tile within a [[TileTree]].\n *\n * A tile represents the contents of some sub-volume of the tile tree's volume. It may produce graphics representing those contents, or may have no graphics.\n * A tile can have child tiles that further sub-divide its own volume, providing higher-resolution representations of its contents. A tile that has no children is\n * referred to as a \"leaf\" of the tile tree. A non-leaf tile's children are produced when they are needed, and discarded when no longer needed.\n * A tile's contents can be discarded at any time by [[TileAdmin]] when GPU memory needs to be reclaimed; or when the Tile itself is discarded via\n * [[Tile.dispose]].\n *\n * Several public [[Tile]] methods carry a warning that they should **not** be overridden by subclasses; typically a protected method exists that can be overridden instead.\n * For example, [[loadChildren]] should not be overridden, but it calls [[_loadChildren]], which must be overridden because it is abstract.\n * @public\n * @extensions\n */\nexport abstract class Tile {\n private _state: TileState = TileState.NotReady;\n private _children: Tile[] | undefined;\n private _rangeGraphic?: RenderGraphic;\n private _rangeGraphicType: TileBoundingBoxes = TileBoundingBoxes.None;\n /** This tile's renderable content. */\n protected _graphic?: RenderGraphic;\n /** True if this tile ever had graphics loaded. Used to determine when a tile's graphics were later freed to conserve memory. */\n protected _hadGraphics = false;\n /** Uniquely identifies this tile's content in the context of its tree. */\n protected _contentId: string;\n /** The current loading state of this tile's children. Child tiles are loaded on-demand, potentially asynchronously. */\n protected _childrenLoadStatus: TileTreeLoadStatus;\n /** @internal */\n protected _request?: TileRequest;\n /** @internal */\n protected _isLeaf: boolean;\n /** A volume no larger than this tile's `range`, and optionally more tightly encompassing its contents, used for more accurate culling.\n * [[contentRange]] uses this range if defined; otherwise it uses [[range]].\n */\n protected _contentRange?: ElementAlignedBox3d;\n /** The maximum size in pixels this tile can be drawn. If the size of the tile on screen exceeds this maximum, a higher-resolution tile should be drawn in its place. */\n protected _maximumSize: number;\n /** The [[TileTree]] to which this tile belongs. */\n public readonly tree: TileTree;\n /** The volume of space occupied by this tile. Its children are guaranteed to also be contained within this volume. */\n public readonly range: ElementAlignedBox3d;\n /** The parent of this tile, or undefined if it is the [[TileTree]]'s root tile. */\n public readonly parent: Tile | undefined;\n /** The depth of this tile within its [[TileTree]]. The root tile has a depth of zero. */\n public readonly depth: number;\n /** The bounding sphere for this tile. */\n public readonly boundingSphere: BoundingSphere;\n /** The point at the center of this tile's volume. */\n public get center(): Point3d { return this.boundingSphere.center; }\n /** The radius of a sphere fully encompassing this tile's volume - used for culling. */\n public get radius(): number { return this.boundingSphere.radius; }\n /** Tracks the usage of this tile. After a period of disuse, the tile may be [[prune]]d to free up memory. */\n public readonly usageMarker = new TileUsageMarker();\n\n /** Exclusively for use by LRUTileList. @internal */\n public previous?: LRUTileListNode;\n /** Exclusively for use by LRUTileList. @internal */\n public next?: LRUTileListNode;\n /** Exclusively for use by LRUTileList. @internal */\n public bytesUsed = 0;\n /** Exclusively for use by LRUTileList. @internal */\n public tileUserIds?: TileUserIdSet;\n\n /** Load this tile's children, possibly asynchronously. Pass them to `resolve`, or an error to `reject`. */\n protected abstract _loadChildren(resolve: (children: Tile[] | undefined) => void, reject: (error: Error) => void): void;\n\n /** Return the channel via which this tile's content should be requested.\n * @note The channel *must* be registered with `IModelApp.tileAdmin.channels`.\n * @see [[TileRequestChannels.getForHttp]] to create a channel that requests content over HTTP.\n * @see [[TileAdmin.channels]].\n * @public\n */\n public abstract get channel(): TileRequestChannel;\n\n /** Return a Promise that resolves to the raw data representing this tile's content. */\n public abstract requestContent(isCanceled: () => boolean): Promise<TileRequest.Response>;\n\n /** Return a Promise that deserializes this tile's content from raw format produced by [[requestContent]]. */\n public abstract readContent(data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<TileContent>;\n\n /** Constructor */\n protected constructor(params: TileParams, tree: TileTree) {\n this.tree = tree;\n this.parent = params.parent;\n this.depth = undefined !== this.parent ? this.parent.depth + 1 : 0;\n this.range = params.range;\n this._maximumSize = params.maximumSize;\n this._contentRange = params.contentRange;\n this._contentId = params.contentId;\n\n const center = this.range.low.interpolate(0.5, this.range.high);\n const radius = 0.5 * this.range.low.distance(this.range.high);\n this.boundingSphere = new BoundingSphere(center, radius);\n\n if (params.maximumSize <= 0)\n this.setIsReady();\n\n this._isLeaf = true === params.isLeaf;\n this._childrenLoadStatus = (undefined === tree.maxDepth || this.depth < tree.maxDepth) ? TileTreeLoadStatus.NotLoaded : TileTreeLoadStatus.Loaded;\n }\n\n /** Free memory-consuming resources owned by this tile to reduce memory pressure.\n * By default, this calls [[disposeContents]]. Problematic subclasses (MapTile, ImageryMapTile) may opt out for now by overriding this method to do nothing.\n * That option may be removed in the future.\n * @alpha\n */\n public freeMemory(): void {\n this.disposeContents();\n }\n\n /** Dispose of resources held by this tile. */\n public disposeContents(): void {\n this._state = TileState.NotReady;\n this._graphic = dispose(this._graphic);\n this._rangeGraphic = dispose(this._rangeGraphic);\n this._rangeGraphicType = TileBoundingBoxes.None;\n IModelApp.tileAdmin.onTileContentDisposed(this);\n }\n\n /** Dispose of resources held by this tile and all of its children, marking it and all of its children as \"abandoned\". */\n public [Symbol.dispose](): void {\n this.disposeContents();\n this._state = TileState.Abandoned;\n this.disposeChildren();\n }\n\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [Symbol.dispose] instead. */\n public dispose() {\n this[Symbol.dispose]();\n }\n\n /** This tile's child tiles, if they exist and are loaded. The children are fully contained within this tile's volume and provide higher-resolution graphics than this tile.\n * @see [[loadChildren]]\n */\n public get children(): Tile[] | undefined { return this._children; }\n /** The [[IModelConnection]] to which this tile belongs. */\n public get iModel(): IModelConnection { return this.tree.iModel; }\n /** Uniquely identifies this tile's content. */\n public get contentId(): string { return this._contentId; }\n\n /** True if this tile's content is currently being loaded. */\n public get isLoading(): boolean { return TileLoadStatus.Loading === this.loadStatus; }\n /** True if a request for this tile's content has been enqueued. */\n public get isQueued(): boolean { return TileLoadStatus.Queued === this.loadStatus; }\n /** True if an attempt to load this tile's content failed. */\n public get isNotFound(): boolean { return TileLoadStatus.NotFound === this.loadStatus; }\n /** True if this tile's content has been loaded and is ready to be drawn. */\n public get isReady(): boolean { return TileLoadStatus.Ready === this.loadStatus; }\n\n /** Indicates the tile should not be selected for display because it is out of the range of LODs supported by the tile provider.\n * @see [[ImageryMapTile.isOutOfLodRange]].\n * @alpha\n */\n public get isOutOfLodRange(): boolean { return false; }\n\n /** @public */\n public setNotFound(): void {\n this._state = TileState.NotFound;\n }\n\n /** @public */\n public setIsReady(): void {\n if (this.hasGraphics)\n this._hadGraphics = true;\n\n this._state = TileState.Ready;\n IModelApp.tileAdmin.onTileContentLoaded(this);\n }\n\n /** @public */\n public setLeaf(): void {\n // Don't potentially re-request the children later.\n this.disposeChildren();\n this._isLeaf = true;\n this._childrenLoadStatus = TileTreeLoadStatus.Loaded;\n }\n\n /** True if this tile has no child tiles. */\n public get isLeaf(): boolean { return this._isLeaf; }\n /** @internal */\n public get isEmpty(): boolean { return this.isReady && !this.hasGraphics && this.isLeaf; }\n /** @internal */\n public get isDisplayable(): boolean { return 0 < this.maximumSize; }\n /** The maximum size in pixels this tile can be drawn. If the size of the tile on screen exceeds this maximum, a higher-resolution tile should be drawn in its place. */\n public get maximumSize(): number { return this._maximumSize; }\n /** @internal */\n public get isParentDisplayable(): boolean { return undefined !== this.parent && this.parent.isDisplayable; }\n /** @internal */\n public get isUndisplayableRootTile(): boolean { return undefined === this.parent && !this.isDisplayable; }\n\n /** @internal */\n public get request(): TileRequest | undefined { return this._request; }\n public set request(request: TileRequest | undefined) {\n assert(undefined === request || undefined === this.request);\n this._request = request;\n }\n\n /** Compute the load priority of this tile. This determines which tiles' contents are requested first.\n * @param _viewports The subset of `users` that are [[Viewport]]s - typically, these viewports want to display the tile's content.\n * @param users The [[TileUser]]s that are currently using the tile for some purpose, such as displaying its content.\n * @returns The priority.\n * @see [[TileLoadPriority]] for suggested priority values.\n */\n public computeLoadPriority(_viewports: Iterable<Viewport>, _users: Iterable<TileUser>): number {\n return this.depth;\n }\n\n /** True if this tile has graphics ready to draw. */\n public get hasGraphics(): boolean { return undefined !== this._graphic; }\n /** True if this tile has a known volume tightly encompassing its graphics. */\n public get hasContentRange(): boolean { return undefined !== this._contentRange; }\n /** A volume no larger than this tile's `range`, and optionally more tightly encompassing its contents, used for more accurate culling. */\n public get contentRange(): ElementAlignedBox3d {\n if (undefined !== this._contentRange)\n return this._contentRange;\n else if (undefined === this.parent && undefined !== this.tree.contentRange)\n return this.tree.contentRange;\n else\n return this.range;\n }\n\n /** Tile contents are loaded asynchronously on demand. This member tracks the current loading status of this tile's contents. */\n public get loadStatus(): TileLoadStatus {\n switch (this._state) {\n case TileState.NotReady: {\n if (undefined === this.request)\n return TileLoadStatus.NotLoaded;\n else if (TileRequest.State.Loading === this.request.state)\n return TileLoadStatus.Loading;\n\n assert(TileRequest.State.Completed !== this.request.state && TileRequest.State.Failed !== this.request.state); // this.request should be undefined in these cases...\n return TileLoadStatus.Queued;\n }\n case TileState.Ready: {\n assert(undefined === this.request);\n return TileLoadStatus.Ready;\n }\n case TileState.NotFound: {\n assert(undefined === this.request);\n return TileLoadStatus.NotFound;\n }\n default: {\n assert(TileState.Abandoned === this._state);\n return TileLoadStatus.Abandoned;\n }\n }\n }\n\n /** Produce the graphics that should be drawn. */\n public produceGraphics(): RenderGraphic | undefined {\n return this._graphic;\n }\n\n protected setGraphic(graphic: RenderGraphic | undefined): void {\n dispose(this._graphic);\n this._graphic = graphic;\n this.setIsReady();\n }\n\n /** Set this tile's content to the result of [[readContent]] */\n public setContent(content: TileContent): void {\n const { graphic, isLeaf, contentRange } = content;\n this.setGraphic(graphic);\n\n if (undefined !== isLeaf && isLeaf !== this._isLeaf) {\n if (isLeaf)\n this.setLeaf();\n else\n this._isLeaf = false;\n }\n\n if (undefined !== contentRange)\n this._contentRange = contentRange;\n\n this.setIsReady();\n }\n\n /** Disclose any resources owned by this tile, other than its [[RenderGraphic]].\n * @internal\n */\n protected _collectStatistics(_stats: RenderMemory.Statistics): void { }\n\n /** Disclose resources owned by this tile and (by default) all of its child tiles.\n * @note Do not override this method! Override `_collectStatistics` instead.\n * @internal\n */\n public collectStatistics(stats: RenderMemory.Statistics, includeChildren = true): void {\n if (undefined !== this._graphic)\n this._graphic.collectStatistics(stats);\n\n this._collectStatistics(stats);\n if (!includeChildren)\n return;\n\n const children = this.children;\n if (undefined !== children)\n for (const child of children)\n child.collectStatistics(stats);\n }\n\n /** If this tile's child tiles have not yet been requested, enqueue an asynchronous request to load them.\n * @note This function itself is *not* asynchronous - it immediately returns the current loading status.\n * @note Do not override this method - implement [[_loadChildren]].\n */\n protected loadChildren(): TileTreeLoadStatus {\n if (this._childrenLoadStatus !== TileTreeLoadStatus.NotLoaded)\n return this._childrenLoadStatus;\n\n this._childrenLoadStatus = TileTreeLoadStatus.Loading;\n\n this._loadChildren((children: Tile[] | undefined) => {\n this._children = children;\n this._childrenLoadStatus = TileTreeLoadStatus.Loaded;\n\n if (undefined === children || 0 === children.length)\n this._isLeaf = true;\n\n IModelApp.tileAdmin.onTileChildrenLoad.raiseEvent(this);\n }, (_error: Error) => {\n this._isLeaf = true;\n this._childrenLoadStatus = TileTreeLoadStatus.NotFound;\n\n IModelApp.tileAdmin.onTileChildrenLoad.raiseEvent(this);\n });\n\n return this._childrenLoadStatus;\n }\n\n /** Dispose of this tile's child tiles and mark them as \"not loaded\". */\n protected disposeChildren(): void {\n const children = this.children;\n if (undefined === children)\n return;\n\n for (const child of children)\n child[Symbol.dispose]();\n\n this._childrenLoadStatus = TileTreeLoadStatus.NotLoaded;\n this._children = undefined;\n }\n\n /** Returns true if this tile's bounding volume is culled by the frustum or clip volumes specified by `args`. */\n protected isRegionCulled(args: TileDrawArgs): boolean {\n return this.isCulled(this.range, args, true, this.boundingSphere);\n }\n\n /** Returns true if this tile's content bounding volume is culled by the frustum or clip volumes specified by `args`. */\n protected isContentCulled(args: TileDrawArgs): boolean {\n return this.isCulled(this.contentRange, args, false);\n }\n\n private isCulled(range: ElementAlignedBox3d, args: TileDrawArgs, testClipIntersection: boolean, sphere?: BoundingSphere) {\n const box = Frustum.fromRange(range, scratchRootFrustum);\n return this.isFrustumCulled(box, args, testClipIntersection, sphere);\n }\n\n protected isFrustumCulled(box: Frustum, args: TileDrawArgs, testClipIntersection: boolean, sphere?: BoundingSphere) {\n const worldBox = box.transformBy(args.location, scratchWorldFrustum);\n const worldSphere = sphere?.transformBy(args.location, scratchWorldSphere);\n\n // Test against frustum.\n if (FrustumPlanes.Containment.Outside === args.frustumPlanes.computeFrustumContainment(worldBox, worldSphere))\n return true;\n\n // Test against TileTree's own clip volume, if any.\n if (undefined !== args.clip && ClipPlaneContainment.StronglyOutside === args.clip.classifyPointContainment(worldBox.points))\n return true;\n\n // Test against view clip, if any (will be undefined if TileTree does not want view clip applied to it).\n if (undefined !== args.viewClip && ClipPlaneContainment.StronglyOutside === args.viewClip.classifyPointContainment(worldBox.points))\n return true;\n\n // Test against intersection clip - reject if tile doesn't intersect (used for section-cut graphics).\n if (testClipIntersection && undefined !== args.intersectionClip && ClipPlaneContainment.Ambiguous !== args.intersectionClip.classifyPointContainment(worldBox.points))\n return true;\n\n return false;\n }\n\n /** Determine the visibility of this tile according to the specified args. */\n public computeVisibility(args: TileDrawArgs): TileVisibility {\n if (this.isEmpty)\n return TileVisibility.OutsideFrustum;\n\n if (args.boundingRange && !args.boundingRange.intersectsRange(this.range))\n return TileVisibility.OutsideFrustum;\n\n // NB: We test for region culling before isDisplayable - otherwise we will never unload children of undisplayed tiles when\n // they are outside frustum\n if (this.isRegionCulled(args))\n return TileVisibility.OutsideFrustum;\n\n // some nodes are merely for structure and don't have any geometry\n if (!this.isDisplayable)\n return TileVisibility.TooCoarse;\n\n if (this.isLeaf) {\n if (this.hasContentRange && this.isContentCulled(args))\n return TileVisibility.OutsideFrustum;\n else\n return TileVisibility.Visible;\n }\n\n return this.meetsScreenSpaceError(args) ? TileVisibility.Visible : TileVisibility.TooCoarse;\n }\n\n /** Returns true if this tile is of at least high enough resolution to be displayed, per the supplied [[TileDrawArgs]]; or false if\n * a higher-resolution tile should be substituted for it.\n * This method is called by [[computeVisibility]] if the tile has passed all culling checks.\n */\n protected meetsScreenSpaceError(args: TileDrawArgs): boolean {\n const pixelSize = args.getPixelSize(this) * args.pixelSizeScaleFactor;\n const maxSize = this.maximumSize * args.tileSizeModifier;\n return pixelSize <= maxSize;\n }\n\n /** @internal */\n public extendRangeForContent(range: Range3d, matrix: Matrix4d, treeTransform: Transform, frustumPlanes?: FrustumPlanes): void {\n if (this.isEmpty || this.contentRange.isNull)\n return;\n\n const box = Frustum.fromRange(this.contentRange, scratchFrustum);\n box.transformBy(treeTransform, box);\n if (frustumPlanes !== undefined && FrustumPlanes.Containment.Outside === frustumPlanes.computeFrustumContainment(box))\n return;\n\n if (this.children === undefined) {\n for (const boxPoint of box.points) {\n const pt = matrix.multiplyPoint3d(boxPoint, 1, scratchPoint4d);\n if (pt.w > .0001)\n range.extendXYZW(pt.x, pt.y, pt.z, pt.w);\n else\n range.high.z = Math.max(1.0, range.high.z); // behind eye plane...\n }\n } else {\n for (const child of this.children)\n child.extendRangeForContent(range, matrix, treeTransform, frustumPlanes);\n }\n }\n\n /** Primarily for debugging purposes, compute the number of tiles below this one in the [[TileTree]]. */\n public countDescendants(): number {\n const children = this.children;\n if (undefined === children || 0 === children.length)\n return 0;\n\n let count = 0;\n for (const child of children)\n count += child.countDescendants();\n\n return count;\n }\n\n /** Output this tile's graphics. */\n public drawGraphics(args: TileDrawArgs): void {\n const gfx = this.produceGraphics();\n if (undefined === gfx)\n return;\n\n args.graphics.add(gfx);\n const rangeGfx = this.getRangeGraphic(args.context);\n if (undefined !== rangeGfx)\n args.graphics.add(rangeGfx);\n }\n\n /** @internal */\n protected get rangeGraphicColor(): ColorDef {\n return this.isLeaf ? ColorDef.blue : ColorDef.green;\n }\n\n /** @internal */\n public getRangeGraphic(context: SceneContext): RenderGraphic | undefined {\n const type = context.viewport.debugBoundingBoxes;\n if (type === this._rangeGraphicType)\n return this._rangeGraphic;\n\n this._rangeGraphic = dispose(this._rangeGraphic);\n this._rangeGraphicType = type;\n if (TileBoundingBoxes.None !== type) {\n const builder = context.createSceneGraphicBuilder();\n this.addRangeGraphic(builder, type);\n this._rangeGraphic = builder.finish();\n }\n\n return this._rangeGraphic;\n }\n\n /** @internal */\n protected addRangeGraphic(builder: GraphicBuilder, type: TileBoundingBoxes): void {\n if (TileBoundingBoxes.Both === type) {\n builder.setSymbology(ColorDef.blue, ColorDef.blue, 1);\n addRangeGraphic(builder, this.range, this.tree.is2d);\n\n if (this.hasContentRange) {\n builder.setSymbology(ColorDef.red, ColorDef.red, 1);\n addRangeGraphic(builder, this.contentRange, this.tree.is2d);\n }\n } else if (TileBoundingBoxes.Sphere === type) {\n builder.setSymbology(ColorDef.green, ColorDef.green, 1);\n\n const x = new Vector3d(this.radius, 0, 0);\n const y = new Vector3d(0, this.radius, 0);\n const z = new Vector3d(0, 0, this.radius);\n\n builder.addArc(Arc3d.create(this.center, x, y), false, false);\n builder.addArc(Arc3d.create(this.center, x, z), false, false);\n builder.addArc(Arc3d.create(this.center, y, z), false, false);\n } else if (TileBoundingBoxes.SolidBox === type) {\n const range = this.range;\n let color = this.rangeGraphicColor;\n builder.setSymbology(color, color, 1);\n addRangeGraphic(builder, range, this.tree.is2d);\n color = color.withTransparency(0xcf);\n builder.setSymbology(color, color, 1);\n builder.addRangeBox(range, true);\n } else {\n const color = this.rangeGraphicColor;\n builder.setSymbology(color, color, 1);\n const range = TileBoundingBoxes.Content === type ? this.contentRange : this.range;\n addRangeGraphic(builder, range, this.tree.is2d);\n }\n }\n\n /** Optional corners used to compute the screen size of the tile. These are used, e.g., by reality tiles with oriented bounding boxes to\n * produce more accurate size calculation.\n */\n public getSizeProjectionCorners(): Point3d[] | undefined { return undefined; }\n\n /** @internal */\n public clearLayers() {\n this.disposeContents();\n if (this.children)\n for (const child of this.children)\n (child).clearLayers();\n }\n}\n\n/** Describes the current status of a [[Tile]]'s content. Tile content is loaded via an asynchronous [[TileRequest]].\n * @see [[Tile.loadStatus]].\n * @public\n * @extensions\n */\nexport enum TileLoadStatus {\n /** No attempt to load the tile's content has been made, or the tile has since been unloaded. It currently has no graphics. */\n NotLoaded = 0,\n /** A request has been dispatched to load the tile's contents, and a response is pending. */\n Queued = 1,\n /** A response has been received and the tile's graphics and other data are being loaded on the frontend. */\n Loading = 2,\n /** The tile has been loaded, and if the tile is displayable it has graphics. */\n Ready = 3,\n /** A request to load the tile's contents failed. */\n NotFound = 4,\n /** The tile has been disposed. */\n Abandoned = 5,\n}\n\n/**\n * Describes the visibility of a tile based on its size and a view frustum.\n * @public\n * @extensions\n */\nexport enum TileVisibility {\n /** The tile is entirely outside of the viewing frustum. */\n OutsideFrustum,\n /** The tile's graphics are of too low a resolution for the viewing frustum. */\n TooCoarse,\n /** The tile's graphics are of appropriate resolution for the viewing frustum. */\n Visible,\n}\n\n/**\n * Loosely describes the \"importance\" of a [[Tile]]. Requests for tiles of greater \"importance\" are prioritized for loading.\n * @note A lower priority value indicates higher importance.\n * @public\n * @extensions\n */\nexport enum TileLoadPriority {\n /** Contents of geometric models that are being interactively edited. */\n Dynamic = 5,\n /** Background map tiles. */\n Map = 15,\n /** Typically, tiles generated from the contents of geometric models. */\n Primary = 20,\n /** 3d terrain tiles onto which background map imagery is draped. */\n Terrain = 10,\n /** Typically, reality models. */\n Context = 40,\n /** Supplementary tiles used to classify the contents of geometric or reality models. */\n Classifier = 50,\n}\n\n/**\n * Options for displaying tile bounding boxes for debugging purposes.\n *\n * Bounding boxes are color-coded based on refinement strategy:\n * - Blue: A leaf tile (has no child tiles).\n * - Green: An ordinary tile (sub-divides into 4 or 8 child tiles).\n * - Red: A tile which refines to a single higher-resolution child occupying the same volume.\n * @see [[Viewport.debugBoundingBoxes]]\n * @public\n * @extensions\n */\nexport enum TileBoundingBoxes {\n /** Display no bounding boxes */\n None = 0,\n /** Display boxes representing the tile's full volume. */\n Volume,\n /** Display boxes representing the range of the tile's contents, which may be tighter than (but never larger than) the tile's full volume. */\n Content,\n /** Display both volume and content boxes. */\n Both,\n /** Display boxes for direct children, where blue boxes indicate empty volumes. */\n ChildVolumes,\n /** Display bounding sphere. */\n Sphere,\n /** Display a transparent solid box representing the tile's full volume.\n * @alpha To be replaced with a separate option that applies to any of the other TileBoundingBoxes modes.\n */\n SolidBox,\n}\n\n// TileLoadStatus is computed from the combination of Tile._state and, if Tile.request is defined, Tile.request.state.\nconst enum TileState {// eslint-disable-line no-restricted-syntax\n NotReady = TileLoadStatus.NotLoaded, // Tile requires loading, but no request has yet completed.\n Ready = TileLoadStatus.Ready, // request completed successfully, or no loading was required.\n NotFound = TileLoadStatus.NotFound, // request failed.\n Abandoned = TileLoadStatus.Abandoned, // tile was abandoned.\n}\n"]}
|
|
@@ -127,6 +127,8 @@ export declare class TileAdmin {
|
|
|
127
127
|
/** @internal */
|
|
128
128
|
readonly optimizeBRepProcessing: boolean;
|
|
129
129
|
/** @internal */
|
|
130
|
+
readonly disablePolyfaceDecimation: boolean;
|
|
131
|
+
/** @internal */
|
|
130
132
|
readonly useLargerTiles: boolean;
|
|
131
133
|
/** @internal */
|
|
132
134
|
readonly maximumLevelsToSkip: number;
|
|
@@ -665,6 +667,14 @@ export declare namespace TileAdmin {
|
|
|
665
667
|
* @alpha This was primarily introduced because the electron version of certa does not serve local assets, so the tests can't locate the worker script.
|
|
666
668
|
*/
|
|
667
669
|
decodeImdlInWorker?: boolean;
|
|
670
|
+
/** If true, disable polyface decimation during tile generation.
|
|
671
|
+
* When the tiler encounters a [Polyface]($geometry) in an element's geometry stream, it may attempt to reduce the number of vertices
|
|
672
|
+
* to match the tile's level of detail ("LOD"). This can deform the mesh, though the deformation is generally not noticeable at the tile's LOD.
|
|
673
|
+
* If `disablePolyfaceDecimation` is `true`, the tiler will never attempt to decimate polyfaces.
|
|
674
|
+
* Default value: false.
|
|
675
|
+
* @beta
|
|
676
|
+
*/
|
|
677
|
+
disablePolyfaceDecimation?: boolean;
|
|
668
678
|
}
|
|
669
679
|
/** The number of bytes of GPU memory associated with the various [[GpuMemoryLimit]]s for non-mobile devices.
|
|
670
680
|
* @see [[TileAdmin.Props.gpuMemoryLimits]] to specify the limit at startup.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TileAdmin.d.ts","sourceRoot":"","sources":["../../../src/tile/TileAdmin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TileAdmin.d.ts","sourceRoot":"","sources":["../../../src/tile/TileAdmin.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,6 +66,8 @@ class TileAdmin {
|
|
|
66
66
|
/** @internal */
|
|
67
67
|
optimizeBRepProcessing;
|
|
68
68
|
/** @internal */
|
|
69
|
+
disablePolyfaceDecimation;
|
|
70
|
+
/** @internal */
|
|
69
71
|
useLargerTiles;
|
|
70
72
|
/** @internal */
|
|
71
73
|
maximumLevelsToSkip;
|
|
@@ -154,6 +156,7 @@ class TileAdmin {
|
|
|
154
156
|
this.useProjectExtents = options.useProjectExtents ?? core_common_1.defaultTileOptions.useProjectExtents;
|
|
155
157
|
this.expandProjectExtents = options.expandProjectExtents ?? core_common_1.defaultTileOptions.expandProjectExtents;
|
|
156
158
|
this.optimizeBRepProcessing = options.optimizeBRepProcessing ?? core_common_1.defaultTileOptions.optimizeBRepProcessing;
|
|
159
|
+
this.disablePolyfaceDecimation = options.disablePolyfaceDecimation ?? core_common_1.defaultTileOptions.disablePolyfaceDecimation;
|
|
157
160
|
this.useLargerTiles = options.useLargerTiles ?? core_common_1.defaultTileOptions.useLargerTiles;
|
|
158
161
|
this.mobileRealityTileMinToleranceRatio = Math.max(options.mobileRealityTileMinToleranceRatio ?? 3.0, 1.0);
|
|
159
162
|
this.cesiumIonKey = options.cesiumIonKey;
|