@itwin/core-frontend 3.2.0-dev.9 → 3.3.0-dev.0
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 +55 -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.d.ts +1 -0
- package/lib/cjs/AccuSnap.d.ts.map +1 -1
- package/lib/cjs/AccuSnap.js +1 -0
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
- package/lib/cjs/ApproximateTerrainHeights.js +4 -2
- package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeightsProps.d.ts +1 -1
- package/lib/cjs/ApproximateTerrainHeightsProps.d.ts.map +1 -1
- package/lib/cjs/ApproximateTerrainHeightsProps.js +2 -2
- package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
- package/lib/cjs/AuxCoordSys.d.ts +12 -2
- package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
- package/lib/cjs/AuxCoordSys.js +12 -2
- package/lib/cjs/AuxCoordSys.js.map +1 -1
- package/lib/cjs/BingLocation.d.ts +1 -0
- package/lib/cjs/BingLocation.d.ts.map +1 -1
- package/lib/cjs/BingLocation.js +1 -0
- package/lib/cjs/BingLocation.js.map +1 -1
- package/lib/cjs/BriefcaseConnection.d.ts +35 -1
- package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
- package/lib/cjs/BriefcaseConnection.js +52 -1
- package/lib/cjs/BriefcaseConnection.js.map +1 -1
- package/lib/cjs/CategorySelectorState.d.ts +1 -0
- package/lib/cjs/CategorySelectorState.d.ts.map +1 -1
- package/lib/cjs/CategorySelectorState.js +1 -0
- package/lib/cjs/CategorySelectorState.js.map +1 -1
- package/lib/cjs/ChangeFlags.d.ts +1 -0
- package/lib/cjs/ChangeFlags.d.ts.map +1 -1
- package/lib/cjs/ChangeFlags.js +1 -0
- package/lib/cjs/ChangeFlags.js.map +1 -1
- package/lib/cjs/ContextRealityModelState.d.ts +1 -0
- package/lib/cjs/ContextRealityModelState.d.ts.map +1 -1
- package/lib/cjs/ContextRealityModelState.js +1 -0
- package/lib/cjs/ContextRealityModelState.js.map +1 -1
- package/lib/cjs/CoordSystem.d.ts +1 -0
- package/lib/cjs/CoordSystem.d.ts.map +1 -1
- package/lib/cjs/CoordSystem.js +1 -0
- package/lib/cjs/CoordSystem.js.map +1 -1
- package/lib/cjs/DisplayStyleState.d.ts +4 -0
- package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleState.js +9 -4
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/DrawingViewState.d.ts +5 -2
- package/lib/cjs/DrawingViewState.d.ts.map +1 -1
- package/lib/cjs/DrawingViewState.js +34 -3
- package/lib/cjs/DrawingViewState.js.map +1 -1
- package/lib/cjs/ElementLocateManager.d.ts +23 -5
- package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
- package/lib/cjs/ElementLocateManager.js +19 -4
- package/lib/cjs/ElementLocateManager.js.map +1 -1
- package/lib/cjs/EmphasizeElements.d.ts +1 -0
- package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
- package/lib/cjs/EmphasizeElements.js +1 -0
- package/lib/cjs/EmphasizeElements.js.map +1 -1
- package/lib/cjs/EntityState.d.ts +2 -0
- package/lib/cjs/EntityState.d.ts.map +1 -1
- package/lib/cjs/EntityState.js +2 -0
- package/lib/cjs/EntityState.js.map +1 -1
- package/lib/cjs/FeatureOverrideProvider.d.ts +1 -0
- package/lib/cjs/FeatureOverrideProvider.d.ts.map +1 -1
- package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
- package/lib/cjs/FlashSettings.d.ts +3 -0
- package/lib/cjs/FlashSettings.d.ts.map +1 -1
- package/lib/cjs/FlashSettings.js +2 -0
- package/lib/cjs/FlashSettings.js.map +1 -1
- package/lib/cjs/FrontendHubAccess.d.ts +4 -1
- package/lib/cjs/FrontendHubAccess.d.ts.map +1 -1
- package/lib/cjs/FrontendHubAccess.js.map +1 -1
- package/lib/cjs/FrontendLoggerCategory.d.ts +6 -1
- package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
- package/lib/cjs/FrontendLoggerCategory.js +5 -0
- package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
- package/lib/cjs/FrustumAnimator.d.ts +2 -0
- package/lib/cjs/FrustumAnimator.d.ts.map +1 -1
- package/lib/cjs/FrustumAnimator.js +2 -0
- package/lib/cjs/FrustumAnimator.js.map +1 -1
- package/lib/cjs/FuzzySearch.d.ts +1 -0
- package/lib/cjs/FuzzySearch.d.ts.map +1 -1
- package/lib/cjs/FuzzySearch.js.map +1 -1
- package/lib/cjs/GlobeAnimator.d.ts +1 -0
- package/lib/cjs/GlobeAnimator.d.ts.map +1 -1
- package/lib/cjs/GlobeAnimator.js +1 -0
- package/lib/cjs/GlobeAnimator.js.map +1 -1
- package/lib/cjs/HitDetail.d.ts +26 -5
- package/lib/cjs/HitDetail.d.ts.map +1 -1
- package/lib/cjs/HitDetail.js +26 -5
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +9 -0
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +38 -23
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +11 -2
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +23 -2
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/ImageUtil.d.ts +15 -2
- package/lib/cjs/ImageUtil.d.ts.map +1 -1
- package/lib/cjs/ImageUtil.js +19 -4
- package/lib/cjs/ImageUtil.js.map +1 -1
- package/lib/cjs/IpcApp.d.ts +1 -0
- package/lib/cjs/IpcApp.d.ts.map +1 -1
- package/lib/cjs/IpcApp.js +1 -0
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/MarginPercent.d.ts +1 -0
- package/lib/cjs/MarginPercent.d.ts.map +1 -1
- package/lib/cjs/MarginPercent.js +1 -0
- package/lib/cjs/MarginPercent.js.map +1 -1
- package/lib/cjs/Marker.d.ts +16 -3
- package/lib/cjs/Marker.d.ts.map +1 -1
- package/lib/cjs/Marker.js +3 -0
- package/lib/cjs/Marker.js.map +1 -1
- package/lib/cjs/ModelSelectorState.d.ts +1 -0
- package/lib/cjs/ModelSelectorState.d.ts.map +1 -1
- package/lib/cjs/ModelSelectorState.js +1 -0
- package/lib/cjs/ModelSelectorState.js.map +1 -1
- package/lib/cjs/ModelState.d.ts +10 -0
- package/lib/cjs/ModelState.d.ts.map +1 -1
- package/lib/cjs/ModelState.js +10 -0
- package/lib/cjs/ModelState.js.map +1 -1
- package/lib/cjs/NotificationManager.d.ts +11 -0
- package/lib/cjs/NotificationManager.d.ts.map +1 -1
- package/lib/cjs/NotificationManager.js +10 -0
- package/lib/cjs/NotificationManager.js.map +1 -1
- package/lib/cjs/PerModelCategoryVisibility.d.ts +1 -0
- package/lib/cjs/PerModelCategoryVisibility.d.ts.map +1 -1
- package/lib/cjs/PerModelCategoryVisibility.js +1 -0
- package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
- package/lib/cjs/SelectionSet.d.ts +7 -0
- package/lib/cjs/SelectionSet.d.ts.map +1 -1
- package/lib/cjs/SelectionSet.js +3 -0
- package/lib/cjs/SelectionSet.js.map +1 -1
- package/lib/cjs/SheetViewState.d.ts +6 -5
- package/lib/cjs/SheetViewState.d.ts.map +1 -1
- package/lib/cjs/SheetViewState.js +58 -6
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/SpatialViewState.d.ts +7 -2
- package/lib/cjs/SpatialViewState.d.ts.map +1 -1
- package/lib/cjs/SpatialViewState.js +17 -3
- package/lib/cjs/SpatialViewState.js.map +1 -1
- package/lib/cjs/Sprites.d.ts +3 -0
- package/lib/cjs/Sprites.d.ts.map +1 -1
- package/lib/cjs/Sprites.js +3 -0
- package/lib/cjs/Sprites.js.map +1 -1
- package/lib/cjs/StandardView.d.ts +1 -0
- package/lib/cjs/StandardView.d.ts.map +1 -1
- package/lib/cjs/StandardView.js +1 -0
- package/lib/cjs/StandardView.js.map +1 -1
- package/lib/cjs/SubCategoriesCache.d.ts +14 -7
- package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
- package/lib/cjs/SubCategoriesCache.js +36 -8
- package/lib/cjs/SubCategoriesCache.js.map +1 -1
- package/lib/cjs/TentativePoint.d.ts +4 -1
- package/lib/cjs/TentativePoint.d.ts.map +1 -1
- package/lib/cjs/TentativePoint.js +4 -1
- package/lib/cjs/TentativePoint.js.map +1 -1
- package/lib/cjs/Tiles.d.ts +1 -0
- package/lib/cjs/Tiles.d.ts.map +1 -1
- package/lib/cjs/Tiles.js +1 -0
- package/lib/cjs/Tiles.js.map +1 -1
- package/lib/cjs/ViewAnimation.d.ts +6 -0
- package/lib/cjs/ViewAnimation.d.ts.map +1 -1
- package/lib/cjs/ViewAnimation.js.map +1 -1
- package/lib/cjs/ViewCreator2d.d.ts +2 -0
- package/lib/cjs/ViewCreator2d.d.ts.map +1 -1
- package/lib/cjs/ViewCreator2d.js +1 -0
- package/lib/cjs/ViewCreator2d.js.map +1 -1
- package/lib/cjs/ViewCreator3d.d.ts +2 -8
- package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
- package/lib/cjs/ViewCreator3d.js +12 -38
- package/lib/cjs/ViewCreator3d.js.map +1 -1
- package/lib/cjs/ViewGlobalLocation.d.ts +3 -0
- package/lib/cjs/ViewGlobalLocation.d.ts.map +1 -1
- package/lib/cjs/ViewGlobalLocation.js +1 -0
- package/lib/cjs/ViewGlobalLocation.js.map +1 -1
- package/lib/cjs/ViewManager.d.ts +3 -0
- package/lib/cjs/ViewManager.d.ts.map +1 -1
- package/lib/cjs/ViewManager.js +2 -0
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewPose.d.ts +1 -0
- package/lib/cjs/ViewPose.d.ts.map +1 -1
- package/lib/cjs/ViewPose.js +1 -0
- package/lib/cjs/ViewPose.js.map +1 -1
- package/lib/cjs/ViewRect.d.ts +1 -0
- package/lib/cjs/ViewRect.d.ts.map +1 -1
- package/lib/cjs/ViewRect.js +1 -0
- package/lib/cjs/ViewRect.js.map +1 -1
- package/lib/cjs/ViewState.d.ts +17 -2
- package/lib/cjs/ViewState.d.ts.map +1 -1
- package/lib/cjs/ViewState.js +40 -9
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/ViewStatus.d.ts +1 -0
- package/lib/cjs/ViewStatus.d.ts.map +1 -1
- package/lib/cjs/ViewStatus.js +1 -0
- package/lib/cjs/ViewStatus.js.map +1 -1
- package/lib/cjs/ViewingSpace.d.ts +1 -0
- package/lib/cjs/ViewingSpace.d.ts.map +1 -1
- package/lib/cjs/ViewingSpace.js +1 -0
- package/lib/cjs/ViewingSpace.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +6 -2
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +12 -4
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/ViewportSync.d.ts +119 -0
- package/lib/cjs/ViewportSync.d.ts.map +1 -0
- package/lib/cjs/ViewportSync.js +187 -0
- package/lib/cjs/ViewportSync.js.map +1 -0
- package/lib/cjs/core-frontend.d.ts +10 -6
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +11 -6
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/extension/Extension.d.ts +24 -15
- package/lib/cjs/extension/Extension.d.ts.map +1 -1
- package/lib/cjs/extension/Extension.js +0 -8
- package/lib/cjs/extension/Extension.js.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.d.ts +21 -44
- package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.js +55 -64
- package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
- package/lib/cjs/extension/ExtensionRuntime.js +231 -59
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
- package/lib/cjs/extension/providers/ExtensionLoadScript.d.ts +10 -0
- package/lib/cjs/extension/providers/ExtensionLoadScript.d.ts.map +1 -0
- package/lib/cjs/extension/providers/ExtensionLoadScript.js +55 -0
- package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -0
- package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts +52 -0
- package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts.map +1 -0
- package/lib/cjs/extension/providers/ExtensionServiceClient.js +131 -0
- package/lib/cjs/extension/providers/ExtensionServiceClient.js.map +1 -0
- package/lib/cjs/extension/providers/LocalExtensionProvider.d.ts +26 -0
- package/lib/cjs/extension/providers/LocalExtensionProvider.d.ts.map +1 -0
- package/lib/cjs/extension/providers/LocalExtensionProvider.js +24 -0
- package/lib/cjs/extension/providers/LocalExtensionProvider.js.map +1 -0
- package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts +36 -0
- package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts.map +1 -0
- package/lib/cjs/extension/providers/RemoteExtensionProvider.js +53 -0
- package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -0
- package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts +37 -0
- package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts.map +1 -0
- package/lib/cjs/extension/providers/ServiceExtensionProvider.js +84 -0
- package/lib/cjs/extension/providers/ServiceExtensionProvider.js.map +1 -0
- package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js +2 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/cjs/render/CanvasDecoration.d.ts +2 -0
- package/lib/cjs/render/CanvasDecoration.d.ts.map +1 -1
- package/lib/cjs/render/CanvasDecoration.js.map +1 -1
- package/lib/cjs/render/Decorations.d.ts +1 -0
- package/lib/cjs/render/Decorations.d.ts.map +1 -1
- package/lib/cjs/render/Decorations.js +1 -0
- package/lib/cjs/render/Decorations.js.map +1 -1
- package/lib/cjs/render/FeatureSymbology.d.ts +1 -0
- package/lib/cjs/render/FeatureSymbology.d.ts.map +1 -1
- package/lib/cjs/render/FeatureSymbology.js +1 -0
- package/lib/cjs/render/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts +2 -0
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js +1 -0
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/GraphicBuilder.d.ts +33 -2
- package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBuilder.js +26 -0
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/GraphicPrimitive.d.ts +14 -0
- package/lib/cjs/render/GraphicPrimitive.d.ts.map +1 -1
- package/lib/cjs/render/GraphicPrimitive.js.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.d.ts +3 -0
- package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/cjs/render/Pixel.d.ts +1 -0
- package/lib/cjs/render/Pixel.d.ts.map +1 -1
- package/lib/cjs/render/Pixel.js +1 -0
- package/lib/cjs/render/Pixel.js.map +1 -1
- package/lib/cjs/render/RenderClipVolume.d.ts +1 -0
- package/lib/cjs/render/RenderClipVolume.d.ts.map +1 -1
- package/lib/cjs/render/RenderClipVolume.js +1 -0
- package/lib/cjs/render/RenderClipVolume.js.map +1 -1
- package/lib/cjs/render/RenderGraphic.d.ts +3 -0
- package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
- package/lib/cjs/render/RenderGraphic.js +2 -0
- package/lib/cjs/render/RenderGraphic.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +4 -3
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +4 -3
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTexture.d.ts +7 -0
- package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
- package/lib/cjs/render/RenderTexture.js.map +1 -1
- package/lib/cjs/render/Scene.d.ts +1 -0
- package/lib/cjs/render/Scene.d.ts.map +1 -1
- package/lib/cjs/render/Scene.js +1 -0
- package/lib/cjs/render/Scene.js.map +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +10 -0
- package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.js +2 -0
- package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/cjs/render/primitives/VertexKey.d.ts +4 -2
- package/lib/cjs/render/primitives/VertexKey.d.ts.map +1 -1
- package/lib/cjs/render/primitives/VertexKey.js +23 -12
- package/lib/cjs/render/primitives/VertexKey.js.map +1 -1
- package/lib/cjs/render/primitives/VertexTable.d.ts +1 -1
- package/lib/cjs/render/primitives/VertexTable.js +30 -2
- package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +12 -4
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +20 -15
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts +2 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +6 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts +14 -12
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js +26 -25
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts +8 -8
- package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilder.js +15 -15
- package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts +11 -6
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js +12 -15
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +6 -2
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
- package/lib/cjs/render/webgl/AttributeMap.js +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.d.ts +7 -1
- package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.js +20 -10
- package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js +2 -1
- package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts +1 -0
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.js +1 -0
- package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts +14 -11
- package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.js +26 -17
- package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts +2 -0
- package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +219 -52
- package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts +5 -4
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.js +7 -6
- package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/render/webgl/System.d.ts +4 -4
- package/lib/cjs/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/render/webgl/System.js +6 -6
- package/lib/cjs/render/webgl/System.js.map +1 -1
- package/lib/cjs/render/webgl/Target.d.ts +6 -1
- package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Target.js +64 -13
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/Technique.d.ts +4 -2
- package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Technique.js +166 -135
- package/lib/cjs/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/render/webgl/TechniqueFlags.d.ts +7 -3
- package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
- package/lib/cjs/render/webgl/TechniqueFlags.js +17 -4
- package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/cjs/render/webgl/TechniqueId.d.ts +8 -7
- package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
- package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Animation.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Animation.js +2 -0
- package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Blur.d.ts +2 -1
- package/lib/cjs/render/webgl/glsl/Blur.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Blur.js +38 -6
- package/lib/cjs/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Color.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Color.js +8 -7
- package/lib/cjs/render/webgl/glsl/Color.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/CopyStencil.js +1 -1
- package/lib/cjs/render/webgl/glsl/Decode.d.ts +2 -1
- package/lib/cjs/render/webgl/glsl/Decode.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Decode.js +16 -2
- package/lib/cjs/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Edge.d.ts +2 -2
- package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Edge.js +6 -19
- package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +0 -2
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/PointString.d.ts +3 -3
- package/lib/cjs/render/webgl/glsl/PointString.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/PointString.js +6 -6
- package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Polyline.d.ts +3 -3
- package/lib/cjs/render/webgl/glsl/Polyline.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Polyline.js +6 -21
- package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.d.ts +2 -2
- package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.js +50 -34
- package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Vertex.d.ts +3 -3
- package/lib/cjs/render/webgl/glsl/Vertex.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Vertex.js +143 -57
- package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/cjs/tile/ClassifierTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/ClassifierTileTree.js +3 -4
- package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
- package/lib/cjs/tile/DisclosedTileTreeSet.d.ts +2 -0
- package/lib/cjs/tile/DisclosedTileTreeSet.d.ts.map +1 -1
- package/lib/cjs/tile/DisclosedTileTreeSet.js +1 -0
- package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
- package/lib/cjs/tile/DynamicIModelTile.js +4 -2
- package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +19 -9
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +24 -7
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/IModelTile.js +1 -1
- package/lib/cjs/tile/IModelTile.js.map +1 -1
- package/lib/cjs/tile/IModelTileRequestChannels.d.ts +3 -3
- package/lib/cjs/tile/IModelTileRequestChannels.d.ts.map +1 -1
- package/lib/cjs/tile/IModelTileRequestChannels.js +7 -11
- package/lib/cjs/tile/IModelTileRequestChannels.js.map +1 -1
- package/lib/cjs/tile/IModelTileTree.d.ts +3 -3
- package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/IModelTileTree.js +1 -1
- package/lib/cjs/tile/IModelTileTree.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.d.ts +2 -0
- package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlReader.js +2 -0
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -1
- package/lib/cjs/tile/OPCFormatInterpreter.js +1 -2
- package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.js +4 -4
- package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.d.ts +1 -1
- package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.js +34 -6
- package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/tile/Tile.d.ts +5 -0
- package/lib/cjs/tile/Tile.d.ts.map +1 -1
- package/lib/cjs/tile/Tile.js +5 -0
- package/lib/cjs/tile/Tile.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.d.ts +18 -1
- package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
- package/lib/cjs/tile/TileAdmin.js +26 -19
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileContent.d.ts +1 -0
- package/lib/cjs/tile/TileContent.d.ts.map +1 -1
- package/lib/cjs/tile/TileContent.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.d.ts +2 -0
- package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js +1 -0
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileParams.d.ts +1 -0
- package/lib/cjs/tile/TileParams.d.ts.map +1 -1
- package/lib/cjs/tile/TileParams.js.map +1 -1
- package/lib/cjs/tile/TileRequest.d.ts +1 -0
- package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
- package/lib/cjs/tile/TileRequest.js +1 -0
- package/lib/cjs/tile/TileRequest.js.map +1 -1
- package/lib/cjs/tile/TileRequestChannel.d.ts +2 -0
- package/lib/cjs/tile/TileRequestChannel.d.ts.map +1 -1
- package/lib/cjs/tile/TileRequestChannel.js +2 -0
- package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
- package/lib/cjs/tile/TileRequestChannels.d.ts +1 -4
- package/lib/cjs/tile/TileRequestChannels.d.ts.map +1 -1
- package/lib/cjs/tile/TileRequestChannels.js +2 -6
- package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
- package/lib/cjs/tile/TileTree.d.ts +2 -0
- package/lib/cjs/tile/TileTree.d.ts.map +1 -1
- package/lib/cjs/tile/TileTree.js +2 -0
- package/lib/cjs/tile/TileTree.js.map +1 -1
- package/lib/cjs/tile/TileTreeOwner.d.ts +1 -0
- package/lib/cjs/tile/TileTreeOwner.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
- package/lib/cjs/tile/TileTreeParams.d.ts +1 -0
- package/lib/cjs/tile/TileTreeParams.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeParams.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +2 -0
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/TileTreeSupplier.d.ts +1 -0
- package/lib/cjs/tile/TileTreeSupplier.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
- package/lib/cjs/tile/TileUsageMarker.d.ts +1 -0
- package/lib/cjs/tile/TileUsageMarker.d.ts.map +1 -1
- package/lib/cjs/tile/TileUsageMarker.js +1 -0
- package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
- package/lib/cjs/tile/TiledGraphicsProvider.d.ts +1 -0
- package/lib/cjs/tile/TiledGraphicsProvider.d.ts.map +1 -1
- package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tile/internal.d.ts +0 -2
- package/lib/cjs/tile/internal.d.ts.map +1 -1
- package/lib/cjs/tile/internal.js +0 -2
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts +2 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.js +31 -20
- package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/tile/map/BingElevation.d.ts +1 -0
- package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
- package/lib/cjs/tile/map/BingElevation.js +1 -0
- package/lib/cjs/tile/map/BingElevation.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +50 -27
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +0 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +12 -10
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerAuthentication.d.ts +20 -9
- package/lib/cjs/tile/map/MapLayerAuthentication.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerAuthentication.js +0 -8
- package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +24 -6
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js +28 -7
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js +1 -3
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts +1 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +2 -2
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileLoader.js +1 -1
- package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +2 -2
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/WmsCapabilities.d.ts +3 -2
- package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/WmsCapabilities.js +11 -10
- package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/cjs/tools/ClipViewTool.d.ts +5 -3
- package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ClipViewTool.js +4 -3
- package/lib/cjs/tools/ClipViewTool.js.map +1 -1
- package/lib/cjs/tools/EditManipulator.d.ts +1 -0
- package/lib/cjs/tools/EditManipulator.d.ts.map +1 -1
- package/lib/cjs/tools/EditManipulator.js +1 -0
- package/lib/cjs/tools/EditManipulator.js.map +1 -1
- package/lib/cjs/tools/EventController.d.ts +1 -0
- package/lib/cjs/tools/EventController.d.ts.map +1 -1
- package/lib/cjs/tools/EventController.js +1 -0
- package/lib/cjs/tools/EventController.js.map +1 -1
- package/lib/cjs/tools/PrimitiveTool.d.ts +4 -0
- package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
- package/lib/cjs/tools/PrimitiveTool.js +7 -0
- package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
- package/lib/cjs/tools/SelectTool.d.ts +3 -0
- package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
- package/lib/cjs/tools/SelectTool.js +3 -0
- package/lib/cjs/tools/SelectTool.js.map +1 -1
- package/lib/cjs/tools/Tool.d.ts +41 -6
- 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 +16 -22
- package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js +47 -8
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ToolAssistance.d.ts +7 -0
- package/lib/cjs/tools/ToolAssistance.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAssistance.js +3 -0
- package/lib/cjs/tools/ToolAssistance.js.map +1 -1
- package/lib/cjs/tools/ToolSettings.d.ts +3 -0
- package/lib/cjs/tools/ToolSettings.d.ts.map +1 -1
- package/lib/cjs/tools/ToolSettings.js +3 -0
- package/lib/cjs/tools/ToolSettings.js.map +1 -1
- package/lib/cjs/tools/ViewTool.d.ts +3 -1
- package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ViewTool.js +9 -5
- 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.d.ts +1 -0
- package/lib/esm/AccuSnap.d.ts.map +1 -1
- package/lib/esm/AccuSnap.js +1 -0
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.js +4 -2
- package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeightsProps.d.ts +1 -1
- package/lib/esm/ApproximateTerrainHeightsProps.d.ts.map +1 -1
- package/lib/esm/ApproximateTerrainHeightsProps.js +1 -1
- package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
- package/lib/esm/AuxCoordSys.d.ts +12 -2
- package/lib/esm/AuxCoordSys.d.ts.map +1 -1
- package/lib/esm/AuxCoordSys.js +12 -2
- package/lib/esm/AuxCoordSys.js.map +1 -1
- package/lib/esm/BingLocation.d.ts +1 -0
- package/lib/esm/BingLocation.d.ts.map +1 -1
- package/lib/esm/BingLocation.js +1 -0
- package/lib/esm/BingLocation.js.map +1 -1
- package/lib/esm/BriefcaseConnection.d.ts +35 -1
- package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
- package/lib/esm/BriefcaseConnection.js +50 -0
- package/lib/esm/BriefcaseConnection.js.map +1 -1
- package/lib/esm/CategorySelectorState.d.ts +1 -0
- package/lib/esm/CategorySelectorState.d.ts.map +1 -1
- package/lib/esm/CategorySelectorState.js +1 -0
- package/lib/esm/CategorySelectorState.js.map +1 -1
- package/lib/esm/ChangeFlags.d.ts +1 -0
- package/lib/esm/ChangeFlags.d.ts.map +1 -1
- package/lib/esm/ChangeFlags.js +1 -0
- package/lib/esm/ChangeFlags.js.map +1 -1
- package/lib/esm/ContextRealityModelState.d.ts +1 -0
- package/lib/esm/ContextRealityModelState.d.ts.map +1 -1
- package/lib/esm/ContextRealityModelState.js +1 -0
- package/lib/esm/ContextRealityModelState.js.map +1 -1
- package/lib/esm/CoordSystem.d.ts +1 -0
- package/lib/esm/CoordSystem.d.ts.map +1 -1
- package/lib/esm/CoordSystem.js +1 -0
- package/lib/esm/CoordSystem.js.map +1 -1
- package/lib/esm/DisplayStyleState.d.ts +4 -0
- package/lib/esm/DisplayStyleState.d.ts.map +1 -1
- package/lib/esm/DisplayStyleState.js +9 -4
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/DrawingViewState.d.ts +5 -2
- package/lib/esm/DrawingViewState.d.ts.map +1 -1
- package/lib/esm/DrawingViewState.js +34 -3
- package/lib/esm/DrawingViewState.js.map +1 -1
- package/lib/esm/ElementLocateManager.d.ts +23 -5
- package/lib/esm/ElementLocateManager.d.ts.map +1 -1
- package/lib/esm/ElementLocateManager.js +19 -4
- package/lib/esm/ElementLocateManager.js.map +1 -1
- package/lib/esm/EmphasizeElements.d.ts +1 -0
- package/lib/esm/EmphasizeElements.d.ts.map +1 -1
- package/lib/esm/EmphasizeElements.js +1 -0
- package/lib/esm/EmphasizeElements.js.map +1 -1
- package/lib/esm/EntityState.d.ts +2 -0
- package/lib/esm/EntityState.d.ts.map +1 -1
- package/lib/esm/EntityState.js +2 -0
- package/lib/esm/EntityState.js.map +1 -1
- package/lib/esm/FeatureOverrideProvider.d.ts +1 -0
- package/lib/esm/FeatureOverrideProvider.d.ts.map +1 -1
- package/lib/esm/FeatureOverrideProvider.js.map +1 -1
- package/lib/esm/FlashSettings.d.ts +3 -0
- package/lib/esm/FlashSettings.d.ts.map +1 -1
- package/lib/esm/FlashSettings.js +2 -0
- package/lib/esm/FlashSettings.js.map +1 -1
- package/lib/esm/FrontendHubAccess.d.ts +4 -1
- package/lib/esm/FrontendHubAccess.d.ts.map +1 -1
- package/lib/esm/FrontendHubAccess.js.map +1 -1
- package/lib/esm/FrontendLoggerCategory.d.ts +6 -1
- package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
- package/lib/esm/FrontendLoggerCategory.js +5 -0
- package/lib/esm/FrontendLoggerCategory.js.map +1 -1
- package/lib/esm/FrustumAnimator.d.ts +2 -0
- package/lib/esm/FrustumAnimator.d.ts.map +1 -1
- package/lib/esm/FrustumAnimator.js +2 -0
- package/lib/esm/FrustumAnimator.js.map +1 -1
- package/lib/esm/FuzzySearch.d.ts +1 -0
- package/lib/esm/FuzzySearch.d.ts.map +1 -1
- package/lib/esm/FuzzySearch.js.map +1 -1
- package/lib/esm/GlobeAnimator.d.ts +1 -0
- package/lib/esm/GlobeAnimator.d.ts.map +1 -1
- package/lib/esm/GlobeAnimator.js +1 -0
- package/lib/esm/GlobeAnimator.js.map +1 -1
- package/lib/esm/HitDetail.d.ts +26 -5
- package/lib/esm/HitDetail.d.ts.map +1 -1
- package/lib/esm/HitDetail.js +26 -5
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +9 -0
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +37 -22
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +11 -2
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +23 -2
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/ImageUtil.d.ts +15 -2
- package/lib/esm/ImageUtil.d.ts.map +1 -1
- package/lib/esm/ImageUtil.js +19 -4
- package/lib/esm/ImageUtil.js.map +1 -1
- package/lib/esm/IpcApp.d.ts +1 -0
- package/lib/esm/IpcApp.d.ts.map +1 -1
- package/lib/esm/IpcApp.js +1 -0
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/MarginPercent.d.ts +1 -0
- package/lib/esm/MarginPercent.d.ts.map +1 -1
- package/lib/esm/MarginPercent.js +1 -0
- package/lib/esm/MarginPercent.js.map +1 -1
- package/lib/esm/Marker.d.ts +16 -3
- package/lib/esm/Marker.d.ts.map +1 -1
- package/lib/esm/Marker.js +3 -0
- package/lib/esm/Marker.js.map +1 -1
- package/lib/esm/ModelSelectorState.d.ts +1 -0
- package/lib/esm/ModelSelectorState.d.ts.map +1 -1
- package/lib/esm/ModelSelectorState.js +1 -0
- package/lib/esm/ModelSelectorState.js.map +1 -1
- package/lib/esm/ModelState.d.ts +10 -0
- package/lib/esm/ModelState.d.ts.map +1 -1
- package/lib/esm/ModelState.js +10 -0
- package/lib/esm/ModelState.js.map +1 -1
- package/lib/esm/NotificationManager.d.ts +11 -0
- package/lib/esm/NotificationManager.d.ts.map +1 -1
- package/lib/esm/NotificationManager.js +10 -0
- package/lib/esm/NotificationManager.js.map +1 -1
- package/lib/esm/PerModelCategoryVisibility.d.ts +1 -0
- package/lib/esm/PerModelCategoryVisibility.d.ts.map +1 -1
- package/lib/esm/PerModelCategoryVisibility.js +1 -0
- package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
- package/lib/esm/SelectionSet.d.ts +7 -0
- package/lib/esm/SelectionSet.d.ts.map +1 -1
- package/lib/esm/SelectionSet.js +3 -0
- package/lib/esm/SelectionSet.js.map +1 -1
- package/lib/esm/SheetViewState.d.ts +6 -5
- package/lib/esm/SheetViewState.d.ts.map +1 -1
- package/lib/esm/SheetViewState.js +59 -7
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/SpatialViewState.d.ts +7 -2
- package/lib/esm/SpatialViewState.d.ts.map +1 -1
- package/lib/esm/SpatialViewState.js +18 -4
- package/lib/esm/SpatialViewState.js.map +1 -1
- package/lib/esm/Sprites.d.ts +3 -0
- package/lib/esm/Sprites.d.ts.map +1 -1
- package/lib/esm/Sprites.js +3 -0
- package/lib/esm/Sprites.js.map +1 -1
- package/lib/esm/StandardView.d.ts +1 -0
- package/lib/esm/StandardView.d.ts.map +1 -1
- package/lib/esm/StandardView.js +1 -0
- package/lib/esm/StandardView.js.map +1 -1
- package/lib/esm/SubCategoriesCache.d.ts +14 -7
- package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
- package/lib/esm/SubCategoriesCache.js +37 -9
- package/lib/esm/SubCategoriesCache.js.map +1 -1
- package/lib/esm/TentativePoint.d.ts +4 -1
- package/lib/esm/TentativePoint.d.ts.map +1 -1
- package/lib/esm/TentativePoint.js +4 -1
- package/lib/esm/TentativePoint.js.map +1 -1
- package/lib/esm/Tiles.d.ts +1 -0
- package/lib/esm/Tiles.d.ts.map +1 -1
- package/lib/esm/Tiles.js +1 -0
- package/lib/esm/Tiles.js.map +1 -1
- package/lib/esm/ViewAnimation.d.ts +6 -0
- package/lib/esm/ViewAnimation.d.ts.map +1 -1
- package/lib/esm/ViewAnimation.js.map +1 -1
- package/lib/esm/ViewCreator2d.d.ts +2 -0
- package/lib/esm/ViewCreator2d.d.ts.map +1 -1
- package/lib/esm/ViewCreator2d.js +1 -0
- package/lib/esm/ViewCreator2d.js.map +1 -1
- package/lib/esm/ViewCreator3d.d.ts +2 -8
- package/lib/esm/ViewCreator3d.d.ts.map +1 -1
- package/lib/esm/ViewCreator3d.js +12 -38
- package/lib/esm/ViewCreator3d.js.map +1 -1
- package/lib/esm/ViewGlobalLocation.d.ts +3 -0
- package/lib/esm/ViewGlobalLocation.d.ts.map +1 -1
- package/lib/esm/ViewGlobalLocation.js +1 -0
- package/lib/esm/ViewGlobalLocation.js.map +1 -1
- package/lib/esm/ViewManager.d.ts +3 -0
- package/lib/esm/ViewManager.d.ts.map +1 -1
- package/lib/esm/ViewManager.js +2 -0
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewPose.d.ts +1 -0
- package/lib/esm/ViewPose.d.ts.map +1 -1
- package/lib/esm/ViewPose.js +1 -0
- package/lib/esm/ViewPose.js.map +1 -1
- package/lib/esm/ViewRect.d.ts +1 -0
- package/lib/esm/ViewRect.d.ts.map +1 -1
- package/lib/esm/ViewRect.js +1 -0
- package/lib/esm/ViewRect.js.map +1 -1
- package/lib/esm/ViewState.d.ts +17 -2
- package/lib/esm/ViewState.d.ts.map +1 -1
- package/lib/esm/ViewState.js +41 -10
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/ViewStatus.d.ts +1 -0
- package/lib/esm/ViewStatus.d.ts.map +1 -1
- package/lib/esm/ViewStatus.js +1 -0
- package/lib/esm/ViewStatus.js.map +1 -1
- package/lib/esm/ViewingSpace.d.ts +1 -0
- package/lib/esm/ViewingSpace.d.ts.map +1 -1
- package/lib/esm/ViewingSpace.js +1 -0
- package/lib/esm/ViewingSpace.js.map +1 -1
- package/lib/esm/Viewport.d.ts +6 -2
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +12 -4
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/ViewportSync.d.ts +119 -0
- package/lib/esm/ViewportSync.d.ts.map +1 -0
- package/lib/esm/ViewportSync.js +177 -0
- package/lib/esm/ViewportSync.js.map +1 -0
- package/lib/esm/core-frontend.d.ts +10 -6
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +11 -6
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/extension/Extension.d.ts +24 -15
- package/lib/esm/extension/Extension.d.ts.map +1 -1
- package/lib/esm/extension/Extension.js +1 -7
- package/lib/esm/extension/Extension.js.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.d.ts +21 -44
- package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.js +55 -64
- package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
- package/lib/esm/extension/ExtensionRuntime.js +239 -59
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
- package/lib/esm/extension/providers/ExtensionLoadScript.d.ts +10 -0
- package/lib/esm/extension/providers/ExtensionLoadScript.d.ts.map +1 -0
- package/lib/esm/extension/providers/ExtensionLoadScript.js +51 -0
- package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -0
- package/lib/esm/extension/providers/ExtensionServiceClient.d.ts +52 -0
- package/lib/esm/extension/providers/ExtensionServiceClient.d.ts.map +1 -0
- package/lib/esm/extension/providers/ExtensionServiceClient.js +127 -0
- package/lib/esm/extension/providers/ExtensionServiceClient.js.map +1 -0
- package/lib/esm/extension/providers/LocalExtensionProvider.d.ts +26 -0
- package/lib/esm/extension/providers/LocalExtensionProvider.d.ts.map +1 -0
- package/lib/esm/extension/providers/LocalExtensionProvider.js +20 -0
- package/lib/esm/extension/providers/LocalExtensionProvider.js.map +1 -0
- package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts +36 -0
- package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts.map +1 -0
- package/lib/esm/extension/providers/RemoteExtensionProvider.js +49 -0
- package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -0
- package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts +37 -0
- package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts.map +1 -0
- package/lib/esm/extension/providers/ServiceExtensionProvider.js +80 -0
- package/lib/esm/extension/providers/ServiceExtensionProvider.js.map +1 -0
- package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.js +3 -2
- package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/esm/render/CanvasDecoration.d.ts +2 -0
- package/lib/esm/render/CanvasDecoration.d.ts.map +1 -1
- package/lib/esm/render/CanvasDecoration.js.map +1 -1
- package/lib/esm/render/Decorations.d.ts +1 -0
- package/lib/esm/render/Decorations.d.ts.map +1 -1
- package/lib/esm/render/Decorations.js +1 -0
- package/lib/esm/render/Decorations.js.map +1 -1
- package/lib/esm/render/FeatureSymbology.d.ts +1 -0
- package/lib/esm/render/FeatureSymbology.d.ts.map +1 -1
- package/lib/esm/render/FeatureSymbology.js +1 -0
- package/lib/esm/render/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/GraphicBranch.d.ts +2 -0
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js +1 -0
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/GraphicBuilder.d.ts +33 -2
- package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/esm/render/GraphicBuilder.js +27 -1
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/GraphicPrimitive.d.ts +14 -0
- package/lib/esm/render/GraphicPrimitive.d.ts.map +1 -1
- package/lib/esm/render/GraphicPrimitive.js.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.d.ts +3 -0
- package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/esm/render/Pixel.d.ts +1 -0
- package/lib/esm/render/Pixel.d.ts.map +1 -1
- package/lib/esm/render/Pixel.js +1 -0
- package/lib/esm/render/Pixel.js.map +1 -1
- package/lib/esm/render/RenderClipVolume.d.ts +1 -0
- package/lib/esm/render/RenderClipVolume.d.ts.map +1 -1
- package/lib/esm/render/RenderClipVolume.js +1 -0
- package/lib/esm/render/RenderClipVolume.js.map +1 -1
- package/lib/esm/render/RenderGraphic.d.ts +3 -0
- package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
- package/lib/esm/render/RenderGraphic.js +2 -0
- package/lib/esm/render/RenderGraphic.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +4 -3
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +4 -3
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTexture.d.ts +7 -0
- package/lib/esm/render/RenderTexture.d.ts.map +1 -1
- package/lib/esm/render/RenderTexture.js.map +1 -1
- package/lib/esm/render/Scene.d.ts +1 -0
- package/lib/esm/render/Scene.d.ts.map +1 -1
- package/lib/esm/render/Scene.js +1 -0
- package/lib/esm/render/Scene.js.map +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +10 -0
- package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.js +2 -0
- package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/esm/render/primitives/VertexKey.d.ts +4 -2
- package/lib/esm/render/primitives/VertexKey.d.ts.map +1 -1
- package/lib/esm/render/primitives/VertexKey.js +24 -13
- package/lib/esm/render/primitives/VertexKey.js.map +1 -1
- package/lib/esm/render/primitives/VertexTable.d.ts +1 -1
- package/lib/esm/render/primitives/VertexTable.js +30 -2
- package/lib/esm/render/primitives/VertexTable.js.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +12 -4
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +20 -15
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts +2 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +7 -2
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts +14 -12
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.js +26 -25
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts +8 -8
- package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilder.js +15 -15
- package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts +11 -6
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.js +13 -16
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js +6 -2
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
- package/lib/esm/render/webgl/AttributeMap.js +1 -1
- package/lib/esm/render/webgl/CachedGeometry.d.ts +7 -1
- package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.js +19 -9
- package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.js +2 -1
- package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.d.ts +1 -0
- package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.js +1 -0
- package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts +14 -11
- package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.js +27 -18
- package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts +2 -0
- package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +220 -53
- package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.d.ts +5 -4
- package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.js +7 -6
- package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/render/webgl/System.d.ts +4 -4
- package/lib/esm/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/render/webgl/System.js +6 -6
- package/lib/esm/render/webgl/System.js.map +1 -1
- package/lib/esm/render/webgl/Target.d.ts +6 -1
- package/lib/esm/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/render/webgl/Target.js +64 -13
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/Technique.d.ts +4 -2
- package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
- package/lib/esm/render/webgl/Technique.js +166 -135
- package/lib/esm/render/webgl/Technique.js.map +1 -1
- package/lib/esm/render/webgl/TechniqueFlags.d.ts +7 -3
- package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
- package/lib/esm/render/webgl/TechniqueFlags.js +17 -4
- package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/esm/render/webgl/TechniqueId.d.ts +8 -7
- package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
- package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Animation.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Animation.js +2 -0
- package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Blur.d.ts +2 -1
- package/lib/esm/render/webgl/glsl/Blur.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Blur.js +38 -6
- package/lib/esm/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Color.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Color.js +8 -7
- package/lib/esm/render/webgl/glsl/Color.js.map +1 -1
- package/lib/esm/render/webgl/glsl/CopyStencil.js +1 -1
- package/lib/esm/render/webgl/glsl/Decode.d.ts +2 -1
- package/lib/esm/render/webgl/glsl/Decode.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Decode.js +15 -1
- package/lib/esm/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Edge.d.ts +2 -2
- package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Edge.js +7 -20
- package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js +1 -3
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/webgl/glsl/PointString.d.ts +3 -3
- package/lib/esm/render/webgl/glsl/PointString.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/PointString.js +6 -6
- package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Polyline.d.ts +3 -3
- package/lib/esm/render/webgl/glsl/Polyline.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Polyline.js +7 -22
- package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.d.ts +2 -2
- package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.js +51 -35
- package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Vertex.d.ts +3 -3
- package/lib/esm/render/webgl/glsl/Vertex.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Vertex.js +142 -56
- package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/esm/tile/ClassifierTileTree.d.ts.map +1 -1
- package/lib/esm/tile/ClassifierTileTree.js +3 -4
- package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
- package/lib/esm/tile/DisclosedTileTreeSet.d.ts +2 -0
- package/lib/esm/tile/DisclosedTileTreeSet.d.ts.map +1 -1
- package/lib/esm/tile/DisclosedTileTreeSet.js +1 -0
- package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
- package/lib/esm/tile/DynamicIModelTile.js +4 -2
- package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +19 -9
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +23 -6
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/IModelTile.js +1 -1
- package/lib/esm/tile/IModelTile.js.map +1 -1
- package/lib/esm/tile/IModelTileRequestChannels.d.ts +3 -3
- package/lib/esm/tile/IModelTileRequestChannels.d.ts.map +1 -1
- package/lib/esm/tile/IModelTileRequestChannels.js +7 -11
- package/lib/esm/tile/IModelTileRequestChannels.js.map +1 -1
- package/lib/esm/tile/IModelTileTree.d.ts +3 -3
- package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/esm/tile/IModelTileTree.js +1 -1
- package/lib/esm/tile/IModelTileTree.js.map +1 -1
- package/lib/esm/tile/ImdlReader.d.ts +2 -0
- package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
- package/lib/esm/tile/ImdlReader.js +2 -0
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -1
- package/lib/esm/tile/OPCFormatInterpreter.js +2 -3
- package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.js +5 -5
- package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/tile/RealityTileLoader.d.ts +1 -1
- package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileLoader.js +36 -8
- package/lib/esm/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/tile/Tile.d.ts +5 -0
- package/lib/esm/tile/Tile.d.ts.map +1 -1
- package/lib/esm/tile/Tile.js +5 -0
- package/lib/esm/tile/Tile.js.map +1 -1
- package/lib/esm/tile/TileAdmin.d.ts +18 -1
- package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
- package/lib/esm/tile/TileAdmin.js +27 -20
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileContent.d.ts +1 -0
- package/lib/esm/tile/TileContent.d.ts.map +1 -1
- package/lib/esm/tile/TileContent.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.d.ts +2 -0
- package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js +1 -0
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileParams.d.ts +1 -0
- package/lib/esm/tile/TileParams.d.ts.map +1 -1
- package/lib/esm/tile/TileParams.js.map +1 -1
- package/lib/esm/tile/TileRequest.d.ts +1 -0
- package/lib/esm/tile/TileRequest.d.ts.map +1 -1
- package/lib/esm/tile/TileRequest.js +1 -0
- package/lib/esm/tile/TileRequest.js.map +1 -1
- package/lib/esm/tile/TileRequestChannel.d.ts +2 -0
- package/lib/esm/tile/TileRequestChannel.d.ts.map +1 -1
- package/lib/esm/tile/TileRequestChannel.js +2 -0
- package/lib/esm/tile/TileRequestChannel.js.map +1 -1
- package/lib/esm/tile/TileRequestChannels.d.ts +1 -4
- package/lib/esm/tile/TileRequestChannels.d.ts.map +1 -1
- package/lib/esm/tile/TileRequestChannels.js +2 -6
- package/lib/esm/tile/TileRequestChannels.js.map +1 -1
- package/lib/esm/tile/TileTree.d.ts +2 -0
- package/lib/esm/tile/TileTree.d.ts.map +1 -1
- package/lib/esm/tile/TileTree.js +2 -0
- package/lib/esm/tile/TileTree.js.map +1 -1
- package/lib/esm/tile/TileTreeOwner.d.ts +1 -0
- package/lib/esm/tile/TileTreeOwner.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeOwner.js.map +1 -1
- package/lib/esm/tile/TileTreeParams.d.ts +1 -0
- package/lib/esm/tile/TileTreeParams.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeParams.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +2 -0
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +2 -0
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/TileTreeSupplier.d.ts +1 -0
- package/lib/esm/tile/TileTreeSupplier.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
- package/lib/esm/tile/TileUsageMarker.d.ts +1 -0
- package/lib/esm/tile/TileUsageMarker.d.ts.map +1 -1
- package/lib/esm/tile/TileUsageMarker.js +1 -0
- package/lib/esm/tile/TileUsageMarker.js.map +1 -1
- package/lib/esm/tile/TiledGraphicsProvider.d.ts +1 -0
- package/lib/esm/tile/TiledGraphicsProvider.d.ts.map +1 -1
- package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tile/internal.d.ts +0 -2
- package/lib/esm/tile/internal.d.ts.map +1 -1
- package/lib/esm/tile/internal.js +0 -2
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts +2 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.js +32 -21
- package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/tile/map/BingElevation.d.ts +1 -0
- package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
- package/lib/esm/tile/map/BingElevation.js +1 -0
- package/lib/esm/tile/map/BingElevation.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +51 -28
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +0 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +12 -10
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerAuthentication.d.ts +20 -9
- package/lib/esm/tile/map/MapLayerAuthentication.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerAuthentication.js +1 -7
- package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +24 -6
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js +28 -7
- package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js +2 -4
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts +1 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js +1 -1
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapTile.js +2 -2
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileLoader.js +1 -1
- package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +2 -2
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/WmsCapabilities.d.ts +3 -2
- package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
- package/lib/esm/tile/map/WmsCapabilities.js +11 -10
- package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/esm/tools/ClipViewTool.d.ts +5 -3
- package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ClipViewTool.js +4 -3
- package/lib/esm/tools/ClipViewTool.js.map +1 -1
- package/lib/esm/tools/EditManipulator.d.ts +1 -0
- package/lib/esm/tools/EditManipulator.d.ts.map +1 -1
- package/lib/esm/tools/EditManipulator.js +1 -0
- package/lib/esm/tools/EditManipulator.js.map +1 -1
- package/lib/esm/tools/EventController.d.ts +1 -0
- package/lib/esm/tools/EventController.d.ts.map +1 -1
- package/lib/esm/tools/EventController.js +1 -0
- package/lib/esm/tools/EventController.js.map +1 -1
- package/lib/esm/tools/PrimitiveTool.d.ts +4 -0
- package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
- package/lib/esm/tools/PrimitiveTool.js +7 -0
- package/lib/esm/tools/PrimitiveTool.js.map +1 -1
- package/lib/esm/tools/SelectTool.d.ts +3 -0
- package/lib/esm/tools/SelectTool.d.ts.map +1 -1
- package/lib/esm/tools/SelectTool.js +3 -0
- package/lib/esm/tools/SelectTool.js.map +1 -1
- package/lib/esm/tools/Tool.d.ts +41 -6
- 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 +16 -22
- package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/esm/tools/ToolAdmin.js +48 -9
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ToolAssistance.d.ts +7 -0
- package/lib/esm/tools/ToolAssistance.d.ts.map +1 -1
- package/lib/esm/tools/ToolAssistance.js +3 -0
- package/lib/esm/tools/ToolAssistance.js.map +1 -1
- package/lib/esm/tools/ToolSettings.d.ts +3 -0
- package/lib/esm/tools/ToolSettings.d.ts.map +1 -1
- package/lib/esm/tools/ToolSettings.js +3 -0
- package/lib/esm/tools/ToolSettings.js.map +1 -1
- package/lib/esm/tools/ViewTool.d.ts +3 -1
- package/lib/esm/tools/ViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ViewTool.js +9 -5
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/package.json +34 -25
- package/lib/cjs/TwoWayViewportSync.d.ts +0 -51
- package/lib/cjs/TwoWayViewportSync.d.ts.map +0 -1
- package/lib/cjs/TwoWayViewportSync.js +0 -87
- package/lib/cjs/TwoWayViewportSync.js.map +0 -1
- package/lib/cjs/extension/ExtensionLoader.d.ts +0 -26
- package/lib/cjs/extension/ExtensionLoader.d.ts.map +0 -1
- package/lib/cjs/extension/ExtensionLoader.js +0 -10
- package/lib/cjs/extension/ExtensionLoader.js.map +0 -1
- package/lib/cjs/extension/extensions.d.ts +0 -19
- package/lib/cjs/extension/extensions.d.ts.map +0 -1
- package/lib/cjs/extension/extensions.js +0 -36
- package/lib/cjs/extension/extensions.js.map +0 -1
- package/lib/cjs/tile/map/ArcGisTokenGenerator.d.ts +0 -35
- package/lib/cjs/tile/map/ArcGisTokenGenerator.d.ts.map +0 -1
- package/lib/cjs/tile/map/ArcGisTokenGenerator.js +0 -116
- package/lib/cjs/tile/map/ArcGisTokenGenerator.js.map +0 -1
- package/lib/cjs/tile/map/ArcGisTokenManager.d.ts +0 -13
- package/lib/cjs/tile/map/ArcGisTokenManager.d.ts.map +0 -1
- package/lib/cjs/tile/map/ArcGisTokenManager.js +0 -39
- package/lib/cjs/tile/map/ArcGisTokenManager.js.map +0 -1
- package/lib/esm/TwoWayViewportSync.d.ts +0 -51
- package/lib/esm/TwoWayViewportSync.d.ts.map +0 -1
- package/lib/esm/TwoWayViewportSync.js +0 -82
- package/lib/esm/TwoWayViewportSync.js.map +0 -1
- package/lib/esm/extension/ExtensionLoader.d.ts +0 -26
- package/lib/esm/extension/ExtensionLoader.d.ts.map +0 -1
- package/lib/esm/extension/ExtensionLoader.js +0 -9
- package/lib/esm/extension/ExtensionLoader.js.map +0 -1
- package/lib/esm/extension/extensions.d.ts +0 -19
- package/lib/esm/extension/extensions.d.ts.map +0 -1
- package/lib/esm/extension/extensions.js +0 -24
- package/lib/esm/extension/extensions.js.map +0 -1
- package/lib/esm/tile/map/ArcGisTokenGenerator.d.ts +0 -35
- package/lib/esm/tile/map/ArcGisTokenGenerator.d.ts.map +0 -1
- package/lib/esm/tile/map/ArcGisTokenGenerator.js +0 -112
- package/lib/esm/tile/map/ArcGisTokenGenerator.js.map +0 -1
- package/lib/esm/tile/map/ArcGisTokenManager.d.ts +0 -13
- package/lib/esm/tile/map/ArcGisTokenManager.d.ts.map +0 -1
- package/lib/esm/tile/map/ArcGisTokenManager.js +0 -35
- package/lib/esm/tile/map/ArcGisTokenManager.js.map +0 -1
package/lib/cjs/ImageUtil.js
CHANGED
|
@@ -35,6 +35,7 @@ function rgbaFromRgba(rgba, src, idx) {
|
|
|
35
35
|
* @param barStyle CSS style string to apply to any side bars; defaults to "#C0C0C0", which is silver.
|
|
36
36
|
* @returns an [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object containing the resized image and any requested side bars.
|
|
37
37
|
* @public
|
|
38
|
+
* @extensions
|
|
38
39
|
*/
|
|
39
40
|
function canvasToResizedCanvasWithBars(canvasIn, targetSize, barSize = new core_geometry_1.Point2d(0, 0), barStyle = "#C0C0C0") {
|
|
40
41
|
const canvasOut = document.createElement("canvas");
|
|
@@ -60,6 +61,7 @@ exports.canvasToResizedCanvasWithBars = canvasToResizedCanvasWithBars;
|
|
|
60
61
|
* @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImageBuffer]]).
|
|
61
62
|
* @returns an [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object containing the contents of the source image buffer, or undefined if the conversion fails.
|
|
62
63
|
* @public
|
|
64
|
+
* @extensions
|
|
63
65
|
*/
|
|
64
66
|
function imageBufferToCanvas(buffer, preserveAlpha = true) {
|
|
65
67
|
const canvas = document.createElement("canvas");
|
|
@@ -93,6 +95,7 @@ exports.imageBufferToCanvas = imageBufferToCanvas;
|
|
|
93
95
|
* @param format the desired format of the created ImageBuffer; defaults to [[ImageBufferFormat.Rgba]].
|
|
94
96
|
* @returns an [[ImageBuffer]] object containing the contents of the source canvas, or undefined if the conversion fails.
|
|
95
97
|
* @public
|
|
98
|
+
* @extensions
|
|
96
99
|
*/
|
|
97
100
|
function canvasToImageBuffer(canvas, format = core_common_1.ImageBufferFormat.Rgba) {
|
|
98
101
|
const context = canvas.getContext("2d");
|
|
@@ -138,6 +141,7 @@ function canvasToImageBuffer(canvas, format = core_common_1.ImageBufferFormat.Rg
|
|
|
138
141
|
exports.canvasToImageBuffer = canvasToImageBuffer;
|
|
139
142
|
/** Get a string describing the mime type associated with an ImageSource format.
|
|
140
143
|
* @public
|
|
144
|
+
* @extensions
|
|
141
145
|
*/
|
|
142
146
|
function getImageSourceMimeType(format) {
|
|
143
147
|
switch (format) {
|
|
@@ -153,6 +157,7 @@ function getImageSourceMimeType(format) {
|
|
|
153
157
|
exports.getImageSourceMimeType = getImageSourceMimeType;
|
|
154
158
|
/** Get the ImageSourceFormat corresponding to the mime type string, or undefined if the string does not identify a supported ImageSourceFormat.
|
|
155
159
|
* @public
|
|
160
|
+
* @extensions
|
|
156
161
|
*/
|
|
157
162
|
function getImageSourceFormatForMimeType(mimeType) {
|
|
158
163
|
switch (mimeType) {
|
|
@@ -167,6 +172,7 @@ exports.getImageSourceFormatForMimeType = getImageSourceFormatForMimeType;
|
|
|
167
172
|
* @param source The ImageSource containing the binary jpeg or png data.
|
|
168
173
|
* @returns a Promise which resolves to an HTMLImageElement containing the uncompressed bitmap image in RGBA format.
|
|
169
174
|
* @public
|
|
175
|
+
* @extensions
|
|
170
176
|
*/
|
|
171
177
|
async function imageElementFromImageSource(source) {
|
|
172
178
|
const blob = new Blob([source.data], { type: getImageSourceMimeType(source.format) });
|
|
@@ -175,15 +181,19 @@ async function imageElementFromImageSource(source) {
|
|
|
175
181
|
exports.imageElementFromImageSource = imageElementFromImageSource;
|
|
176
182
|
/** Create an html Image element from a URL.
|
|
177
183
|
* @param url The URL pointing to the image data.
|
|
184
|
+
* @param skipCrossOriginCheck Set this to true to allow an image from a different origin than the web app to load. Default is false.
|
|
178
185
|
* @returns A Promise resolving to an HTMLImageElement when the image data has been loaded from the URL.
|
|
179
186
|
* @see tryImageElementFromUrl.
|
|
180
187
|
* @public
|
|
188
|
+
* @extensions
|
|
181
189
|
*/
|
|
182
|
-
async function imageElementFromUrl(url) {
|
|
190
|
+
async function imageElementFromUrl(url, skipCrossOriginCheck = false) {
|
|
183
191
|
// We must set crossorigin property so that images loaded from same origin can be used with texImage2d.
|
|
184
192
|
// We must do that outside of the promise constructor or it won't work, for reasons.
|
|
185
193
|
const image = new Image();
|
|
186
|
-
|
|
194
|
+
if (!skipCrossOriginCheck) {
|
|
195
|
+
image.crossOrigin = "anonymous";
|
|
196
|
+
}
|
|
187
197
|
return new Promise((resolve, reject) => {
|
|
188
198
|
image.onload = () => resolve(image);
|
|
189
199
|
// The "error" produced by Image is not an Error. It looks like an Event, but isn't one.
|
|
@@ -194,13 +204,14 @@ async function imageElementFromUrl(url) {
|
|
|
194
204
|
exports.imageElementFromUrl = imageElementFromUrl;
|
|
195
205
|
/** Try to create an html Image element from a URL.
|
|
196
206
|
* @param url The URL pointing to the image data.
|
|
207
|
+
* @param skipCrossOriginCheck Set this to true to allow an image from a different origin than the web app to load. Default is false.
|
|
197
208
|
* @returns A Promise resolving to an HTMLImageElement when the image data has been loaded from the URL, or to `undefined` if an exception occurred.
|
|
198
209
|
* @see imageElementFromUrl
|
|
199
210
|
* @public
|
|
200
211
|
*/
|
|
201
|
-
async function tryImageElementFromUrl(url) {
|
|
212
|
+
async function tryImageElementFromUrl(url, skipCrossOriginCheck = false) {
|
|
202
213
|
try {
|
|
203
|
-
return await imageElementFromUrl(url);
|
|
214
|
+
return await imageElementFromUrl(url, skipCrossOriginCheck);
|
|
204
215
|
}
|
|
205
216
|
catch {
|
|
206
217
|
return undefined;
|
|
@@ -212,6 +223,7 @@ exports.tryImageElementFromUrl = tryImageElementFromUrl;
|
|
|
212
223
|
* @param source The ImageSource containing the binary jpeg or png data.
|
|
213
224
|
* @returns a Promise resolving to a Point2d of which x corresponds to the integer width of the uncompressed bitmap and y to the height.
|
|
214
225
|
* @public
|
|
226
|
+
* @extensions
|
|
215
227
|
*/
|
|
216
228
|
async function extractImageSourceDimensions(source) {
|
|
217
229
|
const image = await imageElementFromImageSource(source);
|
|
@@ -224,6 +236,7 @@ exports.extractImageSourceDimensions = extractImageSourceDimensions;
|
|
|
224
236
|
* @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImageBuffer]]).
|
|
225
237
|
* @returns a data url as a string suitable for setting as the `src` property of an HTMLImageElement, or undefined if the url could not be created.
|
|
226
238
|
* @public
|
|
239
|
+
* @extensions
|
|
227
240
|
*/
|
|
228
241
|
function imageBufferToPngDataUrl(buffer, preserveAlpha = true) {
|
|
229
242
|
// The default format (and the only format required to be supported) for toDataUrl() is "image/png".
|
|
@@ -237,6 +250,7 @@ exports.imageBufferToPngDataUrl = imageBufferToPngDataUrl;
|
|
|
237
250
|
* @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImageBuffer]]).
|
|
238
251
|
* @returns a base64-encoded string representing the image as a PNG, or undefined if the conversion failed.
|
|
239
252
|
* @public
|
|
253
|
+
* @extensions
|
|
240
254
|
*/
|
|
241
255
|
function imageBufferToBase64EncodedPng(buffer, preserveAlpha = true) {
|
|
242
256
|
const urlPrefix = "data:image/png;base64,";
|
|
@@ -286,6 +300,7 @@ exports.getCenteredViewRect = getCenteredViewRect;
|
|
|
286
300
|
* @param minCompressionQuality The minimum acceptable image quality as a number between 0 (lowest quality) and 1 (highest quality).
|
|
287
301
|
* @returns A [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) for the image, or `undefined` if the compression and size constraints could not be met.
|
|
288
302
|
* @public
|
|
303
|
+
* @extensions
|
|
289
304
|
*/
|
|
290
305
|
function getCompressedJpegFromCanvas(canvas, maxBytes = 60000, minCompressionQuality = 0.1) {
|
|
291
306
|
const decrements = 0.1; // Decrements of quality
|
package/lib/cjs/ImageUtil.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageUtil.js","sourceRoot":"","sources":["../../src/ImageUtil.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { Point2d } from \"@itwin/core-geometry\";\r\nimport { ImageBuffer, ImageBufferFormat, ImageSource, ImageSourceFormat } from \"@itwin/core-common\";\r\nimport { ViewRect } from \"./ViewRect\";\r\n\r\ninterface Rgba {\r\n r: number;\r\n g: number;\r\n b: number;\r\n a: number;\r\n}\r\n\r\nconst scratchRgba = { r: 0, g: 0, b: 0, a: 0 };\r\n\r\nfunction rgbaFromAlpha(rgba: Rgba, src: Uint8Array, idx: number): number {\r\n rgba.r = rgba.g = rgba.b = rgba.a = src[idx];\r\n return idx + 1;\r\n}\r\n\r\nfunction rgbaFromRgb(rgba: Rgba, src: Uint8Array, idx: number): number {\r\n rgba.r = src[idx + 0];\r\n rgba.g = src[idx + 1];\r\n rgba.b = src[idx + 2];\r\n rgba.a = 255;\r\n return idx + 3;\r\n}\r\n\r\nfunction rgbaFromRgba(rgba: Rgba, src: Uint8Array, idx: number): number {\r\n rgbaFromRgb(rgba, src, idx);\r\n rgba.a = src[idx + 3];\r\n return idx + 4;\r\n}\r\n\r\n/** Resize a canvas to a desired size. The final size will be targetSize plus barSize. The original canvas is left untouched and a new, resized canvas with potential side bars is returned.\r\n * @param canvasIn the source [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) to resize.\r\n * @param targetSize the desired new size for the canvas image.\r\n * @param barSize total size of side bars to add to the image in width and height; defaults to (0, 0). For example, if you specify (2, 0), a 1 pixel side bar will be added to the left and right sides of the resized image. If an odd dimension is specified, the left or upper side of the image will be one pixel larger than the opposite side. For example, if you specify (1, 0), a 1 pixel side bar will be added to the left side of the image and a 0 pixel side bar will be added to the right side of the image.\r\n * @param barStyle CSS style string to apply to any side bars; defaults to \"#C0C0C0\", which is silver.\r\n * @returns an [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object containing the resized image and any requested side bars.\r\n * @public\r\n */\r\nexport function canvasToResizedCanvasWithBars(canvasIn: HTMLCanvasElement, targetSize: Point2d, barSize = new Point2d(0, 0), barStyle = \"#C0C0C0\"): HTMLCanvasElement {\r\n const canvasOut = document.createElement(\"canvas\");\r\n canvasOut.width = targetSize.x + barSize.x;\r\n canvasOut.height = targetSize.y + barSize.y;\r\n\r\n let adjustImageX = barSize.x / 2;\r\n let adjustImageY = barSize.y / 2;\r\n\r\n if (1 === barSize.x % 2) {\r\n adjustImageX += 0.5;\r\n }\r\n if (1 === barSize.y % 2) {\r\n adjustImageY += 0.5;\r\n }\r\n\r\n const context = canvasOut.getContext(\"2d\")!;\r\n context.fillStyle = barStyle;\r\n context.fillRect(0, 0, canvasOut.width, canvasOut.height);\r\n context.drawImage(canvasIn, adjustImageX, adjustImageY, targetSize.x, targetSize.y);\r\n return canvasOut;\r\n}\r\n\r\n/** Create a canvas element with the same dimensions and contents as an image buffer.\r\n * @param buffer the source [[ImageBuffer]] object from which the [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object will be constructed.\r\n * @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImageBuffer]]).\r\n * @returns an [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object containing the contents of the source image buffer, or undefined if the conversion fails.\r\n * @public\r\n */\r\nexport function imageBufferToCanvas(buffer: ImageBuffer, preserveAlpha: boolean = true): HTMLCanvasElement | undefined {\r\n const canvas = document.createElement(\"canvas\");\r\n if (null === canvas)\r\n return undefined;\r\n\r\n canvas.width = buffer.width;\r\n canvas.height = buffer.height;\r\n\r\n const context = canvas.getContext(\"2d\");\r\n if (null === context)\r\n return undefined;\r\n\r\n const imageData = context.createImageData(buffer.width, buffer.height);\r\n const extractRgba = ImageBufferFormat.Alpha === buffer.format ? rgbaFromAlpha : (ImageBufferFormat.Rgb === buffer.format ? rgbaFromRgb : rgbaFromRgba);\r\n\r\n const bufferData = buffer.data;\r\n let i = 0;\r\n let j = 0;\r\n const rgba = scratchRgba;\r\n while (i < bufferData.length) {\r\n i = extractRgba(rgba, bufferData, i);\r\n imageData.data[j + 0] = rgba.r;\r\n imageData.data[j + 1] = rgba.g;\r\n imageData.data[j + 2] = rgba.b;\r\n imageData.data[j + 3] = preserveAlpha ? rgba.a : 0xff;\r\n j += 4;\r\n }\r\n\r\n context.putImageData(imageData, 0, 0);\r\n return canvas;\r\n}\r\n\r\n/** Create an ImageBuffer in the specified format with the same dimensions and contents as a canvas.\r\n * @param canvas the source [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object from which the [[ImageBuffer]] object will be constructed.\r\n * @param format the desired format of the created ImageBuffer; defaults to [[ImageBufferFormat.Rgba]].\r\n * @returns an [[ImageBuffer]] object containing the contents of the source canvas, or undefined if the conversion fails.\r\n * @public\r\n */\r\nexport function canvasToImageBuffer(canvas: HTMLCanvasElement, format = ImageBufferFormat.Rgba): ImageBuffer | undefined {\r\n const context = canvas.getContext(\"2d\");\r\n if (null === context)\r\n return undefined;\r\n\r\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\r\n\r\n let imageBufferData: Uint8Array | undefined;\r\n\r\n if (ImageBufferFormat.Rgba === format) {\r\n imageBufferData = new Uint8Array(imageData.data.length);\r\n } else if (ImageBufferFormat.Rgb === format) {\r\n imageBufferData = new Uint8Array((imageData.data.length / 4) * 3);\r\n } else if (ImageBufferFormat.Alpha === format) {\r\n imageBufferData = new Uint8Array(imageData.data.length / 4);\r\n }\r\n\r\n if (undefined === imageBufferData)\r\n return undefined;\r\n\r\n let i = 0;\r\n let j = 0;\r\n while (i < imageData.data.length) {\r\n if (ImageBufferFormat.Rgba === format) {\r\n imageBufferData[j + 0] = imageData.data[i + 0];\r\n imageBufferData[j + 1] = imageData.data[i + 1];\r\n imageBufferData[j + 2] = imageData.data[i + 2];\r\n imageBufferData[j + 3] = imageData.data[i + 3];\r\n j += 4;\r\n } else if (ImageBufferFormat.Rgb === format) {\r\n imageBufferData[j + 0] = imageData.data[i + 0];\r\n imageBufferData[j + 1] = imageData.data[i + 1];\r\n imageBufferData[j + 2] = imageData.data[i + 2];\r\n j += 3;\r\n } else if (ImageBufferFormat.Alpha === format) {\r\n imageBufferData[j] = imageData.data[i + 3];\r\n j++;\r\n }\r\n i += 4;\r\n }\r\n\r\n return ImageBuffer.create(imageBufferData, format, canvas.width);\r\n}\r\n\r\n/** Get a string describing the mime type associated with an ImageSource format.\r\n * @public\r\n */\r\nexport function getImageSourceMimeType(format: ImageSourceFormat): string {\r\n\r\n switch (format) {\r\n case ImageSourceFormat.Jpeg:\r\n return \"image/jpeg\";\r\n case ImageSourceFormat.Png:\r\n return \"image/png\";\r\n case ImageSourceFormat.Svg:\r\n return \"image/svg+xml;charset=utf-8\";\r\n }\r\n return \"\";\r\n}\r\n\r\n/** Get the ImageSourceFormat corresponding to the mime type string, or undefined if the string does not identify a supported ImageSourceFormat.\r\n * @public\r\n */\r\nexport function getImageSourceFormatForMimeType(mimeType: string): ImageSourceFormat | undefined {\r\n switch (mimeType) {\r\n case \"image/jpeg\": return ImageSourceFormat.Jpeg;\r\n case \"image/png\": return ImageSourceFormat.Png;\r\n case \"image/svg+xml;charset=utf-8\": return ImageSourceFormat.Svg;\r\n default: return undefined;\r\n }\r\n}\r\n\r\n/** Extract an html Image element from a binary jpeg or png.\r\n * @param source The ImageSource containing the binary jpeg or png data.\r\n * @returns a Promise which resolves to an HTMLImageElement containing the uncompressed bitmap image in RGBA format.\r\n * @public\r\n */\r\nexport async function imageElementFromImageSource(source: ImageSource): Promise<HTMLImageElement> {\r\n const blob = new Blob([source.data], { type: getImageSourceMimeType(source.format) });\r\n return imageElementFromUrl(URL.createObjectURL(blob));\r\n}\r\n\r\n/** Create an html Image element from a URL.\r\n * @param url The URL pointing to the image data.\r\n * @returns A Promise resolving to an HTMLImageElement when the image data has been loaded from the URL.\r\n * @see tryImageElementFromUrl.\r\n * @public\r\n */\r\nexport async function imageElementFromUrl(url: string): Promise<HTMLImageElement> {\r\n // We must set crossorigin property so that images loaded from same origin can be used with texImage2d.\r\n // We must do that outside of the promise constructor or it won't work, for reasons.\r\n const image = new Image();\r\n image.crossOrigin = \"anonymous\";\r\n return new Promise((resolve: (image: HTMLImageElement) => void, reject) => {\r\n image.onload = () => resolve(image);\r\n\r\n // The \"error\" produced by Image is not an Error. It looks like an Event, but isn't one.\r\n image.onerror = () => reject(new Error(\"Failed to create image from url\"));\r\n image.src = url;\r\n });\r\n}\r\n\r\n/** Try to create an html Image element from a URL.\r\n * @param url The URL pointing to the image data.\r\n * @returns A Promise resolving to an HTMLImageElement when the image data has been loaded from the URL, or to `undefined` if an exception occurred.\r\n * @see imageElementFromUrl\r\n * @public\r\n */\r\nexport async function tryImageElementFromUrl(url: string): Promise<HTMLImageElement | undefined> {\r\n try {\r\n return await imageElementFromUrl(url);\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\n/**\r\n * Extract the dimensions of the jpeg or png data encoded in an ImageSource.\r\n * @param source The ImageSource containing the binary jpeg or png data.\r\n * @returns a Promise resolving to a Point2d of which x corresponds to the integer width of the uncompressed bitmap and y to the height.\r\n * @public\r\n */\r\nexport async function extractImageSourceDimensions(source: ImageSource): Promise<Point2d> {\r\n const image = await imageElementFromImageSource(source);\r\n return new Point2d(image.naturalWidth, image.naturalHeight);\r\n}\r\n\r\n/**\r\n * Produces a data url in \"image/png\" format from the contents of an ImageBuffer.\r\n * @param buffer The ImageBuffer, of any format.\r\n * @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImageBuffer]]).\r\n * @returns a data url as a string suitable for setting as the `src` property of an HTMLImageElement, or undefined if the url could not be created.\r\n * @public\r\n */\r\nexport function imageBufferToPngDataUrl(buffer: ImageBuffer, preserveAlpha = true): string | undefined {\r\n // The default format (and the only format required to be supported) for toDataUrl() is \"image/png\".\r\n const canvas = imageBufferToCanvas(buffer, preserveAlpha);\r\n return undefined !== canvas ? canvas.toDataURL() : undefined;\r\n}\r\n\r\n/**\r\n * Converts the contents of an ImageBuffer to PNG format.\r\n * @param buffer The ImageBuffer, of any format.\r\n * @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImageBuffer]]).\r\n * @returns a base64-encoded string representing the image as a PNG, or undefined if the conversion failed.\r\n * @public\r\n */\r\nexport function imageBufferToBase64EncodedPng(buffer: ImageBuffer, preserveAlpha = true): string | undefined {\r\n const urlPrefix = \"data:image/png;base64,\";\r\n const url = imageBufferToPngDataUrl(buffer, preserveAlpha);\r\n if (undefined === url || !url.startsWith(urlPrefix))\r\n return undefined;\r\n\r\n return url.substring(urlPrefix.length);\r\n}\r\n\r\n/** Open an image specified as a data URL in a new window or tab. Works around differences between browsers and Electron.\r\n * @param url The base64-encoded image URL.\r\n * @param title An optional title to apply to the new window.\r\n * @beta\r\n */\r\nexport function openImageDataUrlInNewWindow(url: string, title?: string): void {\r\n const win = window.open();\r\n if (null === win)\r\n return;\r\n\r\n const div = win.document.createElement(\"div\");\r\n div.innerHTML = `<img src='${url}'/>`;\r\n win.document.body.append(div);\r\n if (undefined !== title)\r\n win.document.title = title;\r\n}\r\n\r\n/** Determine the maximum [[ViewRect]] that can be fitted and centered in specified ViewRect given a required aspect ratio.\r\n * @param viewRect The rectangle in which the returned rectangle is to be centered and fitted.\r\n * @param aspectRatio Ratio of width to height.\r\n * @returns A ViewRect centered in the input rectangle.\r\n * @public\r\n */\r\nexport function getCenteredViewRect(viewRect: ViewRect, aspectRatio = 1.4): ViewRect {\r\n // Determine scale that ensures ability to return an image with the prescribed aspectRatio\r\n const scale = Math.min(viewRect.width / aspectRatio, viewRect.height);\r\n const finalWidth = scale * aspectRatio;\r\n const finalHeight = scale;\r\n const left = (viewRect.width - finalWidth) / 2.0;\r\n const right = left + finalWidth;\r\n const top = (viewRect.height - finalHeight) / 2.0;\r\n const bottom = top + finalHeight;\r\n return new ViewRect(left, top, right, bottom);\r\n}\r\n\r\n/** Produce a jpeg compressed to no more than specified bytes and of no less than specified quality.\r\n * @param canvas Canvas containing the image to be compressed.\r\n * @param maxBytes Maximum size of output jpeg in bytes.\r\n * @param minCompressionQuality The minimum acceptable image quality as a number between 0 (lowest quality) and 1 (highest quality).\r\n * @returns A [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) for the image, or `undefined` if the compression and size constraints could not be met.\r\n * @public\r\n */\r\nexport function getCompressedJpegFromCanvas(canvas: HTMLCanvasElement, maxBytes = 60000, minCompressionQuality = 0.1): string | undefined {\r\n const decrements = 0.1; // Decrements of quality\r\n const bytesPerCharacter = 2; // Assume 16-bit per character\r\n let quality = 1.0; // JPEG Compression quality\r\n\r\n while (quality > minCompressionQuality) {\r\n const data = canvas.toDataURL(\"image/jpeg\", quality);\r\n // If we are less than 60 Kb, we are good\r\n if (data.length * bytesPerCharacter < maxBytes)\r\n return data;\r\n\r\n quality -= decrements;\r\n }\r\n\r\n return undefined;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ImageUtil.js","sourceRoot":"","sources":["../../src/ImageUtil.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { Point2d } from \"@itwin/core-geometry\";\r\nimport { ImageBuffer, ImageBufferFormat, ImageSource, ImageSourceFormat } from \"@itwin/core-common\";\r\nimport { ViewRect } from \"./ViewRect\";\r\n\r\ninterface Rgba {\r\n r: number;\r\n g: number;\r\n b: number;\r\n a: number;\r\n}\r\n\r\nconst scratchRgba = { r: 0, g: 0, b: 0, a: 0 };\r\n\r\nfunction rgbaFromAlpha(rgba: Rgba, src: Uint8Array, idx: number): number {\r\n rgba.r = rgba.g = rgba.b = rgba.a = src[idx];\r\n return idx + 1;\r\n}\r\n\r\nfunction rgbaFromRgb(rgba: Rgba, src: Uint8Array, idx: number): number {\r\n rgba.r = src[idx + 0];\r\n rgba.g = src[idx + 1];\r\n rgba.b = src[idx + 2];\r\n rgba.a = 255;\r\n return idx + 3;\r\n}\r\n\r\nfunction rgbaFromRgba(rgba: Rgba, src: Uint8Array, idx: number): number {\r\n rgbaFromRgb(rgba, src, idx);\r\n rgba.a = src[idx + 3];\r\n return idx + 4;\r\n}\r\n\r\n/** Resize a canvas to a desired size. The final size will be targetSize plus barSize. The original canvas is left untouched and a new, resized canvas with potential side bars is returned.\r\n * @param canvasIn the source [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) to resize.\r\n * @param targetSize the desired new size for the canvas image.\r\n * @param barSize total size of side bars to add to the image in width and height; defaults to (0, 0). For example, if you specify (2, 0), a 1 pixel side bar will be added to the left and right sides of the resized image. If an odd dimension is specified, the left or upper side of the image will be one pixel larger than the opposite side. For example, if you specify (1, 0), a 1 pixel side bar will be added to the left side of the image and a 0 pixel side bar will be added to the right side of the image.\r\n * @param barStyle CSS style string to apply to any side bars; defaults to \"#C0C0C0\", which is silver.\r\n * @returns an [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object containing the resized image and any requested side bars.\r\n * @public\r\n * @extensions\r\n */\r\nexport function canvasToResizedCanvasWithBars(canvasIn: HTMLCanvasElement, targetSize: Point2d, barSize = new Point2d(0, 0), barStyle = \"#C0C0C0\"): HTMLCanvasElement {\r\n const canvasOut = document.createElement(\"canvas\");\r\n canvasOut.width = targetSize.x + barSize.x;\r\n canvasOut.height = targetSize.y + barSize.y;\r\n\r\n let adjustImageX = barSize.x / 2;\r\n let adjustImageY = barSize.y / 2;\r\n\r\n if (1 === barSize.x % 2) {\r\n adjustImageX += 0.5;\r\n }\r\n if (1 === barSize.y % 2) {\r\n adjustImageY += 0.5;\r\n }\r\n\r\n const context = canvasOut.getContext(\"2d\")!;\r\n context.fillStyle = barStyle;\r\n context.fillRect(0, 0, canvasOut.width, canvasOut.height);\r\n context.drawImage(canvasIn, adjustImageX, adjustImageY, targetSize.x, targetSize.y);\r\n return canvasOut;\r\n}\r\n\r\n/** Create a canvas element with the same dimensions and contents as an image buffer.\r\n * @param buffer the source [[ImageBuffer]] object from which the [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object will be constructed.\r\n * @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImageBuffer]]).\r\n * @returns an [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object containing the contents of the source image buffer, or undefined if the conversion fails.\r\n * @public\r\n * @extensions\r\n */\r\nexport function imageBufferToCanvas(buffer: ImageBuffer, preserveAlpha: boolean = true): HTMLCanvasElement | undefined {\r\n const canvas = document.createElement(\"canvas\");\r\n if (null === canvas)\r\n return undefined;\r\n\r\n canvas.width = buffer.width;\r\n canvas.height = buffer.height;\r\n\r\n const context = canvas.getContext(\"2d\");\r\n if (null === context)\r\n return undefined;\r\n\r\n const imageData = context.createImageData(buffer.width, buffer.height);\r\n const extractRgba = ImageBufferFormat.Alpha === buffer.format ? rgbaFromAlpha : (ImageBufferFormat.Rgb === buffer.format ? rgbaFromRgb : rgbaFromRgba);\r\n\r\n const bufferData = buffer.data;\r\n let i = 0;\r\n let j = 0;\r\n const rgba = scratchRgba;\r\n while (i < bufferData.length) {\r\n i = extractRgba(rgba, bufferData, i);\r\n imageData.data[j + 0] = rgba.r;\r\n imageData.data[j + 1] = rgba.g;\r\n imageData.data[j + 2] = rgba.b;\r\n imageData.data[j + 3] = preserveAlpha ? rgba.a : 0xff;\r\n j += 4;\r\n }\r\n\r\n context.putImageData(imageData, 0, 0);\r\n return canvas;\r\n}\r\n\r\n/** Create an ImageBuffer in the specified format with the same dimensions and contents as a canvas.\r\n * @param canvas the source [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object from which the [[ImageBuffer]] object will be constructed.\r\n * @param format the desired format of the created ImageBuffer; defaults to [[ImageBufferFormat.Rgba]].\r\n * @returns an [[ImageBuffer]] object containing the contents of the source canvas, or undefined if the conversion fails.\r\n * @public\r\n * @extensions\r\n */\r\nexport function canvasToImageBuffer(canvas: HTMLCanvasElement, format = ImageBufferFormat.Rgba): ImageBuffer | undefined {\r\n const context = canvas.getContext(\"2d\");\r\n if (null === context)\r\n return undefined;\r\n\r\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\r\n\r\n let imageBufferData: Uint8Array | undefined;\r\n\r\n if (ImageBufferFormat.Rgba === format) {\r\n imageBufferData = new Uint8Array(imageData.data.length);\r\n } else if (ImageBufferFormat.Rgb === format) {\r\n imageBufferData = new Uint8Array((imageData.data.length / 4) * 3);\r\n } else if (ImageBufferFormat.Alpha === format) {\r\n imageBufferData = new Uint8Array(imageData.data.length / 4);\r\n }\r\n\r\n if (undefined === imageBufferData)\r\n return undefined;\r\n\r\n let i = 0;\r\n let j = 0;\r\n while (i < imageData.data.length) {\r\n if (ImageBufferFormat.Rgba === format) {\r\n imageBufferData[j + 0] = imageData.data[i + 0];\r\n imageBufferData[j + 1] = imageData.data[i + 1];\r\n imageBufferData[j + 2] = imageData.data[i + 2];\r\n imageBufferData[j + 3] = imageData.data[i + 3];\r\n j += 4;\r\n } else if (ImageBufferFormat.Rgb === format) {\r\n imageBufferData[j + 0] = imageData.data[i + 0];\r\n imageBufferData[j + 1] = imageData.data[i + 1];\r\n imageBufferData[j + 2] = imageData.data[i + 2];\r\n j += 3;\r\n } else if (ImageBufferFormat.Alpha === format) {\r\n imageBufferData[j] = imageData.data[i + 3];\r\n j++;\r\n }\r\n i += 4;\r\n }\r\n\r\n return ImageBuffer.create(imageBufferData, format, canvas.width);\r\n}\r\n\r\n/** Get a string describing the mime type associated with an ImageSource format.\r\n * @public\r\n * @extensions\r\n */\r\nexport function getImageSourceMimeType(format: ImageSourceFormat): string {\r\n\r\n switch (format) {\r\n case ImageSourceFormat.Jpeg:\r\n return \"image/jpeg\";\r\n case ImageSourceFormat.Png:\r\n return \"image/png\";\r\n case ImageSourceFormat.Svg:\r\n return \"image/svg+xml;charset=utf-8\";\r\n }\r\n return \"\";\r\n}\r\n\r\n/** Get the ImageSourceFormat corresponding to the mime type string, or undefined if the string does not identify a supported ImageSourceFormat.\r\n * @public\r\n * @extensions\r\n */\r\nexport function getImageSourceFormatForMimeType(mimeType: string): ImageSourceFormat | undefined {\r\n switch (mimeType) {\r\n case \"image/jpeg\": return ImageSourceFormat.Jpeg;\r\n case \"image/png\": return ImageSourceFormat.Png;\r\n case \"image/svg+xml;charset=utf-8\": return ImageSourceFormat.Svg;\r\n default: return undefined;\r\n }\r\n}\r\n\r\n/** Extract an html Image element from a binary jpeg or png.\r\n * @param source The ImageSource containing the binary jpeg or png data.\r\n * @returns a Promise which resolves to an HTMLImageElement containing the uncompressed bitmap image in RGBA format.\r\n * @public\r\n * @extensions\r\n */\r\nexport async function imageElementFromImageSource(source: ImageSource): Promise<HTMLImageElement> {\r\n const blob = new Blob([source.data], { type: getImageSourceMimeType(source.format) });\r\n return imageElementFromUrl(URL.createObjectURL(blob));\r\n}\r\n\r\n/** Create an html Image element from a URL.\r\n * @param url The URL pointing to the image data.\r\n * @param skipCrossOriginCheck Set this to true to allow an image from a different origin than the web app to load. Default is false.\r\n * @returns A Promise resolving to an HTMLImageElement when the image data has been loaded from the URL.\r\n * @see tryImageElementFromUrl.\r\n * @public\r\n * @extensions\r\n */\r\nexport async function imageElementFromUrl(url: string, skipCrossOriginCheck = false): Promise<HTMLImageElement> {\r\n // We must set crossorigin property so that images loaded from same origin can be used with texImage2d.\r\n // We must do that outside of the promise constructor or it won't work, for reasons.\r\n const image = new Image();\r\n if (!skipCrossOriginCheck) {\r\n image.crossOrigin = \"anonymous\";\r\n }\r\n return new Promise((resolve: (image: HTMLImageElement) => void, reject) => {\r\n image.onload = () => resolve(image);\r\n\r\n // The \"error\" produced by Image is not an Error. It looks like an Event, but isn't one.\r\n image.onerror = () => reject(new Error(\"Failed to create image from url\"));\r\n image.src = url;\r\n });\r\n}\r\n\r\n/** Try to create an html Image element from a URL.\r\n * @param url The URL pointing to the image data.\r\n * @param skipCrossOriginCheck Set this to true to allow an image from a different origin than the web app to load. Default is false.\r\n * @returns A Promise resolving to an HTMLImageElement when the image data has been loaded from the URL, or to `undefined` if an exception occurred.\r\n * @see imageElementFromUrl\r\n * @public\r\n */\r\nexport async function tryImageElementFromUrl(url: string, skipCrossOriginCheck = false): Promise<HTMLImageElement | undefined> {\r\n try {\r\n return await imageElementFromUrl(url, skipCrossOriginCheck);\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\n/**\r\n * Extract the dimensions of the jpeg or png data encoded in an ImageSource.\r\n * @param source The ImageSource containing the binary jpeg or png data.\r\n * @returns a Promise resolving to a Point2d of which x corresponds to the integer width of the uncompressed bitmap and y to the height.\r\n * @public\r\n * @extensions\r\n */\r\nexport async function extractImageSourceDimensions(source: ImageSource): Promise<Point2d> {\r\n const image = await imageElementFromImageSource(source);\r\n return new Point2d(image.naturalWidth, image.naturalHeight);\r\n}\r\n\r\n/**\r\n * Produces a data url in \"image/png\" format from the contents of an ImageBuffer.\r\n * @param buffer The ImageBuffer, of any format.\r\n * @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImageBuffer]]).\r\n * @returns a data url as a string suitable for setting as the `src` property of an HTMLImageElement, or undefined if the url could not be created.\r\n * @public\r\n * @extensions\r\n */\r\nexport function imageBufferToPngDataUrl(buffer: ImageBuffer, preserveAlpha = true): string | undefined {\r\n // The default format (and the only format required to be supported) for toDataUrl() is \"image/png\".\r\n const canvas = imageBufferToCanvas(buffer, preserveAlpha);\r\n return undefined !== canvas ? canvas.toDataURL() : undefined;\r\n}\r\n\r\n/**\r\n * Converts the contents of an ImageBuffer to PNG format.\r\n * @param buffer The ImageBuffer, of any format.\r\n * @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImageBuffer]]).\r\n * @returns a base64-encoded string representing the image as a PNG, or undefined if the conversion failed.\r\n * @public\r\n * @extensions\r\n */\r\nexport function imageBufferToBase64EncodedPng(buffer: ImageBuffer, preserveAlpha = true): string | undefined {\r\n const urlPrefix = \"data:image/png;base64,\";\r\n const url = imageBufferToPngDataUrl(buffer, preserveAlpha);\r\n if (undefined === url || !url.startsWith(urlPrefix))\r\n return undefined;\r\n\r\n return url.substring(urlPrefix.length);\r\n}\r\n\r\n/** Open an image specified as a data URL in a new window or tab. Works around differences between browsers and Electron.\r\n * @param url The base64-encoded image URL.\r\n * @param title An optional title to apply to the new window.\r\n * @beta\r\n */\r\nexport function openImageDataUrlInNewWindow(url: string, title?: string): void {\r\n const win = window.open();\r\n if (null === win)\r\n return;\r\n\r\n const div = win.document.createElement(\"div\");\r\n div.innerHTML = `<img src='${url}'/>`;\r\n win.document.body.append(div);\r\n if (undefined !== title)\r\n win.document.title = title;\r\n}\r\n\r\n/** Determine the maximum [[ViewRect]] that can be fitted and centered in specified ViewRect given a required aspect ratio.\r\n * @param viewRect The rectangle in which the returned rectangle is to be centered and fitted.\r\n * @param aspectRatio Ratio of width to height.\r\n * @returns A ViewRect centered in the input rectangle.\r\n * @public\r\n */\r\nexport function getCenteredViewRect(viewRect: ViewRect, aspectRatio = 1.4): ViewRect {\r\n // Determine scale that ensures ability to return an image with the prescribed aspectRatio\r\n const scale = Math.min(viewRect.width / aspectRatio, viewRect.height);\r\n const finalWidth = scale * aspectRatio;\r\n const finalHeight = scale;\r\n const left = (viewRect.width - finalWidth) / 2.0;\r\n const right = left + finalWidth;\r\n const top = (viewRect.height - finalHeight) / 2.0;\r\n const bottom = top + finalHeight;\r\n return new ViewRect(left, top, right, bottom);\r\n}\r\n\r\n/** Produce a jpeg compressed to no more than specified bytes and of no less than specified quality.\r\n * @param canvas Canvas containing the image to be compressed.\r\n * @param maxBytes Maximum size of output jpeg in bytes.\r\n * @param minCompressionQuality The minimum acceptable image quality as a number between 0 (lowest quality) and 1 (highest quality).\r\n * @returns A [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) for the image, or `undefined` if the compression and size constraints could not be met.\r\n * @public\r\n * @extensions\r\n */\r\nexport function getCompressedJpegFromCanvas(canvas: HTMLCanvasElement, maxBytes = 60000, minCompressionQuality = 0.1): string | undefined {\r\n const decrements = 0.1; // Decrements of quality\r\n const bytesPerCharacter = 2; // Assume 16-bit per character\r\n let quality = 1.0; // JPEG Compression quality\r\n\r\n while (quality > minCompressionQuality) {\r\n const data = canvas.toDataURL(\"image/jpeg\", quality);\r\n // If we are less than 60 Kb, we are good\r\n if (data.length * bytesPerCharacter < maxBytes)\r\n return data;\r\n\r\n quality -= decrements;\r\n }\r\n\r\n return undefined;\r\n}\r\n"]}
|
package/lib/cjs/IpcApp.d.ts
CHANGED
|
@@ -86,6 +86,7 @@ export declare class IpcApp {
|
|
|
86
86
|
*
|
|
87
87
|
* Then, call `MyNotificationHandler.register` at startup to connect your class to your channel.
|
|
88
88
|
* @public
|
|
89
|
+
* @extensions
|
|
89
90
|
*/
|
|
90
91
|
export declare abstract class NotificationHandler {
|
|
91
92
|
/** All subclasses must implement this method to specify their response channel name. */
|
package/lib/cjs/IpcApp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IpcApp.d.ts","sourceRoot":"","sources":["../../src/IpcApp.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACmD,eAAe,EAAwC,WAAW,EAAE,iBAAiB,EAC/H,cAAc,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAa,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED;;;GAGG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAgC;IACnD,qEAAqE;IAErE,OAAO,CAAC,MAAM,KAAK,GAAG,GAA4C;IAElE,iIAAiI;IACjI,WAAkB,OAAO,IAAI,OAAO,CAAoC;IAExE;;;;;;;OAOG;WACW,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,cAAc;IAIhF;;;;OAIG;WACW,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW;IAInE;;;;;;;;;OASG;WACiB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzE;;;;;;OAMG;WACW,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAIlD;;;;;;;;;;OAUG;WACiB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;WAUrF,WAAW,CAAC,CAAC,SAAS,cAAc,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAIjI;qFACiF;WAC7D,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,aAAa;IAMxE,gBAAgB;WACI,QAAQ;CAI7B;AAED
|
|
1
|
+
{"version":3,"file":"IpcApp.d.ts","sourceRoot":"","sources":["../../src/IpcApp.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACmD,eAAe,EAAwC,WAAW,EAAE,iBAAiB,EAC/H,cAAc,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAa,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED;;;GAGG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAgC;IACnD,qEAAqE;IAErE,OAAO,CAAC,MAAM,KAAK,GAAG,GAA4C;IAElE,iIAAiI;IACjI,WAAkB,OAAO,IAAI,OAAO,CAAoC;IAExE;;;;;;;OAOG;WACW,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,cAAc;IAIhF;;;;OAIG;WACW,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW;IAInE;;;;;;;;;OASG;WACiB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzE;;;;;;OAMG;WACW,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAIlD;;;;;;;;;;OAUG;WACiB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;WAUrF,WAAW,CAAC,CAAC,SAAS,cAAc,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAIjI;qFACiF;WAC7D,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,aAAa;IAMxE,gBAAgB;WACI,QAAQ;CAI7B;AAED;;;;;;;;;;;;;GAaG;AACH,8BAAsB,mBAAmB;IACvC,wFAAwF;IACxF,aAAoB,WAAW,IAAI,MAAM,CAAC;IAEnC,YAAY,IAAI,cAAc;IAUrC;;;;;OAKG;WACW,QAAQ,IAAI,cAAc;CAGzC"}
|
package/lib/cjs/IpcApp.js
CHANGED
package/lib/cjs/IpcApp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IpcApp.js","sourceRoot":"","sources":["../../src/IpcApp.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module NativeApp\r\n */\r\n\r\nimport { AsyncMethodsOf, PromiseReturnType } from \"@itwin/core-bentley\";\r\nimport {\r\n BackendError, IModelError, IModelStatus, IpcAppChannel, IpcAppFunctions, IpcAppNotifications, IpcInvokeReturn, IpcListener, IpcSocketFrontend,\r\n iTwinChannel, RemoveFunction,\r\n} from \"@itwin/core-common\";\r\nimport { IModelApp, IModelAppOptions } from \"./IModelApp\";\r\n\r\n/**\r\n * Options for [[IpcApp.startup]]\r\n * @public\r\n */\r\nexport interface IpcAppOptions {\r\n iModelApp?: IModelAppOptions;\r\n}\r\n\r\n/**\r\n * The frontend of apps with a dedicated backend that can use [Ipc]($docs/learning/IpcInterface.md).\r\n * @public\r\n */\r\nexport class IpcApp {\r\n private static _ipc: IpcSocketFrontend | undefined;\r\n /** Get the implementation of the [[IpcSocketFrontend]] interface. */\r\n\r\n private static get ipc(): IpcSocketFrontend { return this._ipc!; }\r\n\r\n /** Determine whether Ipc is available for this frontend. This will only be true if [[startup]] has been called on this class. */\r\n public static get isValid(): boolean { return undefined !== this._ipc; }\r\n\r\n /**\r\n * Establish a message handler function for the supplied channel over Ipc. The handler will be called when messages are sent for\r\n * the channel via [[BackendIpc.send]].\r\n * @param channel the name of the channel\r\n * @param handler the message handler\r\n * @returns A function to remove the handler\r\n * @note Ipc is only supported if [[isValid]] is true.\r\n */\r\n public static addListener(channel: string, handler: IpcListener): RemoveFunction {\r\n return this.ipc.addListener(iTwinChannel(channel), handler);\r\n }\r\n\r\n /**\r\n * Remove a previously registered listener\r\n * @param channel The name of the channel for the listener previously registered with [[addListener]]\r\n * @param listener The function passed to [[addListener]]\r\n */\r\n public static removeListener(channel: string, listener: IpcListener) {\r\n this.ipc.removeListener(iTwinChannel(channel), listener);\r\n }\r\n\r\n /**\r\n * Send a message to the backend via `channel` and expect a result asynchronously. The handler must be established on the backend via [[BackendIpc.handle]]\r\n * @param channel The name of the channel for the method.\r\n * @see Electron [ipcRenderer.invoke](https://www.electronjs.org/docs/api/ipc-renderer) documentation for details.\r\n * Note that this interface may be implemented via Electron for desktop apps, or via\r\n * [WebSockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) for mobile or web-based\r\n * Ipc connections. In either case, the Electron documentation provides the specifications for how it works.\r\n * @note `args` are serialized with the [Structured Clone Algorithm](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm), so only\r\n * primitive types and `ArrayBuffers` are allowed.\r\n */\r\n public static async invoke(channel: string, ...args: any[]): Promise<any> {\r\n return this.ipc.invoke(iTwinChannel(channel), ...args);\r\n }\r\n\r\n /**\r\n * Send a message over the socket.\r\n * @param channel The name of the channel for the message.\r\n * @param data The optional data of the message.\r\n * @note `data` is serialized with the [Structured Clone Algorithm](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm), so only\r\n * primitive types and `ArrayBuffers` are allowed.\r\n */\r\n public static send(channel: string, ...data: any[]) {\r\n return this.ipc.send(iTwinChannel(channel), ...data);\r\n }\r\n\r\n /**\r\n * Call a method on the backend through an Ipc channel.\r\n * @param channelName the channel registered by the backend handler.\r\n * @param methodName the name of a method implemented by the backend handler.\r\n * @param args arguments to `methodName`\r\n * @return a Promise with the return value from `methodName`\r\n * @note If the backend implementation throws an exception, this method will throw a [[BackendError]] exception\r\n * with the `errorNumber` and `message` from the backend.\r\n * @note Ipc is only supported if [[isValid]] is true.\r\n * @internal\r\n */\r\n public static async callIpcChannel(channelName: string, methodName: string, ...args: any[]): Promise<any> {\r\n const retVal = (await this.invoke(channelName, methodName, ...args)) as IpcInvokeReturn;\r\n if (undefined !== retVal.error) {\r\n const err = new BackendError(retVal.error.errorNumber, retVal.error.name, retVal.error.message);\r\n err.stack = retVal.error.stack;\r\n throw err;\r\n }\r\n return retVal.result;\r\n }\r\n\r\n public static async callIpcHost<T extends AsyncMethodsOf<IpcAppFunctions>>(methodName: T, ...args: Parameters<IpcAppFunctions[T]>) {\r\n return this.callIpcChannel(IpcAppChannel.Functions, methodName, ...args) as PromiseReturnType<IpcAppFunctions[T]>;\r\n }\r\n\r\n /** start an IpcApp.\r\n * @note this should not be called directly. It is called by NativeApp.startup */\r\n public static async startup(ipc: IpcSocketFrontend, opts?: IpcAppOptions) {\r\n this._ipc = ipc;\r\n IpcAppNotifyHandler.register(); // receives notifications from backend\r\n await IModelApp.startup(opts?.iModelApp);\r\n }\r\n\r\n /** @internal */\r\n public static async shutdown() {\r\n this._ipc = undefined;\r\n await IModelApp.shutdown();\r\n }\r\n}\r\n\r\n/**\r\n * Base class for all implementations of an Ipc notification response interface. This class is implemented on your frontend to supply\r\n * methods to receive notifications from your backend.\r\n *\r\n * Create a subclass to implement your Ipc response interface. Your class should be declared like this:\r\n * ```ts\r\n * class MyNotificationHandler extends NotificationHandler implements MyNotifications\r\n * ```\r\n * to ensure all method names and signatures are correct. Your methods cannot have a return value.\r\n *\r\n * Then, call `MyNotificationHandler.register` at startup to connect your class to your channel.\r\n * @public\r\n */\r\nexport abstract class NotificationHandler {\r\n /** All subclasses must implement this method to specify their response channel name. */\r\n public abstract get channelName(): string;\r\n\r\n public registerImpl(): RemoveFunction {\r\n return IpcApp.addListener(this.channelName, (_evt: Event, funcName: string, ...args: any[]) => {\r\n const func = (this as any)[funcName];\r\n if (typeof func !== \"function\")\r\n throw new IModelError(IModelStatus.FunctionNotFound, `Method \"${this.constructor.name}.${funcName}\" not found on NotificationHandler registered for channel: ${this.channelName}`);\r\n\r\n func.call(this, ...args);\r\n });\r\n }\r\n\r\n /**\r\n * Register this class as the handler for notifications on its channel. This static method creates a new instance\r\n * that becomes the notification handler and is `this` when its methods are called.\r\n * @returns A function that can be called to remove the handler.\r\n * @note this method should only be called once per channel. If it is called multiple times, multiple handlers are established.\r\n */\r\n public static register(): RemoveFunction {\r\n return (new (this as any)() as NotificationHandler).registerImpl(); // create an instance of subclass. \"as any\" is necessary because base class is abstract\r\n }\r\n}\r\n\r\n/** IpcApp notifications from backend */\r\nclass IpcAppNotifyHandler extends NotificationHandler implements IpcAppNotifications {\r\n public get channelName() { return IpcAppChannel.AppNotify; }\r\n public notifyApp() { }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"IpcApp.js","sourceRoot":"","sources":["../../src/IpcApp.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module NativeApp\r\n */\r\n\r\nimport { AsyncMethodsOf, PromiseReturnType } from \"@itwin/core-bentley\";\r\nimport {\r\n BackendError, IModelError, IModelStatus, IpcAppChannel, IpcAppFunctions, IpcAppNotifications, IpcInvokeReturn, IpcListener, IpcSocketFrontend,\r\n iTwinChannel, RemoveFunction,\r\n} from \"@itwin/core-common\";\r\nimport { IModelApp, IModelAppOptions } from \"./IModelApp\";\r\n\r\n/**\r\n * Options for [[IpcApp.startup]]\r\n * @public\r\n */\r\nexport interface IpcAppOptions {\r\n iModelApp?: IModelAppOptions;\r\n}\r\n\r\n/**\r\n * The frontend of apps with a dedicated backend that can use [Ipc]($docs/learning/IpcInterface.md).\r\n * @public\r\n */\r\nexport class IpcApp {\r\n private static _ipc: IpcSocketFrontend | undefined;\r\n /** Get the implementation of the [[IpcSocketFrontend]] interface. */\r\n\r\n private static get ipc(): IpcSocketFrontend { return this._ipc!; }\r\n\r\n /** Determine whether Ipc is available for this frontend. This will only be true if [[startup]] has been called on this class. */\r\n public static get isValid(): boolean { return undefined !== this._ipc; }\r\n\r\n /**\r\n * Establish a message handler function for the supplied channel over Ipc. The handler will be called when messages are sent for\r\n * the channel via [[BackendIpc.send]].\r\n * @param channel the name of the channel\r\n * @param handler the message handler\r\n * @returns A function to remove the handler\r\n * @note Ipc is only supported if [[isValid]] is true.\r\n */\r\n public static addListener(channel: string, handler: IpcListener): RemoveFunction {\r\n return this.ipc.addListener(iTwinChannel(channel), handler);\r\n }\r\n\r\n /**\r\n * Remove a previously registered listener\r\n * @param channel The name of the channel for the listener previously registered with [[addListener]]\r\n * @param listener The function passed to [[addListener]]\r\n */\r\n public static removeListener(channel: string, listener: IpcListener) {\r\n this.ipc.removeListener(iTwinChannel(channel), listener);\r\n }\r\n\r\n /**\r\n * Send a message to the backend via `channel` and expect a result asynchronously. The handler must be established on the backend via [[BackendIpc.handle]]\r\n * @param channel The name of the channel for the method.\r\n * @see Electron [ipcRenderer.invoke](https://www.electronjs.org/docs/api/ipc-renderer) documentation for details.\r\n * Note that this interface may be implemented via Electron for desktop apps, or via\r\n * [WebSockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) for mobile or web-based\r\n * Ipc connections. In either case, the Electron documentation provides the specifications for how it works.\r\n * @note `args` are serialized with the [Structured Clone Algorithm](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm), so only\r\n * primitive types and `ArrayBuffers` are allowed.\r\n */\r\n public static async invoke(channel: string, ...args: any[]): Promise<any> {\r\n return this.ipc.invoke(iTwinChannel(channel), ...args);\r\n }\r\n\r\n /**\r\n * Send a message over the socket.\r\n * @param channel The name of the channel for the message.\r\n * @param data The optional data of the message.\r\n * @note `data` is serialized with the [Structured Clone Algorithm](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm), so only\r\n * primitive types and `ArrayBuffers` are allowed.\r\n */\r\n public static send(channel: string, ...data: any[]) {\r\n return this.ipc.send(iTwinChannel(channel), ...data);\r\n }\r\n\r\n /**\r\n * Call a method on the backend through an Ipc channel.\r\n * @param channelName the channel registered by the backend handler.\r\n * @param methodName the name of a method implemented by the backend handler.\r\n * @param args arguments to `methodName`\r\n * @return a Promise with the return value from `methodName`\r\n * @note If the backend implementation throws an exception, this method will throw a [[BackendError]] exception\r\n * with the `errorNumber` and `message` from the backend.\r\n * @note Ipc is only supported if [[isValid]] is true.\r\n * @internal\r\n */\r\n public static async callIpcChannel(channelName: string, methodName: string, ...args: any[]): Promise<any> {\r\n const retVal = (await this.invoke(channelName, methodName, ...args)) as IpcInvokeReturn;\r\n if (undefined !== retVal.error) {\r\n const err = new BackendError(retVal.error.errorNumber, retVal.error.name, retVal.error.message);\r\n err.stack = retVal.error.stack;\r\n throw err;\r\n }\r\n return retVal.result;\r\n }\r\n\r\n public static async callIpcHost<T extends AsyncMethodsOf<IpcAppFunctions>>(methodName: T, ...args: Parameters<IpcAppFunctions[T]>) {\r\n return this.callIpcChannel(IpcAppChannel.Functions, methodName, ...args) as PromiseReturnType<IpcAppFunctions[T]>;\r\n }\r\n\r\n /** start an IpcApp.\r\n * @note this should not be called directly. It is called by NativeApp.startup */\r\n public static async startup(ipc: IpcSocketFrontend, opts?: IpcAppOptions) {\r\n this._ipc = ipc;\r\n IpcAppNotifyHandler.register(); // receives notifications from backend\r\n await IModelApp.startup(opts?.iModelApp);\r\n }\r\n\r\n /** @internal */\r\n public static async shutdown() {\r\n this._ipc = undefined;\r\n await IModelApp.shutdown();\r\n }\r\n}\r\n\r\n/**\r\n * Base class for all implementations of an Ipc notification response interface. This class is implemented on your frontend to supply\r\n * methods to receive notifications from your backend.\r\n *\r\n * Create a subclass to implement your Ipc response interface. Your class should be declared like this:\r\n * ```ts\r\n * class MyNotificationHandler extends NotificationHandler implements MyNotifications\r\n * ```\r\n * to ensure all method names and signatures are correct. Your methods cannot have a return value.\r\n *\r\n * Then, call `MyNotificationHandler.register` at startup to connect your class to your channel.\r\n * @public\r\n * @extensions\r\n */\r\nexport abstract class NotificationHandler {\r\n /** All subclasses must implement this method to specify their response channel name. */\r\n public abstract get channelName(): string;\r\n\r\n public registerImpl(): RemoveFunction {\r\n return IpcApp.addListener(this.channelName, (_evt: Event, funcName: string, ...args: any[]) => {\r\n const func = (this as any)[funcName];\r\n if (typeof func !== \"function\")\r\n throw new IModelError(IModelStatus.FunctionNotFound, `Method \"${this.constructor.name}.${funcName}\" not found on NotificationHandler registered for channel: ${this.channelName}`);\r\n\r\n func.call(this, ...args);\r\n });\r\n }\r\n\r\n /**\r\n * Register this class as the handler for notifications on its channel. This static method creates a new instance\r\n * that becomes the notification handler and is `this` when its methods are called.\r\n * @returns A function that can be called to remove the handler.\r\n * @note this method should only be called once per channel. If it is called multiple times, multiple handlers are established.\r\n */\r\n public static register(): RemoveFunction {\r\n return (new (this as any)() as NotificationHandler).registerImpl(); // create an instance of subclass. \"as any\" is necessary because base class is abstract\r\n }\r\n}\r\n\r\n/** IpcApp notifications from backend */\r\nclass IpcAppNotifyHandler extends NotificationHandler implements IpcAppNotifications {\r\n public get channelName() { return IpcAppChannel.AppNotify; }\r\n public notifyApp() { }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarginPercent.d.ts","sourceRoot":"","sources":["../../src/MarginPercent.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH
|
|
1
|
+
{"version":3,"file":"MarginPercent.d.ts","sourceRoot":"","sources":["../../src/MarginPercent.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH;;;;GAIG;AACH,qBAAa,aAAa;IACL,IAAI,EAAE,MAAM;IAAS,GAAG,EAAE,MAAM;IAAS,KAAK,EAAE,MAAM;IAAS,MAAM,EAAE,MAAM;gBAA7E,IAAI,EAAE,MAAM,EAAS,GAAG,EAAE,MAAM,EAAS,KAAK,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM;CAOjG"}
|
package/lib/cjs/MarginPercent.js
CHANGED
|
@@ -12,6 +12,7 @@ const core_geometry_1 = require("@itwin/core-geometry");
|
|
|
12
12
|
/** Margins for white space to be left around view volumes for [[ViewState.lookAtVolume]].
|
|
13
13
|
* Values mean "fraction of view size" and must be between 0 and .25.
|
|
14
14
|
* @public
|
|
15
|
+
* @extensions
|
|
15
16
|
*/
|
|
16
17
|
class MarginPercent {
|
|
17
18
|
constructor(left, top, right, bottom) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarginPercent.js","sourceRoot":"","sources":["../../src/MarginPercent.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,wDAAgD;AAChD
|
|
1
|
+
{"version":3,"file":"MarginPercent.js","sourceRoot":"","sources":["../../src/MarginPercent.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,wDAAgD;AAChD;;;;GAIG;AACH,MAAa,aAAa;IACxB,YAAmB,IAAY,EAAS,GAAW,EAAS,KAAa,EAAS,MAAc;QAA7E,SAAI,GAAJ,IAAI,CAAQ;QAAS,QAAG,GAAH,GAAG,CAAQ;QAAS,UAAK,GAAL,KAAK,CAAQ;QAAS,WAAM,GAAN,MAAM,CAAQ;QAC9F,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,wBAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;CACF;AARD,sCAQC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Views\r\n */\r\n\r\nimport { Geometry } from \"@itwin/core-geometry\";\r\n/** Margins for white space to be left around view volumes for [[ViewState.lookAtVolume]].\r\n * Values mean \"fraction of view size\" and must be between 0 and .25.\r\n * @public\r\n * @extensions\r\n */\r\nexport class MarginPercent {\r\n constructor(public left: number, public top: number, public right: number, public bottom: number) {\r\n const limitMargin = (val: number) => Geometry.clamp(val, 0.0, 0.25);\r\n this.left = limitMargin(left);\r\n this.top = limitMargin(top);\r\n this.right = limitMargin(right);\r\n this.bottom = limitMargin(bottom);\r\n }\r\n}\r\n"]}
|
package/lib/cjs/Marker.d.ts
CHANGED
|
@@ -11,18 +11,29 @@ import { ScreenViewport, Viewport } from "./Viewport";
|
|
|
11
11
|
import { ViewRect } from "./ViewRect";
|
|
12
12
|
/** The types that may be used for Markers
|
|
13
13
|
* @public
|
|
14
|
+
* @extensions
|
|
14
15
|
*/
|
|
15
16
|
export declare type MarkerImage = HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap;
|
|
16
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* @public
|
|
19
|
+
* @extensions
|
|
20
|
+
*/
|
|
17
21
|
export declare type MarkerFillStyle = string | CanvasGradient | CanvasPattern;
|
|
18
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* @public
|
|
24
|
+
* @extensions
|
|
25
|
+
*/
|
|
19
26
|
export declare type MarkerTextAlign = "left" | "right" | "center" | "start" | "end";
|
|
20
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* @public
|
|
29
|
+
* @extensions
|
|
30
|
+
*/
|
|
21
31
|
export declare type MarkerTextBaseline = "top" | "hanging" | "middle" | "alphabetic" | "ideographic" | "bottom";
|
|
22
32
|
/** A Marker is a [[CanvasDecoration]], whose position follows a fixed location in world space.
|
|
23
33
|
* Markers draw on top of all scene graphics, and show visual cues about locations of interest.
|
|
24
34
|
* @see [Markers]($docs/learning/frontend/Markers)
|
|
25
35
|
* @public
|
|
36
|
+
* @extensions
|
|
26
37
|
*/
|
|
27
38
|
export declare class Marker implements CanvasDecoration {
|
|
28
39
|
protected _scaleFactor?: Point2d;
|
|
@@ -139,6 +150,7 @@ export declare class Marker implements CanvasDecoration {
|
|
|
139
150
|
/** A cluster of one or more Markers that overlap one another in the view. The cluster's screen position is taken from its first entry.
|
|
140
151
|
* Clusters also have a Marker themselves, that represents the whole group. The cluster marker isn't created until all entries have been added.
|
|
141
152
|
* @public
|
|
153
|
+
* @extensions
|
|
142
154
|
*/
|
|
143
155
|
export declare class Cluster<T extends Marker> {
|
|
144
156
|
readonly markers: T[];
|
|
@@ -154,6 +166,7 @@ export declare class Cluster<T extends Marker> {
|
|
|
154
166
|
/** A *set* of Markers that are logically related, such that they *cluster* when they overlap one another in screen space.
|
|
155
167
|
* In that case, a *cluster marker* is drawn instead of the overlapping Markers.
|
|
156
168
|
* @public
|
|
169
|
+
* @extensions
|
|
157
170
|
*/
|
|
158
171
|
export declare abstract class MarkerSet<T extends Marker> {
|
|
159
172
|
private _viewport?;
|
package/lib/cjs/Marker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Marker.d.ts","sourceRoot":"","sources":["../../src/Marker.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAY,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAY,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC5H,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC
|
|
1
|
+
{"version":3,"file":"Marker.d.ts","sourceRoot":"","sources":["../../src/Marker.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/Marker.js
CHANGED
|
@@ -36,6 +36,7 @@ function getMinScaleViewW(vp) {
|
|
|
36
36
|
* Markers draw on top of all scene graphics, and show visual cues about locations of interest.
|
|
37
37
|
* @see [Markers]($docs/learning/frontend/Markers)
|
|
38
38
|
* @public
|
|
39
|
+
* @extensions
|
|
39
40
|
*/
|
|
40
41
|
class Marker {
|
|
41
42
|
/** Constructor for Marker
|
|
@@ -212,6 +213,7 @@ exports.Marker = Marker;
|
|
|
212
213
|
/** A cluster of one or more Markers that overlap one another in the view. The cluster's screen position is taken from its first entry.
|
|
213
214
|
* Clusters also have a Marker themselves, that represents the whole group. The cluster marker isn't created until all entries have been added.
|
|
214
215
|
* @public
|
|
216
|
+
* @extensions
|
|
215
217
|
*/
|
|
216
218
|
class Cluster {
|
|
217
219
|
constructor(markers) {
|
|
@@ -238,6 +240,7 @@ exports.Cluster = Cluster;
|
|
|
238
240
|
/** A *set* of Markers that are logically related, such that they *cluster* when they overlap one another in screen space.
|
|
239
241
|
* In that case, a *cluster marker* is drawn instead of the overlapping Markers.
|
|
240
242
|
* @public
|
|
243
|
+
* @extensions
|
|
241
244
|
*/
|
|
242
245
|
class MarkerSet {
|
|
243
246
|
/** Construct a new MarkerSet for a specific ScreenViewport.
|