@itwin/core-frontend 3.1.0-dev.8 → 3.2.0-dev.3
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 +163 -35
- package/lib/cjs/AccuSnap.js +2 -2
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeights.d.ts +1 -1
- package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
- package/lib/cjs/ApproximateTerrainHeights.js +21 -9
- package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeightsProps.d.ts +12 -0
- package/lib/cjs/ApproximateTerrainHeightsProps.d.ts.map +1 -0
- package/lib/cjs/ApproximateTerrainHeightsProps.js +13 -0
- package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -0
- package/lib/cjs/CategorySelectorState.js +1 -1
- package/lib/cjs/CategorySelectorState.js.map +1 -1
- package/lib/cjs/DisplayStyleState.d.ts +4 -3
- package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleState.js +32 -8
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/DrawingViewState.d.ts.map +1 -1
- package/lib/cjs/DrawingViewState.js +6 -5
- package/lib/cjs/DrawingViewState.js.map +1 -1
- package/lib/cjs/FrontendLoggerCategory.d.ts +3 -1
- package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
- package/lib/cjs/FrontendLoggerCategory.js +2 -0
- package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +8 -4
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +20 -10
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +3 -5
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +4 -10
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/ImageUtil.d.ts.map +1 -1
- package/lib/cjs/ImageUtil.js +8 -14
- package/lib/cjs/ImageUtil.js.map +1 -1
- package/lib/cjs/LocalhostIpcApp.d.ts +2 -0
- package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
- package/lib/cjs/LocalhostIpcApp.js +10 -4
- package/lib/cjs/LocalhostIpcApp.js.map +1 -1
- package/lib/cjs/RealityDataSource.d.ts +60 -14
- package/lib/cjs/RealityDataSource.d.ts.map +1 -1
- package/lib/cjs/RealityDataSource.js +36 -235
- package/lib/cjs/RealityDataSource.js.map +1 -1
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts +67 -0
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -0
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js +166 -0
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -0
- package/lib/cjs/RealityDataSourceContextShareImpl.d.ts +83 -0
- package/lib/cjs/RealityDataSourceContextShareImpl.d.ts.map +1 -0
- package/lib/cjs/RealityDataSourceContextShareImpl.js +234 -0
- package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -0
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts +65 -0
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -0
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +135 -0
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -0
- package/lib/cjs/SheetViewState.js +4 -0
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/ViewState.d.ts +8 -0
- package/lib/cjs/ViewState.d.ts.map +1 -1
- package/lib/cjs/ViewState.js +1 -1
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +30 -12
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +43 -1
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/core-frontend.d.ts +6 -4
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +6 -4
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/extension/Extension.d.ts +48 -0
- package/lib/cjs/extension/Extension.d.ts.map +1 -0
- package/lib/cjs/extension/Extension.js +18 -0
- package/lib/cjs/extension/Extension.js.map +1 -0
- package/lib/cjs/extension/ExtensionAdmin.d.ts +64 -0
- package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -0
- package/lib/cjs/extension/ExtensionAdmin.js +106 -0
- package/lib/cjs/extension/ExtensionAdmin.js.map +1 -0
- package/lib/cjs/extension/ExtensionHost.d.ts +23 -0
- package/lib/cjs/extension/ExtensionHost.d.ts.map +1 -0
- package/lib/cjs/extension/ExtensionHost.js +26 -0
- package/lib/cjs/extension/ExtensionHost.js.map +1 -0
- package/lib/cjs/extension/ExtensionImpl.d.ts +21 -0
- package/lib/cjs/extension/ExtensionImpl.d.ts.map +1 -0
- package/lib/cjs/extension/ExtensionImpl.js +45 -0
- package/lib/cjs/extension/ExtensionImpl.js.map +1 -0
- package/lib/cjs/extension/ExtensionLoader.d.ts +26 -0
- package/lib/cjs/extension/ExtensionLoader.d.ts.map +1 -0
- package/lib/cjs/extension/ExtensionLoader.js +10 -0
- package/lib/cjs/extension/ExtensionLoader.js.map +1 -0
- package/lib/cjs/extension/ExtensionRuntime.d.ts +5 -0
- package/lib/cjs/extension/ExtensionRuntime.d.ts.map +1 -0
- package/lib/cjs/extension/ExtensionRuntime.js +86 -0
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -0
- package/lib/cjs/extension/extensions.d.ts +19 -0
- package/lib/cjs/extension/extensions.d.ts.map +1 -0
- package/lib/cjs/extension/extensions.js +36 -0
- package/lib/cjs/extension/extensions.js.map +1 -0
- package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts +2 -2
- package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
- package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +48 -44
- package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +90 -80
- package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js +85 -45
- package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts +54 -0
- package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -0
- package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js +32 -0
- package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -0
- package/lib/cjs/quantity-formatting/UnitsData.d.ts +11 -0
- package/lib/cjs/quantity-formatting/UnitsData.d.ts.map +1 -0
- package/lib/cjs/quantity-formatting/UnitsData.js +59 -0
- package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -0
- 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.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.js +16 -9
- package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/cjs/render/RenderPlanarClassifier.d.ts +1 -1
- package/lib/cjs/render/RenderPlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/render/RenderPlanarClassifier.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +12 -7
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +27 -22
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.d.ts +4 -4
- package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/render/Scene.d.ts.map +1 -1
- package/lib/cjs/render/Scene.js.map +1 -1
- package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -1
- package/lib/cjs/render/primitives/EdgeParams.js +3 -1
- package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
- package/lib/cjs/render/primitives/PolylineParams.d.ts.map +1 -1
- package/lib/cjs/render/primitives/PolylineParams.js +10 -5
- package/lib/cjs/render/primitives/PolylineParams.js.map +1 -1
- package/lib/cjs/render/primitives/VertexKey.d.ts +11 -8
- package/lib/cjs/render/primitives/VertexKey.d.ts.map +1 -1
- package/lib/cjs/render/primitives/VertexKey.js +24 -6
- package/lib/cjs/render/primitives/VertexKey.js.map +1 -1
- package/lib/cjs/render/primitives/VertexTable.d.ts +15 -2
- package/lib/cjs/render/primitives/VertexTable.d.ts.map +1 -1
- package/lib/cjs/render/primitives/VertexTable.js +273 -108
- package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +22 -10
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts +4 -6
- package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilder.js +16 -13
- package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js +12 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +45 -28
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +107 -146
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts +17 -2
- package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js +39 -2
- package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js.map +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/render/webgl/BranchState.d.ts +2 -0
- package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchState.js +5 -3
- package/lib/cjs/render/webgl/BranchState.js.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.d.ts +6 -0
- package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.js +6 -0
- package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/render/webgl/Graphic.d.ts +5 -3
- package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Graphic.js +7 -2
- package/lib/cjs/render/webgl/Graphic.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.d.ts +4 -1
- package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.js +22 -9
- package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts +2 -2
- package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.js +5 -3
- package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts +31 -11
- package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.js +155 -52
- package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.js +4 -0
- package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts +3 -0
- package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +45 -19
- package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts +8 -7
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.js +12 -5
- package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -0
- package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.js +1 -0
- package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/render/webgl/System.d.ts +9 -9
- package/lib/cjs/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/render/webgl/System.js +5 -5
- package/lib/cjs/render/webgl/System.js.map +1 -1
- package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -1
- package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
- package/lib/cjs/render/webgl/VertexLUT.js +4 -3
- package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Color.js +1 -1
- package/lib/cjs/render/webgl/glsl/Color.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Decode.d.ts +6 -0
- package/lib/cjs/render/webgl/glsl/Decode.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Decode.js +18 -1
- package/lib/cjs/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Edge.js +15 -6
- package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/PlanarClassification.js +1 -1
- package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/PointString.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/PointString.js +1 -1
- package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Polyline.d.ts +2 -2
- package/lib/cjs/render/webgl/glsl/Polyline.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Polyline.js +24 -9
- package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.js +102 -27
- package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.js +18 -19
- package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Thematic.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Thematic.js +1 -6
- package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Vertex.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Vertex.js +31 -14
- package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/cjs/tile/ClassifierTileTree.d.ts +4 -2
- package/lib/cjs/tile/ClassifierTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/ClassifierTileTree.js +31 -16
- package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +22 -3
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +231 -45
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/OPCFormatInterpreter.d.ts +22 -0
- package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -0
- package/lib/cjs/tile/OPCFormatInterpreter.js +92 -0
- package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -0
- package/lib/cjs/tile/PntsReader.d.ts +1 -1
- package/lib/cjs/tile/PntsReader.d.ts.map +1 -1
- package/lib/cjs/tile/PntsReader.js +170 -36
- package/lib/cjs/tile/PntsReader.js.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.d.ts +18 -2
- package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.js +53 -2
- package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.d.ts +24 -3
- package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.js +36 -11
- package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityTile.d.ts +16 -2
- package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTile.js +32 -0
- package/lib/cjs/tile/RealityTile.js.map +1 -1
- package/lib/cjs/tile/RealityTileDrawArgs.d.ts +4 -1
- package/lib/cjs/tile/RealityTileDrawArgs.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileDrawArgs.js +3 -1
- package/lib/cjs/tile/RealityTileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.d.ts +7 -4
- package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.js +19 -5
- package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/tile/RealityTileTree.d.ts +4 -1
- package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js +11 -3
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts +52 -0
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +179 -0
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -0
- 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 +5 -0
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileGeometryCollector.d.ts +80 -0
- package/lib/cjs/tile/TileGeometryCollector.d.ts.map +1 -0
- package/lib/cjs/tile/TileGeometryCollector.js +71 -0
- package/lib/cjs/tile/TileGeometryCollector.js.map +1 -0
- package/lib/cjs/tile/TileTree.d.ts +7 -1
- package/lib/cjs/tile/TileTree.d.ts.map +1 -1
- package/lib/cjs/tile/TileTree.js +7 -0
- package/lib/cjs/tile/TileTree.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +26 -1
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +40 -0
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/internal.d.ts +4 -0
- package/lib/cjs/tile/internal.d.ts.map +1 -1
- package/lib/cjs/tile/internal.js +4 -0
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/BingElevation.d.ts +2 -16
- package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
- package/lib/cjs/tile/map/BingElevation.js +1 -63
- package/lib/cjs/tile/map/BingElevation.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js +2 -2
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +5 -3
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +45 -12
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +2 -2
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -2
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +2 -2
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +4 -3
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +2 -2
- package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +2 -2
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +2 -2
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -3
- package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js +4 -3
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapFeatureInfo.d.ts +26 -0
- package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -0
- package/lib/cjs/tile/map/MapFeatureInfo.js +19 -0
- package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -0
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +4 -4
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +3 -3
- package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +5 -4
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js +5 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts +2 -2
- package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js +6 -4
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts +10 -2
- package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerTileTreeReference.js +26 -3
- package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.d.ts +12 -10
- package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +60 -39
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileLoader.d.ts +2 -1
- package/lib/cjs/tile/map/MapTileLoader.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileLoader.js +4 -1
- package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts +18 -8
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +148 -61
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.d.ts +2 -3
- package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js +7 -2
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ViewTool.d.ts +4 -4
- package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ViewTool.js +1 -1
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/esm/AccuSnap.js +2 -2
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.d.ts +1 -1
- package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.js +2 -9
- package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeightsProps.d.ts +12 -0
- package/lib/esm/ApproximateTerrainHeightsProps.d.ts.map +1 -0
- package/lib/esm/ApproximateTerrainHeightsProps.js +10 -0
- package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -0
- package/lib/esm/CategorySelectorState.js +1 -1
- package/lib/esm/CategorySelectorState.js.map +1 -1
- package/lib/esm/DisplayStyleState.d.ts +4 -3
- package/lib/esm/DisplayStyleState.d.ts.map +1 -1
- package/lib/esm/DisplayStyleState.js +34 -10
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/DrawingViewState.d.ts.map +1 -1
- package/lib/esm/DrawingViewState.js +6 -5
- package/lib/esm/DrawingViewState.js.map +1 -1
- package/lib/esm/FrontendLoggerCategory.d.ts +3 -1
- package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
- package/lib/esm/FrontendLoggerCategory.js +2 -0
- package/lib/esm/FrontendLoggerCategory.js.map +1 -1
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +8 -4
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +20 -10
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +3 -5
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +5 -11
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/ImageUtil.d.ts.map +1 -1
- package/lib/esm/ImageUtil.js +8 -14
- package/lib/esm/ImageUtil.js.map +1 -1
- package/lib/esm/LocalhostIpcApp.d.ts +2 -0
- package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
- package/lib/esm/LocalhostIpcApp.js +10 -4
- package/lib/esm/LocalhostIpcApp.js.map +1 -1
- package/lib/esm/RealityDataSource.d.ts +60 -14
- package/lib/esm/RealityDataSource.d.ts.map +1 -1
- package/lib/esm/RealityDataSource.js +37 -237
- package/lib/esm/RealityDataSource.js.map +1 -1
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts +67 -0
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -0
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js +162 -0
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -0
- package/lib/esm/RealityDataSourceContextShareImpl.d.ts +83 -0
- package/lib/esm/RealityDataSourceContextShareImpl.d.ts.map +1 -0
- package/lib/esm/RealityDataSourceContextShareImpl.js +230 -0
- package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -0
- package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts +65 -0
- package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -0
- package/lib/esm/RealityDataSourceTilesetUrlImpl.js +131 -0
- package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -0
- package/lib/esm/SheetViewState.js +4 -0
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/ViewState.d.ts +8 -0
- package/lib/esm/ViewState.d.ts.map +1 -1
- package/lib/esm/ViewState.js +1 -1
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/Viewport.d.ts +30 -12
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +43 -1
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/core-frontend.d.ts +6 -4
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +6 -4
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/extension/Extension.d.ts +48 -0
- package/lib/esm/extension/Extension.d.ts.map +1 -0
- package/lib/esm/extension/Extension.js +15 -0
- package/lib/esm/extension/Extension.js.map +1 -0
- package/lib/esm/extension/ExtensionAdmin.d.ts +64 -0
- package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -0
- package/lib/esm/extension/ExtensionAdmin.js +102 -0
- package/lib/esm/extension/ExtensionAdmin.js.map +1 -0
- package/lib/esm/extension/ExtensionHost.d.ts +23 -0
- package/lib/esm/extension/ExtensionHost.d.ts.map +1 -0
- package/lib/esm/extension/ExtensionHost.js +22 -0
- package/lib/esm/extension/ExtensionHost.js.map +1 -0
- package/lib/esm/extension/ExtensionImpl.d.ts +21 -0
- package/lib/esm/extension/ExtensionImpl.d.ts.map +1 -0
- package/lib/esm/extension/ExtensionImpl.js +40 -0
- package/lib/esm/extension/ExtensionImpl.js.map +1 -0
- package/lib/esm/extension/ExtensionLoader.d.ts +26 -0
- package/lib/esm/extension/ExtensionLoader.d.ts.map +1 -0
- package/lib/esm/extension/ExtensionLoader.js +9 -0
- package/lib/esm/extension/ExtensionLoader.js.map +1 -0
- package/lib/esm/extension/ExtensionRuntime.d.ts +5 -0
- package/lib/esm/extension/ExtensionRuntime.d.ts.map +1 -0
- package/lib/esm/extension/ExtensionRuntime.js +84 -0
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -0
- package/lib/esm/extension/extensions.d.ts +19 -0
- package/lib/esm/extension/extensions.d.ts.map +1 -0
- package/lib/esm/extension/extensions.js +24 -0
- package/lib/esm/extension/extensions.js.map +1 -0
- package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts +2 -2
- package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
- package/lib/esm/quantity-formatting/BasicUnitsProvider.js +48 -44
- package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +90 -80
- package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.js +85 -42
- package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts +54 -0
- package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -0
- package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js +26 -0
- package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -0
- package/lib/esm/quantity-formatting/UnitsData.d.ts +11 -0
- package/lib/esm/quantity-formatting/UnitsData.d.ts.map +1 -0
- package/lib/esm/quantity-formatting/UnitsData.js +56 -0
- package/lib/esm/quantity-formatting/UnitsData.js.map +1 -0
- 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.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.js +17 -10
- package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/esm/render/RenderPlanarClassifier.d.ts +1 -1
- package/lib/esm/render/RenderPlanarClassifier.d.ts.map +1 -1
- package/lib/esm/render/RenderPlanarClassifier.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +12 -7
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +25 -20
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.d.ts +4 -4
- package/lib/esm/render/RenderTarget.d.ts.map +1 -1
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/render/Scene.d.ts.map +1 -1
- package/lib/esm/render/Scene.js.map +1 -1
- package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -1
- package/lib/esm/render/primitives/EdgeParams.js +3 -1
- package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
- package/lib/esm/render/primitives/PolylineParams.d.ts.map +1 -1
- package/lib/esm/render/primitives/PolylineParams.js +11 -6
- package/lib/esm/render/primitives/PolylineParams.js.map +1 -1
- package/lib/esm/render/primitives/VertexKey.d.ts +11 -8
- package/lib/esm/render/primitives/VertexKey.d.ts.map +1 -1
- package/lib/esm/render/primitives/VertexKey.js +24 -6
- package/lib/esm/render/primitives/VertexKey.js.map +1 -1
- package/lib/esm/render/primitives/VertexTable.d.ts +15 -2
- package/lib/esm/render/primitives/VertexTable.d.ts.map +1 -1
- package/lib/esm/render/primitives/VertexTable.js +274 -109
- package/lib/esm/render/primitives/VertexTable.js.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +23 -11
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts +4 -6
- package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilder.js +17 -14
- package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.js +12 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +45 -28
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js +108 -144
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
- package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts +17 -2
- package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js +39 -2
- package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js.map +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/render/webgl/BranchState.d.ts +2 -0
- package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchState.js +5 -3
- package/lib/esm/render/webgl/BranchState.js.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.d.ts +6 -0
- package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.js +6 -0
- package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.js +1 -1
- package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/render/webgl/Graphic.d.ts +5 -3
- package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/esm/render/webgl/Graphic.js +7 -2
- package/lib/esm/render/webgl/Graphic.js.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.d.ts +4 -1
- package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.js +22 -9
- package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.d.ts +2 -2
- package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.js +5 -3
- package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts +31 -11
- package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.js +155 -52
- package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.js +4 -0
- package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts +3 -0
- package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +45 -19
- package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.d.ts +8 -7
- package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.js +12 -5
- package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -0
- package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.js +1 -0
- package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/render/webgl/System.d.ts +9 -9
- 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.map +1 -1
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/VertexLUT.d.ts +2 -1
- package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
- package/lib/esm/render/webgl/VertexLUT.js +4 -3
- package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Color.js +1 -1
- package/lib/esm/render/webgl/glsl/Color.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Decode.d.ts +6 -0
- package/lib/esm/render/webgl/glsl/Decode.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Decode.js +17 -0
- package/lib/esm/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Edge.js +15 -6
- package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/esm/render/webgl/glsl/PlanarClassification.js +1 -1
- package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/esm/render/webgl/glsl/PointString.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/PointString.js +1 -1
- package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Polyline.d.ts +2 -2
- package/lib/esm/render/webgl/glsl/Polyline.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Polyline.js +24 -9
- package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.js +103 -28
- package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.js +18 -19
- package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Thematic.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Thematic.js +1 -6
- package/lib/esm/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Vertex.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Vertex.js +32 -15
- package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/esm/tile/ClassifierTileTree.d.ts +4 -2
- package/lib/esm/tile/ClassifierTileTree.d.ts.map +1 -1
- package/lib/esm/tile/ClassifierTileTree.js +32 -17
- package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +22 -3
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +215 -48
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/OPCFormatInterpreter.d.ts +22 -0
- package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -0
- package/lib/esm/tile/OPCFormatInterpreter.js +88 -0
- package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -0
- package/lib/esm/tile/PntsReader.d.ts +1 -1
- package/lib/esm/tile/PntsReader.d.ts.map +1 -1
- package/lib/esm/tile/PntsReader.js +154 -39
- package/lib/esm/tile/PntsReader.js.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.d.ts +18 -2
- package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.js +51 -2
- package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.d.ts +24 -3
- package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.js +36 -12
- package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/tile/RealityTile.d.ts +16 -2
- package/lib/esm/tile/RealityTile.d.ts.map +1 -1
- package/lib/esm/tile/RealityTile.js +32 -0
- package/lib/esm/tile/RealityTile.js.map +1 -1
- package/lib/esm/tile/RealityTileDrawArgs.d.ts +4 -1
- package/lib/esm/tile/RealityTileDrawArgs.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileDrawArgs.js +3 -1
- package/lib/esm/tile/RealityTileDrawArgs.js.map +1 -1
- package/lib/esm/tile/RealityTileLoader.d.ts +7 -4
- package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileLoader.js +19 -5
- package/lib/esm/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/tile/RealityTileTree.d.ts +4 -1
- package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileTree.js +13 -5
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts +52 -0
- package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
- package/lib/esm/tile/ThreeDTileFormatInterpreter.js +175 -0
- package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -0
- 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 +5 -0
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileGeometryCollector.d.ts +80 -0
- package/lib/esm/tile/TileGeometryCollector.d.ts.map +1 -0
- package/lib/esm/tile/TileGeometryCollector.js +67 -0
- package/lib/esm/tile/TileGeometryCollector.js.map +1 -0
- package/lib/esm/tile/TileTree.d.ts +7 -1
- package/lib/esm/tile/TileTree.d.ts.map +1 -1
- package/lib/esm/tile/TileTree.js +7 -0
- package/lib/esm/tile/TileTree.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +26 -1
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +42 -2
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/internal.d.ts +4 -0
- package/lib/esm/tile/internal.d.ts.map +1 -1
- package/lib/esm/tile/internal.js +4 -0
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/BingElevation.d.ts +2 -16
- package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
- package/lib/esm/tile/map/BingElevation.js +1 -63
- package/lib/esm/tile/map/BingElevation.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js +2 -2
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +5 -3
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +46 -13
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +2 -2
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -2
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +2 -2
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +4 -3
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +2 -2
- package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +2 -2
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +2 -2
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -3
- package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js +4 -3
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapFeatureInfo.d.ts +26 -0
- package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -0
- package/lib/esm/tile/map/MapFeatureInfo.js +15 -0
- package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -0
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +4 -4
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +3 -3
- package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +5 -4
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js +5 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts +2 -2
- package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js +6 -4
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts +10 -2
- package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerTileTreeReference.js +25 -3
- package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/MapTile.d.ts +12 -10
- package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTile.js +60 -39
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileLoader.d.ts +2 -1
- package/lib/esm/tile/map/MapTileLoader.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileLoader.js +4 -1
- package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts +18 -8
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +150 -63
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js +2 -2
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.d.ts +2 -3
- package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/esm/tools/ToolAdmin.js +8 -3
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ViewTool.d.ts +4 -4
- package/lib/esm/tools/ViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ViewTool.js +1 -1
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/package.json +22 -20
- package/lib/cjs/tile/DracoDecoder.d.ts +0 -20
- package/lib/cjs/tile/DracoDecoder.d.ts.map +0 -1
- package/lib/cjs/tile/DracoDecoder.js +0 -169
- package/lib/cjs/tile/DracoDecoder.js.map +0 -1
- package/lib/esm/tile/DracoDecoder.d.ts +0 -20
- package/lib/esm/tile/DracoDecoder.d.ts.map +0 -1
- package/lib/esm/tile/DracoDecoder.js +0 -165
- package/lib/esm/tile/DracoDecoder.js.map +0 -1
- package/lib/public/assets/approximateTerrainHeights.json +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawingViewState.js","sourceRoot":"","sources":["../../src/DrawingViewState.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 Views\r\n */\r\n\r\nimport { assert, dispose, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n AxisAlignedBox3d, Frustum, QueryRowFormat, SectionDrawingViewProps, ViewDefinition2dProps, ViewFlagOverrides, ViewStateProps,\r\n} from \"@itwin/core-common\";\r\nimport { Constant, Range3d, Transform, TransformProps, Vector3d } from \"@itwin/core-geometry\";\r\nimport { CategorySelectorState } from \"./CategorySelectorState\";\r\nimport { CoordSystem } from \"./CoordSystem\";\r\nimport { DisplayStyle2dState } from \"./DisplayStyleState\";\r\nimport { Frustum2d } from \"./Frustum2d\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { FeatureSymbology } from \"./render/FeatureSymbology\";\r\nimport { GraphicBranch, GraphicBranchOptions } from \"./render/GraphicBranch\";\r\nimport { MockRender } from \"./render/MockRender\";\r\nimport { RenderGraphic } from \"./render/RenderGraphic\";\r\nimport { Scene } from \"./render/Scene\";\r\nimport { DisclosedTileTreeSet, TileGraphicType } from \"./tile/internal\";\r\nimport { SceneContext } from \"./ViewContext\";\r\nimport { OffScreenViewport } from \"./Viewport\";\r\nimport { ViewRect } from \"./ViewRect\";\r\nimport { AttachToViewportArgs, ExtentLimits, ViewState2d, ViewState3d } from \"./ViewState\";\r\n\r\n/** Strictly for testing.\r\n * @internal\r\n */\r\nexport interface SectionDrawingInfo {\r\n readonly spatialView: Id64String;\r\n readonly drawingToSpatialTransform: Transform;\r\n}\r\n\r\n/** The information required to instantiate a [[SectionAttachment]]. This information is supplied to DrawingViewState constructor via ViewStateProps.\r\n * The spatial view is obtained asynchronously in DrawingViewState.load(). The SectionAttachment is created in DrawingViewState.attachToViewport and\r\n * disposed of in DrawingViewState.detachFromViewport.\r\n */\r\nclass SectionAttachmentInfo {\r\n private _spatialView: Id64String | ViewState3d;\r\n private readonly _drawingToSpatialTransform: Transform;\r\n private readonly _displaySpatialView: boolean;\r\n\r\n public get spatialView(): Id64String | ViewState3d { return this._spatialView; }\r\n public get wantDisplayed(): boolean {\r\n return this._displaySpatialView || DrawingViewState.alwaysDisplaySpatialView;\r\n }\r\n\r\n private constructor(spatialView: Id64String | ViewState3d, drawingToSpatialTransform: Transform, displaySpatialView: boolean) {\r\n this._spatialView = spatialView;\r\n this._drawingToSpatialTransform = drawingToSpatialTransform;\r\n this._displaySpatialView = displaySpatialView;\r\n }\r\n\r\n public static fromJSON(props?: SectionDrawingViewProps): SectionAttachmentInfo {\r\n if (!props)\r\n return new SectionAttachmentInfo(Id64.invalid, Transform.createIdentity(), false);\r\n\r\n return new SectionAttachmentInfo(props.spatialView, Transform.fromJSON(props.drawingToSpatialTransform), true === props.displaySpatialView);\r\n }\r\n\r\n public toJSON(): SectionDrawingViewProps | undefined {\r\n if (\"string\" === typeof this._spatialView && !Id64.isValidId64(this._spatialView))\r\n return undefined;\r\n\r\n return {\r\n spatialView: (this._spatialView instanceof ViewState3d) ? this._spatialView.id : this._spatialView,\r\n drawingToSpatialTransform: this._drawingToSpatialTransform.isIdentity ? undefined : this._drawingToSpatialTransform.toJSON(),\r\n displaySpatialView: this._displaySpatialView,\r\n };\r\n }\r\n\r\n public clone(): SectionAttachmentInfo {\r\n return new SectionAttachmentInfo(this._spatialView, this._drawingToSpatialTransform, this._displaySpatialView);\r\n }\r\n\r\n public async load(iModel: IModelConnection): Promise<void> {\r\n if (!this.wantDisplayed)\r\n return;\r\n\r\n if (this._spatialView instanceof ViewState3d)\r\n return;\r\n\r\n if (!Id64.isValidId64(this._spatialView))\r\n return;\r\n\r\n const spatialView = await iModel.views.load(this._spatialView);\r\n if (spatialView instanceof ViewState3d)\r\n this._spatialView = spatialView;\r\n }\r\n\r\n public createAttachment(): SectionAttachment | undefined {\r\n if (!this.wantDisplayed || !(this._spatialView instanceof ViewState3d))\r\n return undefined;\r\n\r\n const spatialToDrawing = this._drawingToSpatialTransform.inverse();\r\n return spatialToDrawing ? new SectionAttachment(this._spatialView, spatialToDrawing, this._drawingToSpatialTransform) : undefined;\r\n }\r\n\r\n public get sectionDrawingInfo(): SectionDrawingInfo {\r\n return {\r\n drawingToSpatialTransform: this._drawingToSpatialTransform,\r\n spatialView: this._spatialView instanceof ViewState3d ? this._spatialView.id : this._spatialView,\r\n };\r\n }\r\n}\r\n\r\n/** A mostly no-op [[RenderTarget]] for a [[SectionAttachment]]. It allocates no webgl resources. */\r\nclass SectionTarget extends MockRender.OffScreenTarget {\r\n private readonly _attachment: SectionAttachment;\r\n\r\n public constructor(attachment: SectionAttachment) {\r\n super(IModelApp.renderSystem, new ViewRect(0, 0, 1, 1));\r\n this._attachment = attachment;\r\n }\r\n\r\n public override changeScene(scene: Scene): void {\r\n this._attachment.scene = scene;\r\n }\r\n\r\n public override overrideFeatureSymbology(ovrs: FeatureSymbology.Overrides): void {\r\n this._attachment.symbologyOverrides = ovrs;\r\n }\r\n}\r\n\r\n/** Draws the contents of an orthographic [[ViewState3d]] directly into a [[DrawingViewState]], if the associated [SectionDrawing]($backend)\r\n * specifies it should be. We select tiles for the view in the context of a lightweight offscreen viewport with a no-op [[RenderTarget]], then\r\n * add the resultant graphics to the drawing view's scene. The attachment is created in DrawingViewState.attachToViewport and disposed of in\r\n * DrawingViewState.detachFromViewport.\r\n */\r\nclass SectionAttachment {\r\n private readonly _viewFlagOverrides: ViewFlagOverrides;\r\n private readonly _toDrawing: Transform;\r\n private readonly _fromDrawing: Transform;\r\n private readonly _viewRect = new ViewRect(0, 0, 1, 1);\r\n private readonly _originalFrustum = new Frustum();\r\n private readonly _drawingExtents: Vector3d;\r\n public readonly viewport: OffScreenViewport;\r\n private readonly _branchOptions: GraphicBranchOptions;\r\n public scene?: Scene;\r\n public symbologyOverrides: FeatureSymbology.Overrides;\r\n\r\n public get view(): ViewState3d {\r\n assert(this.viewport.view instanceof ViewState3d);\r\n return this.viewport.view;\r\n }\r\n\r\n public get zDepth(): number {\r\n return this._drawingExtents.z;\r\n }\r\n\r\n public constructor(view: ViewState3d, toDrawing: Transform, fromDrawing: Transform) {\r\n // Save the input for clone(). Attach a copy to the viewport.\r\n this._toDrawing = toDrawing;\r\n this._fromDrawing = fromDrawing;\r\n\r\n this.viewport = OffScreenViewport.createViewport(view, new SectionTarget(this), true);\r\n\r\n this.symbologyOverrides = new FeatureSymbology.Overrides(view);\r\n let clipVolume;\r\n let clip = this.view.getViewClip();\r\n if (clip) {\r\n clip = clip.clone();\r\n clip.transformInPlace(this._toDrawing);\r\n clipVolume = IModelApp.renderSystem.createClipVolume(clip);\r\n }\r\n\r\n this._branchOptions = {\r\n clipVolume,\r\n hline: view.getDisplayStyle3d().settings.hiddenLineSettings,\r\n frustum: {\r\n is3d: true,\r\n scale: { x: 1, y: 1 },\r\n },\r\n };\r\n\r\n this._viewFlagOverrides = { ...view.viewFlags, lighting: false, shadows: false };\r\n this._drawingExtents = this.viewport.viewingSpace.viewDelta.clone();\r\n this._toDrawing.multiplyVector(this._drawingExtents, this._drawingExtents);\r\n this._drawingExtents.z = Math.abs(this._drawingExtents.z);\r\n\r\n // Save off the original frustum (potentially adjusted by viewport).\r\n this.viewport.setupFromView();\r\n this.viewport.viewingSpace.getFrustum(CoordSystem.World, true, this._originalFrustum);\r\n }\r\n\r\n public dispose(): void {\r\n this.viewport.dispose();\r\n }\r\n\r\n public addToScene(context: SceneContext): void {\r\n if (context.viewport.freezeScene)\r\n return;\r\n\r\n const pixelSize = context.viewport.getPixelSizeAtPoint();\r\n if (0 === pixelSize)\r\n return;\r\n\r\n // Adjust offscreen viewport's frustum based on intersection with drawing view frustum.\r\n const frustum3d = this._originalFrustum.transformBy(this._toDrawing);\r\n const frustumRange3d = frustum3d.toRange();\r\n const frustum2d = context.viewport.getWorldFrustum();\r\n const frustumRange2d = frustum2d.toRange();\r\n const intersect = frustumRange3d.intersect(frustumRange2d);\r\n if (intersect.isNull)\r\n return;\r\n\r\n frustum3d.initFromRange(intersect);\r\n frustum3d.transformBy(this._fromDrawing, frustum3d);\r\n this.viewport.setupViewFromFrustum(frustum3d);\r\n\r\n // Adjust view rect based on size of attachment on screen so tiles of appropriate LOD are selected.\r\n const width = this._drawingExtents.x * intersect.xLength() / frustumRange3d.xLength();\r\n const height = this._drawingExtents.y * intersect.yLength() / frustumRange3d.yLength();\r\n this._viewRect.width = Math.max(1, Math.round(width / pixelSize));\r\n this._viewRect.height = Math.max(1, Math.round(height / pixelSize));\r\n this.viewport.setRect(this._viewRect);\r\n\r\n // Propagate settings from drawing viewport.\r\n this.viewport.debugBoundingBoxes = context.viewport.debugBoundingBoxes;\r\n this.viewport.setTileSizeModifier(context.viewport.tileSizeModifier);\r\n\r\n // Create the scene.\r\n this.viewport.renderFrame();\r\n const scene = this.scene;\r\n if (!scene)\r\n return;\r\n\r\n // Extract graphics and insert into drawing's scene context.\r\n const outputGraphics = (source: RenderGraphic[]) => {\r\n if (0 === source.length)\r\n return;\r\n\r\n const graphics = new GraphicBranch();\r\n graphics.setViewFlagOverrides(this._viewFlagOverrides);\r\n graphics.symbologyOverrides = this.symbologyOverrides;\r\n\r\n for (const graphic of source)\r\n graphics.entries.push(graphic);\r\n\r\n const branch = context.createGraphicBranch(graphics, this._toDrawing, this._branchOptions);\r\n context.outputGraphic(branch);\r\n };\r\n\r\n outputGraphics(scene.foreground);\r\n context.withGraphicType(TileGraphicType.BackgroundMap, () => outputGraphics(scene.background));\r\n context.withGraphicType(TileGraphicType.Overlay, () => outputGraphics(scene.overlay));\r\n\r\n // Report tile statistics to drawing viewport.\r\n const tileAdmin = IModelApp.tileAdmin;\r\n const selectedAndReady = tileAdmin.getTilesForUser(this.viewport);\r\n const requested = tileAdmin.getRequestsForUser(this.viewport);\r\n tileAdmin.addExternalTilesForUser(context.viewport, {\r\n requested: requested?.size ?? 0,\r\n selected: selectedAndReady?.selected.size ?? 0,\r\n ready: selectedAndReady?.ready.size ?? 0,\r\n });\r\n }\r\n}\r\n\r\n/** A view of a [DrawingModel]($backend)\r\n * @public\r\n */\r\nexport class DrawingViewState extends ViewState2d {\r\n /** @internal */\r\n public static override get className() { return \"DrawingViewDefinition\"; }\r\n\r\n /** Exposed strictly for testing and debugging. Indicates that when loading the view, the spatial view should be displayed even\r\n * if `SectionDrawing.displaySpatialView` is not `true`.\r\n * @internal\r\n */\r\n public static alwaysDisplaySpatialView = false;\r\n\r\n /** Exposed strictly for testing and debugging. Indicates that the 2d graphics should not be displayed.\r\n * @internal\r\n */\r\n public static hideDrawingGraphics = false;\r\n\r\n private readonly _modelLimits: ExtentLimits;\r\n private readonly _viewedExtents: AxisAlignedBox3d;\r\n private _attachmentInfo: SectionAttachmentInfo;\r\n private _attachment?: SectionAttachment;\r\n\r\n /** Strictly for testing. @internal */\r\n public get sectionDrawingProps(): SectionDrawingViewProps | undefined {\r\n return this._attachmentInfo.toJSON();\r\n }\r\n\r\n /** Strictly for testing. @internal */\r\n public get sectionDrawingInfo() {\r\n return this._attachmentInfo.sectionDrawingInfo;\r\n }\r\n\r\n /** Strictly for testing. @internal */\r\n public get attachment(): Object | undefined {\r\n return this._attachment;\r\n }\r\n\r\n /** Strictly for testing. @internal */\r\n public get attachmentInfo(): Object {\r\n return this._attachmentInfo;\r\n }\r\n\r\n public constructor(props: ViewDefinition2dProps, iModel: IModelConnection, categories: CategorySelectorState, displayStyle: DisplayStyle2dState, extents: AxisAlignedBox3d, sectionDrawing?: SectionDrawingViewProps) {\r\n super(props, iModel, categories, displayStyle);\r\n if (categories instanceof DrawingViewState) {\r\n this._viewedExtents = categories._viewedExtents.clone();\r\n this._modelLimits = { ...categories._modelLimits };\r\n this._attachmentInfo = categories._attachmentInfo.clone();\r\n } else {\r\n this._viewedExtents = extents;\r\n this._modelLimits = { min: Constant.oneMillimeter, max: 10 * extents.maxLength() };\r\n this._attachmentInfo = SectionAttachmentInfo.fromJSON(sectionDrawing);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public override attachToViewport(args: AttachToViewportArgs): void {\r\n super.attachToViewport(args);\r\n assert(undefined === this._attachment);\r\n this._attachment = this._attachmentInfo.createAttachment();\r\n }\r\n\r\n /** @internal */\r\n public override detachFromViewport(): void {\r\n super.detachFromViewport();\r\n this._attachment = dispose(this._attachment);\r\n }\r\n\r\n /** @internal */\r\n public override async changeViewedModel(modelId: Id64String): Promise<void> {\r\n await super.changeViewedModel(modelId);\r\n const props = await this.querySectionDrawingProps();\r\n this._attachmentInfo = SectionAttachmentInfo.fromJSON(props);\r\n\r\n // super.changeViewedModel() throws if attached to viewport, and attachment only allocated while attached to viewport\r\n assert(undefined === this._attachment);\r\n }\r\n\r\n private async querySectionDrawingProps(): Promise<SectionDrawingViewProps> {\r\n let spatialView = Id64.invalid;\r\n let drawingToSpatialTransform: TransformProps | undefined;\r\n let displaySpatialView = false;\r\n try {\r\n const ecsql = `\r\n SELECT spatialView,\r\n json_extract(jsonProperties, '$.drawingToSpatialTransform') as drawingToSpatialTransform,\r\n CAST(json_extract(jsonProperties, '$.displaySpatialView') as BOOLEAN) as displaySpatialView\r\n FROM bis.SectionDrawing\r\n WHERE ECInstanceId=${this.baseModelId}`;\r\n\r\n for await (const row of this.iModel.query(ecsql, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames })) {\r\n spatialView = Id64.fromJSON(row.spatialView?.id);\r\n displaySpatialView = !!row.displaySpatialView;\r\n try {\r\n drawingToSpatialTransform = JSON.parse(row.drawingToSpatialTransform);\r\n } catch {\r\n // We'll use identity transform.\r\n }\r\n\r\n break;\r\n }\r\n } catch (_ex) {\r\n // The version of BisCore ECSchema in the iModel is probably too old to contain the SectionDrawing ECClass.\r\n }\r\n\r\n return { spatialView, displaySpatialView, drawingToSpatialTransform };\r\n }\r\n\r\n /** @internal */\r\n public override async load(): Promise<void> {\r\n assert(!this.isAttachedToViewport);\r\n\r\n await super.load();\r\n await this._attachmentInfo.load(this.iModel);\r\n }\r\n\r\n public static override createFromProps(props: ViewStateProps, iModel: IModelConnection): DrawingViewState {\r\n const cat = new CategorySelectorState(props.categorySelectorProps, iModel);\r\n const displayStyleState = new DisplayStyle2dState(props.displayStyleProps, iModel);\r\n const extents = props.modelExtents ? Range3d.fromJSON(props.modelExtents) : new Range3d();\r\n\r\n // use \"new this\" so subclasses are correct\r\n return new this(props.viewDefinitionProps as ViewDefinition2dProps, iModel, cat, displayStyleState, extents, props.sectionDrawing);\r\n }\r\n\r\n public override toProps(): ViewStateProps {\r\n const props = super.toProps();\r\n props.modelExtents = this._viewedExtents.toJSON();\r\n props.sectionDrawing = this._attachmentInfo.toJSON();\r\n return props;\r\n }\r\n\r\n public getViewedExtents(): AxisAlignedBox3d {\r\n return this._viewedExtents;\r\n }\r\n\r\n public get defaultExtentLimits() {\r\n return this._modelLimits;\r\n }\r\n\r\n /** @internal */\r\n public override isDrawingView(): this is DrawingViewState { return true; }\r\n\r\n /** @internal */\r\n public override getOrigin() {\r\n const origin = super.getOrigin();\r\n if (this._attachment)\r\n origin.z = -this._attachment.zDepth;\r\n\r\n return origin;\r\n }\r\n\r\n /** @internal */\r\n public override getExtents() {\r\n const extents = super.getExtents();\r\n if (this._attachment)\r\n extents.z = this._attachment.zDepth + Frustum2d.minimumZDistance;\r\n\r\n return extents;\r\n }\r\n\r\n /** @internal */\r\n public override discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n super.discloseTileTrees(trees);\r\n if (this._attachment)\r\n trees.disclose(this._attachment.viewport);\r\n }\r\n\r\n /** @internal */\r\n public override createScene(context: SceneContext): void {\r\n if (!DrawingViewState.hideDrawingGraphics)\r\n super.createScene(context);\r\n\r\n if (this._attachment)\r\n this._attachment.addToScene(context);\r\n }\r\n\r\n /** @internal */\r\n public override get areAllTileTreesLoaded(): boolean {\r\n return super.areAllTileTreesLoaded && (!this._attachment || this._attachment.view.areAllTileTreesLoaded);\r\n }\r\n\r\n /** @internal */\r\n public override get secondaryViewports() {\r\n return this._attachment ? [this._attachment.viewport] : super.secondaryViewports;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"DrawingViewState.js","sourceRoot":"","sources":["../../src/DrawingViewState.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAc,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACa,OAAO,EAAE,cAAc,GAC1C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAA4B,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAwB,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,OAAO,EAAwB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAsC,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAU3F;;;GAGG;AACH,MAAM,qBAAqB;IAUzB,YAAoB,WAAqC,EAAE,yBAAoC,EAAE,kBAA2B;QAC1H,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,0BAA0B,GAAG,yBAAyB,CAAC;QAC5D,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;IAChD,CAAC;IATD,IAAW,WAAW,KAA+B,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAChF,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,mBAAmB,IAAI,gBAAgB,CAAC,wBAAwB,CAAC;IAC/E,CAAC;IAQM,MAAM,CAAC,QAAQ,CAAC,KAA+B;QACpD,IAAI,CAAC,KAAK;YACR,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC,CAAC;QAEpF,OAAO,IAAI,qBAAqB,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,IAAI,KAAK,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC9I,CAAC;IAEM,MAAM;QACX,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;YAC/E,OAAO,SAAS,CAAC;QAEnB,OAAO;YACL,WAAW,EAAE,CAAC,IAAI,CAAC,YAAY,YAAY,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY;YAClG,yBAAyB,EAAE,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE;YAC5H,kBAAkB,EAAE,IAAI,CAAC,mBAAmB;SAC7C,CAAC;IACJ,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACjH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,MAAwB;QACxC,IAAI,CAAC,IAAI,CAAC,aAAa;YACrB,OAAO;QAET,IAAI,IAAI,CAAC,YAAY,YAAY,WAAW;YAC1C,OAAO;QAET,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;YACtC,OAAO;QAET,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,WAAW,YAAY,WAAW;YACpC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACpC,CAAC;IAEM,gBAAgB,CAAC,OAA8B;QACpD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,YAAY,WAAW,CAAC;YACpE,OAAO,SAAS,CAAC;QAEnB,MAAM,gBAAgB,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,CAAC;QACnE,OAAO,gBAAgB,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7I,CAAC;IAED,IAAW,kBAAkB;QAC3B,OAAO;YACL,yBAAyB,EAAE,IAAI,CAAC,0BAA0B;YAC1D,WAAW,EAAE,IAAI,CAAC,YAAY,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY;SACjG,CAAC;IACJ,CAAC;CACF;AAED,oGAAoG;AACpG,MAAM,aAAc,SAAQ,UAAU,CAAC,eAAe;IAGpD,YAAmB,UAA6B;QAC9C,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAEe,WAAW,CAAC,KAAY;QACtC,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;IACjC,CAAC;IAEe,wBAAwB,CAAC,IAAgC;QACvE,IAAI,CAAC,WAAW,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAC7C,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,iBAAiB;IAqBrB,YAAmB,IAAiB,EAAE,SAAoB,EAAE,WAAsB,EAAE,OAA8B;QAjBjG,cAAS,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,qBAAgB,GAAG,IAAI,OAAO,EAAE,CAAC;QAiBhD,6DAA6D;QAC7D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAEhC,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAEtF,IAAI,CAAC,kBAAkB,GAAG,IAAI,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,UAAU,CAAC;QACf,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,IAAI,EAAE;YACR,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;YACtG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;YACrC,UAAU,GAAG,SAAS,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC5D;QAED,IAAI,CAAC,cAAc,GAAG;YACpB,UAAU;YACV,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,kBAAkB;YAC3D,OAAO,EAAE;gBACP,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;aACtB;SACF,CAAC;QAEF,IAAI,CAAC,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACjF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACpE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3E,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAE1D,oEAAoE;QACpE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACxF,CAAC;IA3CD,IAAW,IAAI;QACb,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,YAAY,WAAW,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAChC,CAAC;IAsCM,OAAO;QACZ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAEM,UAAU,CAAC,OAAqB;;QACrC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW;YAC9B,OAAO;QAET,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QACzD,IAAI,CAAC,KAAK,SAAS;YACjB,OAAO;QAET,uFAAuF;QACvF,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QACrD,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,SAAS,CAAC,MAAM;YAClB,OAAO;QAET,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACnC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAE9C,mGAAmG;QACnG,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;QACtF,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;QACvF,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEtC,4CAA4C;QAC5C,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAErE,oBAAoB;QACpB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK;YACR,OAAO;QAET,4DAA4D;QAC5D,MAAM,cAAc,GAAG,CAAC,MAAuB,EAAE,EAAE;YACjD,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM;gBACrB,OAAO;YAET,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;YACrC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACvD,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAEtD,KAAK,MAAM,OAAO,IAAI,MAAM;gBAC1B,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3F,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC;QAEF,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/F,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAEtF,8CAA8C;QAC9C,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QACtC,MAAM,gBAAgB,GAAG,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,SAAS,CAAC,uBAAuB,CAAC,OAAO,CAAC,QAAQ,EAAE;YAClD,SAAS,EAAE,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,mCAAI,CAAC;YAC/B,QAAQ,EAAE,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,QAAQ,CAAC,IAAI,mCAAI,CAAC;YAC9C,KAAK,EAAE,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,CAAC,IAAI,mCAAI,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAwC/C,YAAmB,KAA4B,EAAE,MAAwB,EAAE,UAAiC,EAAE,YAAiC,EAAE,OAAyB,EAAE,cAAwC;QAClN,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAC/C,IAAI,UAAU,YAAY,gBAAgB,EAAE;YAC1C,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YACxD,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;YACnD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YACnF,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;SACvE;IACH,CAAC;IAlDD,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAK,OAAO,uBAAuB,CAAC,CAAC,CAAC;IAkB1E,sCAAsC;IACtC,IAAW,mBAAmB;QAC5B,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;IACvC,CAAC;IAED,sCAAsC;IACtC,IAAW,kBAAkB;QAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC;IACjD,CAAC;IAED,sCAAsC;IACtC,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,sCAAsC;IACtC,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAeD,gBAAgB;IACA,gBAAgB,CAAC,IAA0B;QACzD,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACzF,CAAC;IAED,gBAAgB;IACA,kBAAkB;QAChC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,iBAAiB,CAAC,OAAmB;QACzD,MAAM,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE7D,qHAAqH;QACrH,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,wBAAwB;;QACpC,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QAC/B,IAAI,yBAAqD,CAAC;QAC1D,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,IAAI;YACF,MAAM,KAAK,GAAG;;;;;6BAKS,IAAI,CAAC,WAAW,EAAE,CAAC;YAE1C,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,kBAAkB,EAAE,CAAC,EAAE;gBAC7G,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAA,GAAG,CAAC,WAAW,0CAAE,EAAE,CAAC,CAAC;gBACjD,kBAAkB,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC;gBAC9C,IAAI;oBACF,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;iBACvE;gBAAC,MAAM;oBACN,gCAAgC;iBACjC;gBAED,MAAM;aACP;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,2GAA2G;SAC5G;QAED,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,CAAC;IACxE,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,IAAI;QACxB,MAAM,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAEnC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAEM,MAAM,CAAU,eAAe,CAAC,KAAqB,EAAE,MAAwB;QACpF,MAAM,GAAG,GAAG,IAAI,qBAAqB,CAAC,KAAK,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAC3E,MAAM,iBAAiB,GAAG,IAAI,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACnF,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;QAE1F,2CAA2C;QAC3C,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,mBAA4C,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACrI,CAAC;IAEe,OAAO;QACrB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAClD,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,gBAAgB;QACrB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAW,mBAAmB;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,gBAAgB;IACA,aAAa,KAA+B,OAAO,IAAI,CAAC,CAAC,CAAC;IAE1E,gBAAgB;IACA,SAAS;QACvB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,WAAW;YAClB,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAEtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gBAAgB;IACA,UAAU;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,WAAW;YAClB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;QAEnE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB;IACA,iBAAiB,CAAC,KAA2B;QAC3D,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,WAAW;YAClB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB;IACA,WAAW,CAAC,OAAqB;QAC/C,IAAI,CAAC,gBAAgB,CAAC,mBAAmB;YACvC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE7B,IAAI,IAAI,CAAC,WAAW;YAClB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,gBAAgB;IAChB,IAAoB,qBAAqB;QACvC,OAAO,KAAK,CAAC,qBAAqB,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC3G,CAAC;IAED,gBAAgB;IAChB,IAAoB,kBAAkB;QACpC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;IACnF,CAAC;;AAnLD;;;GAGG;AACW,yCAAwB,GAAG,KAAK,CAAC;AAE/C;;GAEG;AACW,oCAAmB,GAAG,KAAK,CAAC","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 { assert, dispose, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n AxisAlignedBox3d, Frustum, QueryRowFormat, SectionDrawingViewProps, ViewDefinition2dProps, ViewFlagOverrides, ViewStateProps,\r\n} from \"@itwin/core-common\";\r\nimport { Constant, Range3d, Transform, TransformProps, Vector3d } from \"@itwin/core-geometry\";\r\nimport { CategorySelectorState } from \"./CategorySelectorState\";\r\nimport { CoordSystem } from \"./CoordSystem\";\r\nimport { DisplayStyle2dState } from \"./DisplayStyleState\";\r\nimport { Frustum2d } from \"./Frustum2d\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { FeatureSymbology } from \"./render/FeatureSymbology\";\r\nimport { GraphicBranch, GraphicBranchOptions } from \"./render/GraphicBranch\";\r\nimport { MockRender } from \"./render/MockRender\";\r\nimport { RenderGraphic } from \"./render/RenderGraphic\";\r\nimport { Scene } from \"./render/Scene\";\r\nimport { DisclosedTileTreeSet, TileGraphicType } from \"./tile/internal\";\r\nimport { SceneContext } from \"./ViewContext\";\r\nimport { OffScreenViewport } from \"./Viewport\";\r\nimport { ViewRect } from \"./ViewRect\";\r\nimport { AttachToViewportArgs, ExtentLimits, ViewState2d, ViewState3d } from \"./ViewState\";\r\n\r\n/** Strictly for testing.\r\n * @internal\r\n */\r\nexport interface SectionDrawingInfo {\r\n readonly spatialView: Id64String;\r\n readonly drawingToSpatialTransform: Transform;\r\n}\r\n\r\n/** The information required to instantiate a [[SectionAttachment]]. This information is supplied to DrawingViewState constructor via ViewStateProps.\r\n * The spatial view is obtained asynchronously in DrawingViewState.load(). The SectionAttachment is created in DrawingViewState.attachToViewport and\r\n * disposed of in DrawingViewState.detachFromViewport.\r\n */\r\nclass SectionAttachmentInfo {\r\n private _spatialView: Id64String | ViewState3d;\r\n private readonly _drawingToSpatialTransform: Transform;\r\n private readonly _displaySpatialView: boolean;\r\n\r\n public get spatialView(): Id64String | ViewState3d { return this._spatialView; }\r\n public get wantDisplayed(): boolean {\r\n return this._displaySpatialView || DrawingViewState.alwaysDisplaySpatialView;\r\n }\r\n\r\n private constructor(spatialView: Id64String | ViewState3d, drawingToSpatialTransform: Transform, displaySpatialView: boolean) {\r\n this._spatialView = spatialView;\r\n this._drawingToSpatialTransform = drawingToSpatialTransform;\r\n this._displaySpatialView = displaySpatialView;\r\n }\r\n\r\n public static fromJSON(props?: SectionDrawingViewProps): SectionAttachmentInfo {\r\n if (!props)\r\n return new SectionAttachmentInfo(Id64.invalid, Transform.createIdentity(), false);\r\n\r\n return new SectionAttachmentInfo(props.spatialView, Transform.fromJSON(props.drawingToSpatialTransform), true === props.displaySpatialView);\r\n }\r\n\r\n public toJSON(): SectionDrawingViewProps | undefined {\r\n if (\"string\" === typeof this._spatialView && !Id64.isValidId64(this._spatialView))\r\n return undefined;\r\n\r\n return {\r\n spatialView: (this._spatialView instanceof ViewState3d) ? this._spatialView.id : this._spatialView,\r\n drawingToSpatialTransform: this._drawingToSpatialTransform.isIdentity ? undefined : this._drawingToSpatialTransform.toJSON(),\r\n displaySpatialView: this._displaySpatialView,\r\n };\r\n }\r\n\r\n public clone(): SectionAttachmentInfo {\r\n return new SectionAttachmentInfo(this._spatialView, this._drawingToSpatialTransform, this._displaySpatialView);\r\n }\r\n\r\n public async load(iModel: IModelConnection): Promise<void> {\r\n if (!this.wantDisplayed)\r\n return;\r\n\r\n if (this._spatialView instanceof ViewState3d)\r\n return;\r\n\r\n if (!Id64.isValidId64(this._spatialView))\r\n return;\r\n\r\n const spatialView = await iModel.views.load(this._spatialView);\r\n if (spatialView instanceof ViewState3d)\r\n this._spatialView = spatialView;\r\n }\r\n\r\n public createAttachment(toSheet: Transform | undefined): SectionAttachment | undefined {\r\n if (!this.wantDisplayed || !(this._spatialView instanceof ViewState3d))\r\n return undefined;\r\n\r\n const spatialToDrawing = this._drawingToSpatialTransform.inverse();\r\n return spatialToDrawing ? new SectionAttachment(this._spatialView, spatialToDrawing, this._drawingToSpatialTransform, toSheet) : undefined;\r\n }\r\n\r\n public get sectionDrawingInfo(): SectionDrawingInfo {\r\n return {\r\n drawingToSpatialTransform: this._drawingToSpatialTransform,\r\n spatialView: this._spatialView instanceof ViewState3d ? this._spatialView.id : this._spatialView,\r\n };\r\n }\r\n}\r\n\r\n/** A mostly no-op [[RenderTarget]] for a [[SectionAttachment]]. It allocates no webgl resources. */\r\nclass SectionTarget extends MockRender.OffScreenTarget {\r\n private readonly _attachment: SectionAttachment;\r\n\r\n public constructor(attachment: SectionAttachment) {\r\n super(IModelApp.renderSystem, new ViewRect(0, 0, 1, 1));\r\n this._attachment = attachment;\r\n }\r\n\r\n public override changeScene(scene: Scene): void {\r\n this._attachment.scene = scene;\r\n }\r\n\r\n public override overrideFeatureSymbology(ovrs: FeatureSymbology.Overrides): void {\r\n this._attachment.symbologyOverrides = ovrs;\r\n }\r\n}\r\n\r\n/** Draws the contents of an orthographic [[ViewState3d]] directly into a [[DrawingViewState]], if the associated [SectionDrawing]($backend)\r\n * specifies it should be. We select tiles for the view in the context of a lightweight offscreen viewport with a no-op [[RenderTarget]], then\r\n * add the resultant graphics to the drawing view's scene. The attachment is created in DrawingViewState.attachToViewport and disposed of in\r\n * DrawingViewState.detachFromViewport.\r\n */\r\nclass SectionAttachment {\r\n private readonly _viewFlagOverrides: ViewFlagOverrides;\r\n private readonly _toDrawing: Transform;\r\n private readonly _fromDrawing: Transform;\r\n private readonly _viewRect = new ViewRect(0, 0, 1, 1);\r\n private readonly _originalFrustum = new Frustum();\r\n private readonly _drawingExtents: Vector3d;\r\n public readonly viewport: OffScreenViewport;\r\n private readonly _branchOptions: GraphicBranchOptions;\r\n public scene?: Scene;\r\n public symbologyOverrides: FeatureSymbology.Overrides;\r\n\r\n public get view(): ViewState3d {\r\n assert(this.viewport.view instanceof ViewState3d);\r\n return this.viewport.view;\r\n }\r\n\r\n public get zDepth(): number {\r\n return this._drawingExtents.z;\r\n }\r\n\r\n public constructor(view: ViewState3d, toDrawing: Transform, fromDrawing: Transform, toSheet: Transform | undefined) {\r\n // Save the input for clone(). Attach a copy to the viewport.\r\n this._toDrawing = toDrawing;\r\n this._fromDrawing = fromDrawing;\r\n\r\n this.viewport = OffScreenViewport.createViewport(view, new SectionTarget(this), true);\r\n\r\n this.symbologyOverrides = new FeatureSymbology.Overrides(view);\r\n let clipVolume;\r\n let clip = this.view.getViewClip();\r\n if (clip) {\r\n clip = clip.clone();\r\n const clipTransform = toSheet ? toSheet.multiplyTransformTransform(this._toDrawing) : this._toDrawing;\r\n clip.transformInPlace(clipTransform);\r\n clipVolume = IModelApp.renderSystem.createClipVolume(clip);\r\n }\r\n\r\n this._branchOptions = {\r\n clipVolume,\r\n hline: view.getDisplayStyle3d().settings.hiddenLineSettings,\r\n frustum: {\r\n is3d: true,\r\n scale: { x: 1, y: 1 },\r\n },\r\n };\r\n\r\n this._viewFlagOverrides = { ...view.viewFlags, lighting: false, shadows: false };\r\n this._drawingExtents = this.viewport.viewingSpace.viewDelta.clone();\r\n this._toDrawing.multiplyVector(this._drawingExtents, this._drawingExtents);\r\n this._drawingExtents.z = Math.abs(this._drawingExtents.z);\r\n\r\n // Save off the original frustum (potentially adjusted by viewport).\r\n this.viewport.setupFromView();\r\n this.viewport.viewingSpace.getFrustum(CoordSystem.World, true, this._originalFrustum);\r\n }\r\n\r\n public dispose(): void {\r\n this.viewport.dispose();\r\n }\r\n\r\n public addToScene(context: SceneContext): void {\r\n if (context.viewport.freezeScene)\r\n return;\r\n\r\n const pixelSize = context.viewport.getPixelSizeAtPoint();\r\n if (0 === pixelSize)\r\n return;\r\n\r\n // Adjust offscreen viewport's frustum based on intersection with drawing view frustum.\r\n const frustum3d = this._originalFrustum.transformBy(this._toDrawing);\r\n const frustumRange3d = frustum3d.toRange();\r\n const frustum2d = context.viewport.getWorldFrustum();\r\n const frustumRange2d = frustum2d.toRange();\r\n const intersect = frustumRange3d.intersect(frustumRange2d);\r\n if (intersect.isNull)\r\n return;\r\n\r\n frustum3d.initFromRange(intersect);\r\n frustum3d.transformBy(this._fromDrawing, frustum3d);\r\n this.viewport.setupViewFromFrustum(frustum3d);\r\n\r\n // Adjust view rect based on size of attachment on screen so tiles of appropriate LOD are selected.\r\n const width = this._drawingExtents.x * intersect.xLength() / frustumRange3d.xLength();\r\n const height = this._drawingExtents.y * intersect.yLength() / frustumRange3d.yLength();\r\n this._viewRect.width = Math.max(1, Math.round(width / pixelSize));\r\n this._viewRect.height = Math.max(1, Math.round(height / pixelSize));\r\n this.viewport.setRect(this._viewRect);\r\n\r\n // Propagate settings from drawing viewport.\r\n this.viewport.debugBoundingBoxes = context.viewport.debugBoundingBoxes;\r\n this.viewport.setTileSizeModifier(context.viewport.tileSizeModifier);\r\n\r\n // Create the scene.\r\n this.viewport.renderFrame();\r\n const scene = this.scene;\r\n if (!scene)\r\n return;\r\n\r\n // Extract graphics and insert into drawing's scene context.\r\n const outputGraphics = (source: RenderGraphic[]) => {\r\n if (0 === source.length)\r\n return;\r\n\r\n const graphics = new GraphicBranch();\r\n graphics.setViewFlagOverrides(this._viewFlagOverrides);\r\n graphics.symbologyOverrides = this.symbologyOverrides;\r\n\r\n for (const graphic of source)\r\n graphics.entries.push(graphic);\r\n\r\n const branch = context.createGraphicBranch(graphics, this._toDrawing, this._branchOptions);\r\n context.outputGraphic(branch);\r\n };\r\n\r\n outputGraphics(scene.foreground);\r\n context.withGraphicType(TileGraphicType.BackgroundMap, () => outputGraphics(scene.background));\r\n context.withGraphicType(TileGraphicType.Overlay, () => outputGraphics(scene.overlay));\r\n\r\n // Report tile statistics to drawing viewport.\r\n const tileAdmin = IModelApp.tileAdmin;\r\n const selectedAndReady = tileAdmin.getTilesForUser(this.viewport);\r\n const requested = tileAdmin.getRequestsForUser(this.viewport);\r\n tileAdmin.addExternalTilesForUser(context.viewport, {\r\n requested: requested?.size ?? 0,\r\n selected: selectedAndReady?.selected.size ?? 0,\r\n ready: selectedAndReady?.ready.size ?? 0,\r\n });\r\n }\r\n}\r\n\r\n/** A view of a [DrawingModel]($backend)\r\n * @public\r\n */\r\nexport class DrawingViewState extends ViewState2d {\r\n /** @internal */\r\n public static override get className() { return \"DrawingViewDefinition\"; }\r\n\r\n /** Exposed strictly for testing and debugging. Indicates that when loading the view, the spatial view should be displayed even\r\n * if `SectionDrawing.displaySpatialView` is not `true`.\r\n * @internal\r\n */\r\n public static alwaysDisplaySpatialView = false;\r\n\r\n /** Exposed strictly for testing and debugging. Indicates that the 2d graphics should not be displayed.\r\n * @internal\r\n */\r\n public static hideDrawingGraphics = false;\r\n\r\n private readonly _modelLimits: ExtentLimits;\r\n private readonly _viewedExtents: AxisAlignedBox3d;\r\n private _attachmentInfo: SectionAttachmentInfo;\r\n private _attachment?: SectionAttachment;\r\n\r\n /** Strictly for testing. @internal */\r\n public get sectionDrawingProps(): SectionDrawingViewProps | undefined {\r\n return this._attachmentInfo.toJSON();\r\n }\r\n\r\n /** Strictly for testing. @internal */\r\n public get sectionDrawingInfo() {\r\n return this._attachmentInfo.sectionDrawingInfo;\r\n }\r\n\r\n /** Strictly for testing. @internal */\r\n public get attachment(): Object | undefined {\r\n return this._attachment;\r\n }\r\n\r\n /** Strictly for testing. @internal */\r\n public get attachmentInfo(): Object {\r\n return this._attachmentInfo;\r\n }\r\n\r\n public constructor(props: ViewDefinition2dProps, iModel: IModelConnection, categories: CategorySelectorState, displayStyle: DisplayStyle2dState, extents: AxisAlignedBox3d, sectionDrawing?: SectionDrawingViewProps) {\r\n super(props, iModel, categories, displayStyle);\r\n if (categories instanceof DrawingViewState) {\r\n this._viewedExtents = categories._viewedExtents.clone();\r\n this._modelLimits = { ...categories._modelLimits };\r\n this._attachmentInfo = categories._attachmentInfo.clone();\r\n } else {\r\n this._viewedExtents = extents;\r\n this._modelLimits = { min: Constant.oneMillimeter, max: 10 * extents.maxLength() };\r\n this._attachmentInfo = SectionAttachmentInfo.fromJSON(sectionDrawing);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public override attachToViewport(args: AttachToViewportArgs): void {\r\n super.attachToViewport(args);\r\n assert(undefined === this._attachment);\r\n this._attachment = this._attachmentInfo.createAttachment(args.drawingToSheetTransform);\r\n }\r\n\r\n /** @internal */\r\n public override detachFromViewport(): void {\r\n super.detachFromViewport();\r\n this._attachment = dispose(this._attachment);\r\n }\r\n\r\n /** @internal */\r\n public override async changeViewedModel(modelId: Id64String): Promise<void> {\r\n await super.changeViewedModel(modelId);\r\n const props = await this.querySectionDrawingProps();\r\n this._attachmentInfo = SectionAttachmentInfo.fromJSON(props);\r\n\r\n // super.changeViewedModel() throws if attached to viewport, and attachment only allocated while attached to viewport\r\n assert(undefined === this._attachment);\r\n }\r\n\r\n private async querySectionDrawingProps(): Promise<SectionDrawingViewProps> {\r\n let spatialView = Id64.invalid;\r\n let drawingToSpatialTransform: TransformProps | undefined;\r\n let displaySpatialView = false;\r\n try {\r\n const ecsql = `\r\n SELECT spatialView,\r\n json_extract(jsonProperties, '$.drawingToSpatialTransform') as drawingToSpatialTransform,\r\n CAST(json_extract(jsonProperties, '$.displaySpatialView') as BOOLEAN) as displaySpatialView\r\n FROM bis.SectionDrawing\r\n WHERE ECInstanceId=${this.baseModelId}`;\r\n\r\n for await (const row of this.iModel.query(ecsql, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames })) {\r\n spatialView = Id64.fromJSON(row.spatialView?.id);\r\n displaySpatialView = !!row.displaySpatialView;\r\n try {\r\n drawingToSpatialTransform = JSON.parse(row.drawingToSpatialTransform);\r\n } catch {\r\n // We'll use identity transform.\r\n }\r\n\r\n break;\r\n }\r\n } catch (_ex) {\r\n // The version of BisCore ECSchema in the iModel is probably too old to contain the SectionDrawing ECClass.\r\n }\r\n\r\n return { spatialView, displaySpatialView, drawingToSpatialTransform };\r\n }\r\n\r\n /** @internal */\r\n public override async load(): Promise<void> {\r\n assert(!this.isAttachedToViewport);\r\n\r\n await super.load();\r\n await this._attachmentInfo.load(this.iModel);\r\n }\r\n\r\n public static override createFromProps(props: ViewStateProps, iModel: IModelConnection): DrawingViewState {\r\n const cat = new CategorySelectorState(props.categorySelectorProps, iModel);\r\n const displayStyleState = new DisplayStyle2dState(props.displayStyleProps, iModel);\r\n const extents = props.modelExtents ? Range3d.fromJSON(props.modelExtents) : new Range3d();\r\n\r\n // use \"new this\" so subclasses are correct\r\n return new this(props.viewDefinitionProps as ViewDefinition2dProps, iModel, cat, displayStyleState, extents, props.sectionDrawing);\r\n }\r\n\r\n public override toProps(): ViewStateProps {\r\n const props = super.toProps();\r\n props.modelExtents = this._viewedExtents.toJSON();\r\n props.sectionDrawing = this._attachmentInfo.toJSON();\r\n return props;\r\n }\r\n\r\n public getViewedExtents(): AxisAlignedBox3d {\r\n return this._viewedExtents;\r\n }\r\n\r\n public get defaultExtentLimits() {\r\n return this._modelLimits;\r\n }\r\n\r\n /** @internal */\r\n public override isDrawingView(): this is DrawingViewState { return true; }\r\n\r\n /** @internal */\r\n public override getOrigin() {\r\n const origin = super.getOrigin();\r\n if (this._attachment)\r\n origin.z = -this._attachment.zDepth;\r\n\r\n return origin;\r\n }\r\n\r\n /** @internal */\r\n public override getExtents() {\r\n const extents = super.getExtents();\r\n if (this._attachment)\r\n extents.z = this._attachment.zDepth + Frustum2d.minimumZDistance;\r\n\r\n return extents;\r\n }\r\n\r\n /** @internal */\r\n public override discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n super.discloseTileTrees(trees);\r\n if (this._attachment)\r\n trees.disclose(this._attachment.viewport);\r\n }\r\n\r\n /** @internal */\r\n public override createScene(context: SceneContext): void {\r\n if (!DrawingViewState.hideDrawingGraphics)\r\n super.createScene(context);\r\n\r\n if (this._attachment)\r\n this._attachment.addToScene(context);\r\n }\r\n\r\n /** @internal */\r\n public override get areAllTileTreesLoaded(): boolean {\r\n return super.areAllTileTreesLoaded && (!this._attachment || this._attachment.view.areAllTileTreesLoaded);\r\n }\r\n\r\n /** @internal */\r\n public override get secondaryViewports() {\r\n return this._attachment ? [this._attachment.viewport] : super.secondaryViewports;\r\n }\r\n}\r\n"]}
|
|
@@ -23,6 +23,8 @@ export declare enum FrontendLoggerCategory {
|
|
|
23
23
|
* The logger category used by RealityData
|
|
24
24
|
* @alpha
|
|
25
25
|
*/
|
|
26
|
-
RealityData = "core-frontend.RealityData"
|
|
26
|
+
RealityData = "core-frontend.RealityData",
|
|
27
|
+
/** The logger category used for creating and displaying graphics. */
|
|
28
|
+
Render = "core-frontend.Render"
|
|
27
29
|
}
|
|
28
30
|
//# sourceMappingURL=FrontendLoggerCategory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrontendLoggerCategory.d.ts","sourceRoot":"","sources":["../../src/FrontendLoggerCategory.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;;GAIG;AACH,oBAAY,sBAAsB;IAChC,OAAO,kBAAkB;IAEzB,4FAA4F;IAC5F,gBAAgB,mCAAmC;IAEnD,6CAA6C;IAC7C,SAAS,4BAA4B;IAErC,4DAA4D;IAC5D,OAAO,0BAA0B;IAEjC;;;OAGG;IACH,eAAe,kCAAkC;IACjD;;;OAGG;IACH,WAAW,8BAA8B;
|
|
1
|
+
{"version":3,"file":"FrontendLoggerCategory.d.ts","sourceRoot":"","sources":["../../src/FrontendLoggerCategory.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;;GAIG;AACH,oBAAY,sBAAsB;IAChC,OAAO,kBAAkB;IAEzB,4FAA4F;IAC5F,gBAAgB,mCAAmC;IAEnD,6CAA6C;IAC7C,SAAS,4BAA4B;IAErC,4DAA4D;IAC5D,OAAO,0BAA0B;IAEjC;;;OAGG;IACH,eAAe,kCAAkC;IACjD;;;OAGG;IACH,WAAW,8BAA8B;IAEzC,qEAAqE;IACrE,MAAM,yBAAyB;CAChC"}
|
|
@@ -29,5 +29,7 @@ export var FrontendLoggerCategory;
|
|
|
29
29
|
* @alpha
|
|
30
30
|
*/
|
|
31
31
|
FrontendLoggerCategory["RealityData"] = "core-frontend.RealityData";
|
|
32
|
+
/** The logger category used for creating and displaying graphics. */
|
|
33
|
+
FrontendLoggerCategory["Render"] = "core-frontend.Render";
|
|
32
34
|
})(FrontendLoggerCategory || (FrontendLoggerCategory = {}));
|
|
33
35
|
//# sourceMappingURL=FrontendLoggerCategory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrontendLoggerCategory.js","sourceRoot":"","sources":["../../src/FrontendLoggerCategory.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH;;;;GAIG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"FrontendLoggerCategory.js","sourceRoot":"","sources":["../../src/FrontendLoggerCategory.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH;;;;GAIG;AACH,MAAM,CAAN,IAAY,sBAyBX;AAzBD,WAAY,sBAAsB;IAChC,mDAAyB,CAAA;IAEzB,4FAA4F;IAC5F,6EAAmD,CAAA;IAEnD,6CAA6C;IAC7C,+DAAqC,CAAA;IAErC,4DAA4D;IAC5D,2DAAiC,CAAA;IAEjC;;;OAGG;IACH,2EAAiD,CAAA;IACjD;;;OAGG;IACH,mEAAyC,CAAA;IAEzC,qEAAqE;IACrE,yDAA+B,CAAA;AACjC,CAAC,EAzBW,sBAAsB,KAAtB,sBAAsB,QAyBjC","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 Logging\r\n */\r\n\r\n/** Logger categories used by this package\r\n * @note All logger categories in this package start with the `core-frontend` prefix.\r\n * @see [Logger]($bentley)\r\n * @public\r\n */\r\nexport enum FrontendLoggerCategory {\r\n Package = \"core-frontend\",\r\n\r\n /** The logger category used by the [[IModelConnection]] class and other related classes. */\r\n IModelConnection = \"core-frontend.IModelConnection\",\r\n\r\n /** The logger category used for NativeApp */\r\n NativeApp = \"core-frontend.NativeApp\",\r\n\r\n /** The logger category used for making network requests. */\r\n Request = \"core-frontend.Request\",\r\n\r\n /**\r\n * The logger category used by FeatureTrackingManager\r\n * @alpha\r\n */\r\n FeatureTracking = \"core-frontend.FeatureTracking\",\r\n /**\r\n * The logger category used by RealityData\r\n * @alpha\r\n */\r\n RealityData = \"core-frontend.RealityData\",\r\n\r\n /** The logger category used for creating and displaying graphics. */\r\n Render = \"core-frontend.Render\",\r\n}\r\n"]}
|
package/lib/esm/HitDetail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HitDetail.js","sourceRoot":"","sources":["../../src/HitDetail.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 LocatingElements\r\n */\r\nimport { Id64 } from \"@itwin/core-bentley\";\r\nimport { Arc3d, CurvePrimitive, LineSegment3d, LineString3d, Path, Point3d, Transform, Vector3d, XYZProps } from \"@itwin/core-geometry\";\r\nimport { GeometryClass, LinePixels } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { GraphicType } from \"./render/GraphicBuilder\";\r\nimport { IconSprites, Sprite } from \"./Sprites\";\r\nimport { DecorateContext } from \"./ViewContext\";\r\nimport { ScreenViewport } from \"./Viewport\";\r\n\r\n/** @public */\r\nexport enum SnapMode {\r\n Nearest = 1,\r\n NearestKeypoint = 1 << 1,\r\n MidPoint = 1 << 2,\r\n Center = 1 << 3,\r\n Origin = 1 << 4,\r\n Bisector = 1 << 5,\r\n Intersection = 1 << 6,\r\n}\r\n\r\n/** @public */\r\nexport enum SnapHeat {\r\n None = 0,\r\n NotInRange = 1, // \"of interest\", but out of range\r\n InRange = 2,\r\n}\r\n\r\n/** The procedure that generated this Hit.\r\n * @public\r\n */\r\nexport enum HitSource {\r\n None = 0,\r\n FromUser = 1,\r\n MotionLocate = 2,\r\n AccuSnap = 3,\r\n TentativeSnap = 4,\r\n DataPoint = 5,\r\n Application = 6,\r\n EditAction = 7,\r\n EditActionSS = 8,\r\n}\r\n\r\n/** What was being tested to generate this hit. This is not the element or\r\n * GeometricPrimitive that generated the Hit, it is an indication of whether it is an edge or interior hit.\r\n * @public\r\n */\r\nexport enum HitGeomType {\r\n None = 0,\r\n Point = 1,\r\n Segment = 2,\r\n Curve = 3,\r\n Arc = 4,\r\n Surface = 5,\r\n}\r\n\r\n/** Classification of GeometricPrimitive that generated the Hit.\r\n * @public\r\n */\r\nexport enum HitParentGeomType {\r\n None = 0,\r\n Wire = 1,\r\n Sheet = 2,\r\n Solid = 3,\r\n Mesh = 4,\r\n Text = 5,\r\n}\r\n\r\n/** @public */\r\nexport enum HitPriority {\r\n WireEdge = 0,\r\n PlanarEdge = 1,\r\n NonPlanarEdge = 2,\r\n SilhouetteEdge = 3,\r\n PlanarSurface = 4,\r\n NonPlanarSurface = 5,\r\n Unknown = 6,\r\n}\r\n\r\n/** @public */\r\nexport enum HitDetailType {\r\n Hit = 1,\r\n Snap = 2,\r\n Intersection = 3,\r\n}\r\n\r\n/** A HitDetail stores the result when locating geometry displayed in a view.\r\n * It holds an approximate location on an element (or decoration) from a *pick*.\r\n * @public\r\n */\r\nexport class HitDetail {\r\n private readonly _iModel?: IModelConnection;\r\n /** @internal chiefly for debugging. */\r\n public readonly tileId?: string;\r\n /** @alpha */\r\n public readonly isClassifier: boolean;\r\n\r\n /** Create a new HitDetail from the inputs to and results of a locate operation.\r\n * @param testPoint The world coordinate space point that was used as the locate point.\r\n * @param viewport The view the locate operation was performed in.\r\n * @param hitSource The procedure that requested the locate operation.\r\n * @param hitPoint The approximate world coordinate location on the geometry identified by this HitDetail.\r\n * @param sourceId The source of the geometry, either a persistent element id or pickable decoration id.\r\n * @param priority The hit geometry priority/classification.\r\n * @param distXY The xy distance to hit in view coordinates.\r\n * @param distFraction The near plane distance fraction to hit.\r\n * @param subCategoryId The SubCategory for a persistent element hit.\r\n * @param geometryClass The GeometryClass for a persistent element hit.\r\n * @param iModel The IModelConnection from which the hit originated. This should almost always be left undefined, unless the hit is known to have originated from an iModel other than the one associated with the viewport.\r\n * @param modelId Optionally the Id of the [[ModelState]] from which the hit originated.\r\n * @param tileId Optionally the Id of the Tile from which the hit originated.\r\n * @param isClassifier Optionally whether the hit originated from a reality model classification.\r\n */\r\n public constructor(public readonly testPoint: Point3d, public readonly viewport: ScreenViewport, public readonly hitSource: HitSource,\r\n public readonly hitPoint: Point3d, public readonly sourceId: string, public readonly priority: HitPriority, public readonly distXY: number, public readonly distFraction: number,\r\n public readonly subCategoryId?: string, public readonly geometryClass?: GeometryClass, public readonly modelId?: string, iModel?: IModelConnection, tileId?: string, isClassifier?: boolean) {\r\n this._iModel = iModel;\r\n this.tileId = tileId;\r\n this.isClassifier = undefined !== isClassifier ? isClassifier : false;\r\n }\r\n\r\n /** Get the type of HitDetail.\r\n * @returns HitDetailType.Hit if this is a HitDetail, HitDetailType.Snap if it is a SnapDetail\r\n */\r\n public getHitType(): HitDetailType { return HitDetailType.Hit; }\r\n\r\n /** Get the *hit point* for this HitDetail. Returns the approximate point on the element that caused the hit when not a SnapDetail or IntersectDetail.\r\n * For a snap that is *hot*, the *exact* point on the Element for the snap mode is returned, otherwise the close point on the hit geometry is returned.\r\n */\r\n public getPoint(): Point3d { return this.hitPoint; }\r\n\r\n /** Determine if this HitPoint is from the same source as another HitDetail. */\r\n public isSameHit(otherHit?: HitDetail): boolean { return (undefined !== otherHit && this.sourceId === otherHit.sourceId && this.iModel === otherHit.iModel); }\r\n /** Return whether sourceId is for a persistent element and not a pickable decoration. */\r\n public get isElementHit(): boolean { return !Id64.isInvalid(this.sourceId) && !Id64.isTransient(this.sourceId); }\r\n // return whether the sourceId is for a model (reality models etc.)\r\n public get isModelHit(): boolean {\r\n return this.modelId === this.sourceId;\r\n }\r\n // return whether the hit point is from map.\r\n public get isMapHit(): boolean { return undefined !== this.viewport.mapLayerFromHit(this); }\r\n\r\n /** Create a deep copy of this HitDetail */\r\n public clone(): HitDetail {\r\n const val = new HitDetail(this.testPoint, this.viewport, this.hitSource, this.hitPoint, this.sourceId, this.priority, this.distXY, this.distFraction, this.subCategoryId, this.geometryClass, this.modelId, this._iModel, this.tileId, this.isClassifier);\r\n return val;\r\n }\r\n\r\n /** Draw this HitDetail as a Decoration. Causes the picked element to *flash* */\r\n public draw(_context: DecorateContext) {\r\n this.viewport.flashedId = this.sourceId;\r\n }\r\n\r\n /** Get the tooltip content for this HitDetail. */\r\n public async getToolTip(): Promise<HTMLElement | string> {\r\n let toolTipPromise = this.isElementHit ? IModelApp.viewManager.overrideElementToolTip(this) : IModelApp.viewManager.getDecorationToolTip(this);\r\n for (const toolTipProvider of IModelApp.viewManager.toolTipProviders)\r\n toolTipPromise = toolTipProvider.augmentToolTip(this, toolTipPromise);\r\n return toolTipPromise;\r\n }\r\n\r\n /** The IModelConnection from which the hit originated. In some cases this may not be the same as the iModel associated with the Viewport -\r\n * for example, if a [[TiledGraphicsProvider]] is used to display graphics from a different iModel in the viewport.\r\n * This HitDetail's element, subcategory, and model Ids are defined in the context of this IModelConnection.\r\n */\r\n public get iModel(): IModelConnection { return undefined !== this._iModel ? this._iModel : this.viewport.iModel; }\r\n\r\n /** Returns true if this hit originated from an [[IModelConnection]] other than the one associated with the [[Viewport]].\r\n * @see [[iModel]].\r\n */\r\n public get isExternalIModelHit(): boolean { return this.iModel !== this.viewport.iModel; }\r\n}\r\n\r\n/** A SnapDetail is generated from the result of a snap request. In addition to the HitDetail about the reason the element was *picked*,\r\n * it holds the *exact* point on the element from the snapping logic, plus additional information that varies with the type of element and snap mode.\r\n * @public\r\n */\r\nexport class SnapDetail extends HitDetail {\r\n /** A sprite to show the user the type of snap performed */\r\n public sprite?: Sprite;\r\n /** HitPoint adjusted by snap */\r\n public readonly snapPoint: Point3d;\r\n /** AccuSnap/AccuDraw can adjust the point after the snap. */\r\n public readonly adjustedPoint: Point3d;\r\n /** Curve primitive for snap. */\r\n public primitive?: CurvePrimitive;\r\n /** Surface normal at snapPoint */\r\n public normal?: Vector3d;\r\n /** The HitGeomType of this SnapDetail */\r\n public geomType?: HitGeomType;\r\n /** The HitGeomType of this SnapDetail */\r\n public parentGeomType?: HitParentGeomType;\r\n\r\n /** Constructor for SnapDetail.\r\n * @param from The HitDetail that created this snap\r\n * @param snapMode The SnapMode used to create this SnapDetail\r\n * @param heat The SnapHeat of this SnapDetail\r\n * @param snapPoint The snapped point in the element\r\n */\r\n public constructor(from: HitDetail, public snapMode: SnapMode = SnapMode.Nearest, public heat: SnapHeat = SnapHeat.None, snapPoint?: XYZProps) {\r\n super(from.testPoint, from.viewport, from.hitSource, from.hitPoint, from.sourceId, from.priority, from.distXY, from.distFraction, from.subCategoryId, from.geometryClass, from.modelId, from.iModel, from.tileId, from.isClassifier);\r\n this.snapPoint = Point3d.fromJSON(snapPoint ? snapPoint : from.hitPoint);\r\n this.adjustedPoint = this.snapPoint.clone();\r\n this.sprite = IconSprites.getSpriteFromUrl(SnapDetail.getSnapSpriteUrl(snapMode));\r\n }\r\n\r\n /** Returns `HitDetailType.Snap` */\r\n public override getHitType(): HitDetailType { return HitDetailType.Snap; }\r\n /** Get the snap point if this SnapDetail is *hot*, the pick point otherwise. */\r\n public override getPoint(): Point3d { return this.isHot ? this.snapPoint : super.getPoint(); }\r\n /** Return true if the pick point was closer than the snap aperture from the generated snap point. */\r\n public get isHot(): boolean { return this.heat !== SnapHeat.None; }\r\n /** Determine whether the [[adjustedPoint]] is different than the [[snapPoint]]. This happens, for example, when points are adjusted for grids, acs plane snap, and AccuDraw. */\r\n public get isPointAdjusted(): boolean { return !this.adjustedPoint.isExactEqual(this.snapPoint); }\r\n /** Change the snap point. */\r\n public setSnapPoint(point: Point3d, heat: SnapHeat) { this.snapPoint.setFrom(point); this.adjustedPoint.setFrom(point); this.heat = heat; }\r\n\r\n /** Set curve primitive and HitGeometryType for this SnapDetail. */\r\n public setCurvePrimitive(primitive?: CurvePrimitive, localToWorld?: Transform, geomType?: HitGeomType): void {\r\n this.primitive = primitive;\r\n this.geomType = undefined;\r\n\r\n // Only HitGeomType.Point and HitGeomType.Surface are valid without a curve primitive.\r\n if (undefined === this.primitive) {\r\n if (HitGeomType.Point === geomType || HitGeomType.Surface === geomType)\r\n this.geomType = geomType;\r\n return;\r\n }\r\n\r\n if (undefined !== localToWorld)\r\n this.primitive.tryTransformInPlace(localToWorld);\r\n\r\n if (this.primitive instanceof Arc3d)\r\n this.geomType = HitGeomType.Arc;\r\n else if (this.primitive instanceof LineSegment3d)\r\n this.geomType = HitGeomType.Segment;\r\n else if (this.primitive instanceof LineString3d)\r\n this.geomType = HitGeomType.Segment;\r\n else\r\n this.geomType = HitGeomType.Curve;\r\n\r\n // Set curve primitive geometry type override...\r\n // - HitGeomType.Point with arc/ellipse denotes center.\r\n // - HitGeomType.Surface with any curve primitive denotes an interior hit.\r\n if (undefined !== geomType && HitGeomType.None !== geomType)\r\n this.geomType = geomType;\r\n }\r\n\r\n /** Make a copy of this SnapDetail. */\r\n public override clone(): SnapDetail {\r\n const val = new SnapDetail(this, this.snapMode, this.heat, this.snapPoint);\r\n val.sprite = this.sprite;\r\n val.geomType = this.geomType;\r\n val.parentGeomType = this.parentGeomType;\r\n val.adjustedPoint.setFrom(this.adjustedPoint);\r\n if (undefined !== this.primitive)\r\n val.primitive = this.primitive.clone() as CurvePrimitive;\r\n if (undefined !== this.normal)\r\n val.normal = this.normal.clone();\r\n return val;\r\n }\r\n\r\n public getCurvePrimitive(singleSegment: boolean = true): CurvePrimitive | undefined {\r\n if (!singleSegment || undefined === this.primitive)\r\n return this.primitive;\r\n\r\n if (this.primitive instanceof LineString3d) {\r\n const ls = this.primitive;\r\n if (ls.points.length > 2) {\r\n const loc = ls.closestPoint(this.snapPoint, false);\r\n const nSegments = ls.points.length - 1;\r\n const uSegRange = (1.0 / nSegments);\r\n let segmentNo = Math.floor(loc.fraction / uSegRange);\r\n if (segmentNo >= nSegments)\r\n segmentNo = nSegments - 1;\r\n return LineSegment3d.create(ls.points[segmentNo], ls.points[segmentNo + 1]);\r\n }\r\n }\r\n\r\n return this.primitive;\r\n }\r\n\r\n public override draw(context: DecorateContext) {\r\n if (undefined !== this.primitive) {\r\n let singleSegment = false;\r\n switch (this.snapMode) {\r\n case SnapMode.Center:\r\n case SnapMode.Origin:\r\n case SnapMode.Bisector:\r\n break; // Snap point for these is computed using entire linestring, not just the hit segment...\r\n\r\n default: {\r\n singleSegment = true;\r\n break;\r\n }\r\n }\r\n\r\n const builder = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n const outline = context.viewport.hilite.color.adjustedForContrast(context.viewport.view.backgroundColor, 50);\r\n const centerLine = context.viewport.hilite.color.adjustedForContrast(outline, 175);\r\n const path = Path.create(this.getCurvePrimitive(singleSegment)!);\r\n\r\n builder.setSymbology(outline, outline, 6);\r\n builder.addPath(path);\r\n\r\n builder.setSymbology(centerLine, centerLine, 2);\r\n builder.addPath(path);\r\n\r\n context.addDecorationFromBuilder(builder);\r\n return;\r\n }\r\n super.draw(context);\r\n }\r\n\r\n private static getSnapSpriteUrl(snapType: SnapMode): string {\r\n switch (snapType) {\r\n case SnapMode.Nearest: return `${IModelApp.publicPath}sprites/SnapPointOn.png`;\r\n case SnapMode.NearestKeypoint: return `${IModelApp.publicPath}sprites/SnapKeypoint.png`;\r\n case SnapMode.MidPoint: return `${IModelApp.publicPath}sprites/SnapMidpoint.png`;\r\n case SnapMode.Center: return `${IModelApp.publicPath}sprites/SnapCenter.png`;\r\n case SnapMode.Origin: return `${IModelApp.publicPath}sprites/SnapOrigin.png`;\r\n case SnapMode.Bisector: return `${IModelApp.publicPath}sprites/SnapBisector.png`;\r\n case SnapMode.Intersection: return `${IModelApp.publicPath}sprites/SnapIntersection.png`;\r\n }\r\n return \"\";\r\n }\r\n}\r\n\r\n/** @public */\r\nexport class IntersectDetail extends SnapDetail {\r\n public constructor(from: SnapDetail, heat: SnapHeat = SnapHeat.None, snapPoint: XYZProps, public readonly otherPrimitive: CurvePrimitive, public readonly otherId: string) {\r\n super(from, SnapMode.Intersection, heat, snapPoint);\r\n this.primitive = from.primitive;\r\n this.normal = from.normal; // Preserve normal from primary snap location for AccuDraw smart rotation...\r\n }\r\n\r\n public override draw(context: DecorateContext) {\r\n if (undefined !== this.primitive && undefined !== this.otherPrimitive) {\r\n const builder = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n const outline = context.viewport.hilite.color.adjustedForContrast(context.viewport.view.backgroundColor, 50);\r\n const centerLine = context.viewport.hilite.color.adjustedForContrast(outline, 175);\r\n const path1 = Path.create(this.primitive);\r\n const path2 = Path.create(this.otherPrimitive);\r\n\r\n builder.setSymbology(outline, outline, 6);\r\n builder.addPath(path1);\r\n builder.addPath(path2);\r\n\r\n builder.setSymbology(centerLine, centerLine, 2);\r\n builder.addPath(path1);\r\n builder.setSymbology(centerLine, centerLine, 2, LinePixels.Code2);\r\n builder.addPath(path2);\r\n\r\n context.addDecorationFromBuilder(builder);\r\n return;\r\n }\r\n super.draw(context);\r\n }\r\n}\r\n\r\n/** The result of a \"locate\" is a sorted list of objects that satisfied the search criteria (a HitList). Earlier hits in the list\r\n * are somehow *better* than those later on.\r\n * @public\r\n */\r\nexport class HitList<T extends HitDetail> {\r\n public hits: T[] = [];\r\n public currHit = -1;\r\n public get length(): number { return this.hits.length; }\r\n public empty(): void { this.hits.length = 0; this.currHit = -1; }\r\n public resetCurrentHit(): void { this.currHit = -1; }\r\n\r\n /** Get a hit from a particular index into a HitList\r\n * return the requested hit from the HitList or undefined\r\n */\r\n public getHit(hitNum: number): T | undefined {\r\n if (hitNum < 0) hitNum = this.length - 1;\r\n return (hitNum >= this.length) ? undefined : this.hits[hitNum];\r\n }\r\n\r\n /** When setting one or more indices to undefined you must call dropNulls afterwards */\r\n public setHit(i: number, p: T | undefined): void {\r\n if (i < 0 || i >= this.length)\r\n return;\r\n this.hits[i] = p!;\r\n }\r\n\r\n public dropNulls(): void {\r\n const hits = this.hits;\r\n this.hits = [];\r\n for (const hit of hits)\r\n this.hits.push(hit);\r\n }\r\n\r\n public getNextHit(): T | undefined { this.currHit++; return this.getCurrentHit(); }\r\n public getCurrentHit(): T | undefined { return -1 === this.currHit ? undefined : this.getHit(this.currHit); }\r\n\r\n public setCurrentHit(hit: T): void {\r\n this.resetCurrentHit();\r\n for (let thisHit; undefined !== (thisHit = this.getNextHit());) {\r\n if (thisHit === hit)\r\n return;\r\n }\r\n }\r\n\r\n /** remove the current hit from the list. */\r\n public removeCurrentHit() { this.removeHit(this.currHit); }\r\n\r\n /** remove a hit in the list. */\r\n public removeHit(hitNum: number) {\r\n if (hitNum < 0) // Support -1 == END\r\n hitNum = this.length - 1;\r\n\r\n if (hitNum <= this.currHit)\r\n this.currHit = -1;\r\n\r\n if (hitNum >= this.length) // Locate calls GetNextHit, which increments currHit, until it goes beyond the end of size of the array.\r\n return; // Then Reset call RemoteCurrentHit, which passes in currHit. When it is out of range, we do nothing.\r\n\r\n this.hits.splice(hitNum, 1);\r\n }\r\n\r\n /** search through list and remove any hits that contain a specified element id. */\r\n public removeHitsFrom(sourceId: string): boolean {\r\n let removedOne = false;\r\n\r\n // walk backwards through list so we don't have to worry about what happens on remove\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n const thisHit = this.hits[i];\r\n if (thisHit && sourceId === thisHit.sourceId) {\r\n removedOne = true;\r\n this.removeHit(i);\r\n }\r\n }\r\n return removedOne;\r\n }\r\n\r\n private getPriorityZOverride(priority: HitPriority): number {\r\n switch (priority) {\r\n case HitPriority.WireEdge:\r\n case HitPriority.PlanarEdge:\r\n case HitPriority.NonPlanarEdge:\r\n return 0;\r\n case HitPriority.SilhouetteEdge:\r\n return 1;\r\n case HitPriority.PlanarSurface:\r\n case HitPriority.NonPlanarSurface:\r\n return 2;\r\n default:\r\n return 3;\r\n }\r\n }\r\n\r\n /** compare two hits for insertion into list. */\r\n public compare(hit1: HitDetail | undefined, hit2: HitDetail | undefined): -1 | 1 | 0 {\r\n if (!hit1 || !hit2)\r\n return 0;\r\n\r\n const zOverride1 = this.getPriorityZOverride(hit1.priority);\r\n const zOverride2 = this.getPriorityZOverride(hit2.priority);\r\n\r\n // Prefer edges over surfaces, this is more important than z because we know the edge isn't obscured...\r\n if (zOverride1 < zOverride2) return -1;\r\n if (zOverride1 > zOverride2) return 1;\r\n\r\n // Compare xy distance from pick point, prefer hits closer to center...\r\n if (hit1.distXY < hit2.distXY) return -1;\r\n if (hit1.distXY > hit2.distXY) return 1;\r\n\r\n // Compare distance fraction, prefer hits closer to eye...\r\n if (hit1.distFraction > hit2.distFraction) return -1;\r\n if (hit1.distFraction < hit2.distFraction) return 1;\r\n\r\n // Compare geometry class, prefer path/region hits over surface hits when all else is equal...\r\n if (hit1.priority < hit2.priority) return -1;\r\n if (hit1.priority > hit2.priority) return 1;\r\n\r\n return 0;\r\n }\r\n\r\n /** Add a new hit to the list. Hits are sorted according to their priority and distance. */\r\n public addHit(newHit: T): number {\r\n if (0 === this.hits.length) {\r\n this.hits.push(newHit);\r\n return 0;\r\n }\r\n let index = 0;\r\n for (; index < this.hits.length; ++index) {\r\n const oldHit = this.hits[index];\r\n const comparison = this.compare(newHit, oldHit);\r\n if (comparison < 0)\r\n break;\r\n }\r\n\r\n this.hits.splice(index, 0, newHit);\r\n return index;\r\n }\r\n\r\n /** Insert a new hit into the list at the supplied index. */\r\n public insertHit(i: number, hit: T): void {\r\n if (i < 0 || i >= this.length)\r\n this.hits.push(hit);\r\n else\r\n this.hits.splice(i, 0, hit);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"HitDetail.js","sourceRoot":"","sources":["../../src/HitDetail.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAkB,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAiC,MAAM,sBAAsB,CAAC;AACxI,OAAO,EAAiB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAU,MAAM,WAAW,CAAC;AAIhD,cAAc;AACd,MAAM,CAAN,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,6CAAW,CAAA;IACX,6DAAwB,CAAA;IACxB,+CAAiB,CAAA;IACjB,2CAAe,CAAA;IACf,4CAAe,CAAA;IACf,gDAAiB,CAAA;IACjB,wDAAqB,CAAA;AACvB,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,uCAAQ,CAAA;IACR,mDAAc,CAAA;IACd,6CAAW,CAAA;AACb,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,SAUX;AAVD,WAAY,SAAS;IACnB,yCAAQ,CAAA;IACR,iDAAY,CAAA;IACZ,yDAAgB,CAAA;IAChB,iDAAY,CAAA;IACZ,2DAAiB,CAAA;IACjB,mDAAa,CAAA;IACb,uDAAe,CAAA;IACf,qDAAc,CAAA;IACd,yDAAgB,CAAA;AAClB,CAAC,EAVW,SAAS,KAAT,SAAS,QAUpB;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,6CAAQ,CAAA;IACR,+CAAS,CAAA;IACT,mDAAW,CAAA;IACX,+CAAS,CAAA;IACT,2CAAO,CAAA;IACP,mDAAW,CAAA;AACb,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,yDAAQ,CAAA;IACR,yDAAQ,CAAA;IACR,2DAAS,CAAA;IACT,2DAAS,CAAA;IACT,yDAAQ,CAAA;IACR,yDAAQ,CAAA;AACV,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,QAO5B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,qDAAY,CAAA;IACZ,yDAAc,CAAA;IACd,+DAAiB,CAAA;IACjB,iEAAkB,CAAA;IAClB,+DAAiB,CAAA;IACjB,qEAAoB,CAAA;IACpB,mDAAW,CAAA;AACb,CAAC,EARW,WAAW,KAAX,WAAW,QAQtB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,+CAAO,CAAA;IACP,iDAAQ,CAAA;IACR,iEAAgB,CAAA;AAClB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED;;;GAGG;AACH,MAAM,OAAO,SAAS;IAOpB;;;;;;;;;;;;;;;OAeG;IACH,YAAmC,SAAkB,EAAkB,QAAwB,EAAkB,SAAoB,EACnH,QAAiB,EAAkB,QAAgB,EAAkB,QAAqB,EAAkB,MAAc,EAAkB,YAAoB,EAChK,aAAsB,EAAkB,aAA6B,EAAkB,OAAgB,EAAE,MAAyB,EAAE,MAAe,EAAE,YAAsB;QAF1J,cAAS,GAAT,SAAS,CAAS;QAAkB,aAAQ,GAAR,QAAQ,CAAgB;QAAkB,cAAS,GAAT,SAAS,CAAW;QACnH,aAAQ,GAAR,QAAQ,CAAS;QAAkB,aAAQ,GAAR,QAAQ,CAAQ;QAAkB,aAAQ,GAAR,QAAQ,CAAa;QAAkB,WAAM,GAAN,MAAM,CAAQ;QAAkB,iBAAY,GAAZ,YAAY,CAAQ;QAChK,kBAAa,GAAb,aAAa,CAAS;QAAkB,kBAAa,GAAb,aAAa,CAAgB;QAAkB,YAAO,GAAP,OAAO,CAAS;QACvH,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;IACxE,CAAC;IAED;;OAEG;IACI,UAAU,KAAoB,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAEhE;;OAEG;IACI,QAAQ,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEpD,+EAA+E;IACxE,SAAS,CAAC,QAAoB,IAAa,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9J,yFAAyF;IACzF,IAAW,YAAY,KAAc,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjH,mEAAmE;IACnE,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC;IACxC,CAAC;IACD,4CAA4C;IAC5C,IAAW,QAAQ,KAAc,OAAO,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE5F,2CAA2C;IACpC,KAAK;QACV,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1P,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gFAAgF;IACzE,IAAI,CAAC,QAAyB;QACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED,kDAAkD;IAC3C,KAAK,CAAC,UAAU;QACrB,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC/I,KAAK,MAAM,eAAe,IAAI,SAAS,CAAC,WAAW,CAAC,gBAAgB;YAClE,cAAc,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACxE,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,IAAW,MAAM,KAAuB,OAAO,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAElH;;OAEG;IACH,IAAW,mBAAmB,KAAc,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;CAC3F;AAED;;;GAGG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IAgBvC;;;;;OAKG;IACH,YAAmB,IAAe,EAAS,WAAqB,QAAQ,CAAC,OAAO,EAAS,OAAiB,QAAQ,CAAC,IAAI,EAAE,SAAoB;QAC3I,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAD5L,aAAQ,GAAR,QAAQ,CAA6B;QAAS,SAAI,GAAJ,IAAI,CAA0B;QAErH,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,mCAAmC;IACnB,UAAU,KAAoB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,gFAAgF;IAChE,QAAQ,KAAc,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC9F,qGAAqG;IACrG,IAAW,KAAK,KAAc,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,gLAAgL;IAChL,IAAW,eAAe,KAAc,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAClG,6BAA6B;IACtB,YAAY,CAAC,KAAc,EAAE,IAAc,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IAE3I,mEAAmE;IAC5D,iBAAiB,CAAC,SAA0B,EAAE,YAAwB,EAAE,QAAsB;QACnG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAE1B,sFAAsF;QACtF,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;YAChC,IAAI,WAAW,CAAC,KAAK,KAAK,QAAQ,IAAI,WAAW,CAAC,OAAO,KAAK,QAAQ;gBACpE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC3B,OAAO;SACR;QAED,IAAI,SAAS,KAAK,YAAY;YAC5B,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,SAAS,YAAY,KAAK;YACjC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC;aAC7B,IAAI,IAAI,CAAC,SAAS,YAAY,aAAa;YAC9C,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;aACjC,IAAI,IAAI,CAAC,SAAS,YAAY,YAAY;YAC7C,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;;YAEpC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC;QAEpC,gDAAgD;QAChD,wDAAwD;QACxD,2EAA2E;QAC3E,IAAI,SAAS,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ;YACzD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,sCAAsC;IACtB,KAAK;QACnB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3E,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACzC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS;YAC9B,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM;YAC3B,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACnC,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,iBAAiB,CAAC,gBAAyB,IAAI;QACpD,IAAI,CAAC,aAAa,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS;YAChD,OAAO,IAAI,CAAC,SAAS,CAAC;QAExB,IAAI,IAAI,CAAC,SAAS,YAAY,YAAY,EAAE;YAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACnD,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACvC,MAAM,SAAS,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;gBACpC,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;gBACrD,IAAI,SAAS,IAAI,SAAS;oBACxB,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;gBAC5B,OAAO,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;aAC7E;SACF;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEe,IAAI,CAAC,OAAwB;QAC3C,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;YAChC,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,QAAQ,IAAI,CAAC,QAAQ,EAAE;gBACrB,KAAK,QAAQ,CAAC,MAAM,CAAC;gBACrB,KAAK,QAAQ,CAAC,MAAM,CAAC;gBACrB,KAAK,QAAQ,CAAC,QAAQ;oBACpB,MAAM,CAAC,wFAAwF;gBAEjG,OAAO,CAAC,CAAC;oBACP,aAAa,GAAG,IAAI,CAAC;oBACrB,MAAM;iBACP;aACF;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAC7G,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACnF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAE,CAAC,CAAC;YAEjE,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEtB,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEtB,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO;SACR;QACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,QAAkB;QAChD,QAAQ,QAAQ,EAAE;YAChB,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,yBAAyB,CAAC;YAC/E,KAAK,QAAQ,CAAC,eAAe,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,0BAA0B,CAAC;YACxF,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,0BAA0B,CAAC;YACjF,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,wBAAwB,CAAC;YAC7E,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,wBAAwB,CAAC;YAC7E,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,0BAA0B,CAAC;YACjF,KAAK,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,8BAA8B,CAAC;SAC1F;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAED,cAAc;AACd,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,YAAmB,IAAgB,EAAE,OAAiB,QAAQ,CAAC,IAAI,EAAE,SAAmB,EAAkB,cAA8B,EAAkB,OAAe;QACvK,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QADoD,mBAAc,GAAd,cAAc,CAAgB;QAAkB,YAAO,GAAP,OAAO,CAAQ;QAEvK,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,4EAA4E;IACzG,CAAC;IAEe,IAAI,CAAC,OAAwB;QAC3C,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC,cAAc,EAAE;YACrE,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAC7G,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACnF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAE/C,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEvB,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAClE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEvB,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO;SACR;QACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,OAAO;IAApB;QACS,SAAI,GAAQ,EAAE,CAAC;QACf,YAAO,GAAG,CAAC,CAAC,CAAC;IA0ItB,CAAC;IAzIC,IAAW,MAAM,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,KAAK,KAAW,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,eAAe,KAAW,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAErD;;OAEG;IACI,MAAM,CAAC,MAAc;QAC1B,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACzC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,uFAAuF;IAChF,MAAM,CAAC,CAAS,EAAE,CAAgB;QACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;YAC3B,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAE,CAAC;IACpB,CAAC;IAEM,SAAS;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,IAAI;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAEM,UAAU,KAAoB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC5E,aAAa,KAAoB,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEtG,aAAa,CAAC,GAAM;QACzB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,KAAK,IAAI,OAAO,EAAE,SAAS,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG;YAC9D,IAAI,OAAO,KAAK,GAAG;gBACjB,OAAO;SACV;IACH,CAAC;IAED,4CAA4C;IACrC,gBAAgB,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE3D,gCAAgC;IACzB,SAAS,CAAC,MAAc;QAC7B,IAAI,MAAM,GAAG,CAAC,EAAoB,oBAAoB;YACpD,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3B,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO;YACxB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAEpB,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,EAAS,wGAAwG;YACxI,OAAO,CAAyB,qGAAqG;QAEvI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,mFAAmF;IAC5E,cAAc,CAAC,QAAgB;QACpC,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,qFAAqF;QACrF,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,OAAO,IAAI,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE;gBAC5C,UAAU,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACnB;SACF;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,oBAAoB,CAAC,QAAqB;QAChD,QAAQ,QAAQ,EAAE;YAChB,KAAK,WAAW,CAAC,QAAQ,CAAC;YAC1B,KAAK,WAAW,CAAC,UAAU,CAAC;YAC5B,KAAK,WAAW,CAAC,aAAa;gBAC5B,OAAO,CAAC,CAAC;YACX,KAAK,WAAW,CAAC,cAAc;gBAC7B,OAAO,CAAC,CAAC;YACX,KAAK,WAAW,CAAC,aAAa,CAAC;YAC/B,KAAK,WAAW,CAAC,gBAAgB;gBAC/B,OAAO,CAAC,CAAC;YACX;gBACE,OAAO,CAAC,CAAC;SACZ;IACH,CAAC;IAED,gDAAgD;IACzC,OAAO,CAAC,IAA2B,EAAE,IAA2B;QACrE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;YAChB,OAAO,CAAC,CAAC;QAEX,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5D,uGAAuG;QACvG,IAAI,UAAU,GAAG,UAAU;YAAE,OAAO,CAAC,CAAC,CAAC;QACvC,IAAI,UAAU,GAAG,UAAU;YAAE,OAAO,CAAC,CAAC;QAEtC,uEAAuE;QACvE,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QAExC,0DAA0D;QAC1D,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;YAAE,OAAO,CAAC,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;YAAE,OAAO,CAAC,CAAC;QAEpD,8FAA8F;QAC9F,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC;QAE5C,OAAO,CAAC,CAAC;IACX,CAAC;IAED,2FAA2F;IACpF,MAAM,CAAC,MAAS;QACrB,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,OAAO,CAAC,CAAC;SACV;QACD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,UAAU,GAAG,CAAC;gBAChB,MAAM;SACT;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4DAA4D;IACrD,SAAS,CAAC,CAAS,EAAE,GAAM;QAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;YAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;YAEpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;CACF","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 LocatingElements\r\n */\r\nimport { Id64 } from \"@itwin/core-bentley\";\r\nimport { Arc3d, CurvePrimitive, LineSegment3d, LineString3d, Path, Point3d, Transform, Vector3d, XYZProps } from \"@itwin/core-geometry\";\r\nimport { GeometryClass, LinePixels } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { GraphicType } from \"./render/GraphicBuilder\";\r\nimport { IconSprites, Sprite } from \"./Sprites\";\r\nimport { DecorateContext } from \"./ViewContext\";\r\nimport { ScreenViewport } from \"./Viewport\";\r\n\r\n/** @public */\r\nexport enum SnapMode {\r\n Nearest = 1,\r\n NearestKeypoint = 1 << 1,\r\n MidPoint = 1 << 2,\r\n Center = 1 << 3,\r\n Origin = 1 << 4,\r\n Bisector = 1 << 5,\r\n Intersection = 1 << 6,\r\n}\r\n\r\n/** @public */\r\nexport enum SnapHeat {\r\n None = 0,\r\n NotInRange = 1, // \"of interest\", but out of range\r\n InRange = 2,\r\n}\r\n\r\n/** The procedure that generated this Hit.\r\n * @public\r\n */\r\nexport enum HitSource {\r\n None = 0,\r\n FromUser = 1,\r\n MotionLocate = 2,\r\n AccuSnap = 3,\r\n TentativeSnap = 4,\r\n DataPoint = 5,\r\n Application = 6,\r\n EditAction = 7,\r\n EditActionSS = 8,\r\n}\r\n\r\n/** What was being tested to generate this hit. This is not the element or\r\n * GeometricPrimitive that generated the Hit, it is an indication of whether it is an edge or interior hit.\r\n * @public\r\n */\r\nexport enum HitGeomType {\r\n None = 0,\r\n Point = 1,\r\n Segment = 2,\r\n Curve = 3,\r\n Arc = 4,\r\n Surface = 5,\r\n}\r\n\r\n/** Classification of GeometricPrimitive that generated the Hit.\r\n * @public\r\n */\r\nexport enum HitParentGeomType {\r\n None = 0,\r\n Wire = 1,\r\n Sheet = 2,\r\n Solid = 3,\r\n Mesh = 4,\r\n Text = 5,\r\n}\r\n\r\n/** @public */\r\nexport enum HitPriority {\r\n WireEdge = 0,\r\n PlanarEdge = 1,\r\n NonPlanarEdge = 2,\r\n SilhouetteEdge = 3,\r\n PlanarSurface = 4,\r\n NonPlanarSurface = 5,\r\n Unknown = 6,\r\n}\r\n\r\n/** @public */\r\nexport enum HitDetailType {\r\n Hit = 1,\r\n Snap = 2,\r\n Intersection = 3,\r\n}\r\n\r\n/** A HitDetail stores the result when locating geometry displayed in a view.\r\n * It holds an approximate location on an element (or decoration) from a *pick*.\r\n * @public\r\n */\r\nexport class HitDetail {\r\n private readonly _iModel?: IModelConnection;\r\n /** @internal chiefly for debugging. */\r\n public readonly tileId?: string;\r\n /** @alpha */\r\n public readonly isClassifier: boolean;\r\n\r\n /** Create a new HitDetail from the inputs to and results of a locate operation.\r\n * @param testPoint The world coordinate space point that was used as the locate point.\r\n * @param viewport The view the locate operation was performed in.\r\n * @param hitSource The procedure that requested the locate operation.\r\n * @param hitPoint The approximate world coordinate location on the geometry identified by this HitDetail.\r\n * @param sourceId The source of the geometry, either a persistent element id or pickable decoration id.\r\n * @param priority The hit geometry priority/classification.\r\n * @param distXY The xy distance to hit in view coordinates.\r\n * @param distFraction The near plane distance fraction to hit.\r\n * @param subCategoryId The SubCategory for a persistent element hit.\r\n * @param geometryClass The GeometryClass for a persistent element hit.\r\n * @param iModel The IModelConnection from which the hit originated. This should almost always be left undefined, unless the hit is known to have originated from an iModel other than the one associated with the viewport.\r\n * @param modelId Optionally the Id of the [[ModelState]] from which the hit originated.\r\n * @param tileId Optionally the Id of the Tile from which the hit originated.\r\n * @param isClassifier Optionally whether the hit originated from a reality model classification.\r\n */\r\n public constructor(public readonly testPoint: Point3d, public readonly viewport: ScreenViewport, public readonly hitSource: HitSource,\r\n public readonly hitPoint: Point3d, public readonly sourceId: string, public readonly priority: HitPriority, public readonly distXY: number, public readonly distFraction: number,\r\n public readonly subCategoryId?: string, public readonly geometryClass?: GeometryClass, public readonly modelId?: string, iModel?: IModelConnection, tileId?: string, isClassifier?: boolean) {\r\n this._iModel = iModel;\r\n this.tileId = tileId;\r\n this.isClassifier = undefined !== isClassifier ? isClassifier : false;\r\n }\r\n\r\n /** Get the type of HitDetail.\r\n * @returns HitDetailType.Hit if this is a HitDetail, HitDetailType.Snap if it is a SnapDetail\r\n */\r\n public getHitType(): HitDetailType { return HitDetailType.Hit; }\r\n\r\n /** Get the *hit point* for this HitDetail. Returns the approximate point on the element that caused the hit when not a SnapDetail or IntersectDetail.\r\n * For a snap that is *hot*, the *exact* point on the Element for the snap mode is returned, otherwise the close point on the hit geometry is returned.\r\n */\r\n public getPoint(): Point3d { return this.hitPoint; }\r\n\r\n /** Determine if this HitPoint is from the same source as another HitDetail. */\r\n public isSameHit(otherHit?: HitDetail): boolean { return (undefined !== otherHit && this.sourceId === otherHit.sourceId && this.iModel === otherHit.iModel); }\r\n /** Return whether sourceId is for a persistent element and not a pickable decoration. */\r\n public get isElementHit(): boolean { return !Id64.isInvalid(this.sourceId) && !Id64.isTransient(this.sourceId); }\r\n // return whether the sourceId is for a model (reality models etc.)\r\n public get isModelHit(): boolean {\r\n return this.modelId === this.sourceId;\r\n }\r\n // return whether the hit point is from map.\r\n public get isMapHit(): boolean { return undefined !== this.viewport.mapLayerFromHit(this); }\r\n\r\n /** Create a deep copy of this HitDetail */\r\n public clone(): HitDetail {\r\n const val = new HitDetail(this.testPoint, this.viewport, this.hitSource, this.hitPoint, this.sourceId, this.priority, this.distXY, this.distFraction, this.subCategoryId, this.geometryClass, this.modelId, this._iModel, this.tileId, this.isClassifier);\r\n return val;\r\n }\r\n\r\n /** Draw this HitDetail as a Decoration. Causes the picked element to *flash* */\r\n public draw(_context: DecorateContext) {\r\n this.viewport.flashedId = this.sourceId;\r\n }\r\n\r\n /** Get the tooltip content for this HitDetail. */\r\n public async getToolTip(): Promise<HTMLElement | string> {\r\n let toolTipPromise = this.isElementHit ? IModelApp.viewManager.overrideElementToolTip(this) : IModelApp.viewManager.getDecorationToolTip(this);\r\n for (const toolTipProvider of IModelApp.viewManager.toolTipProviders)\r\n toolTipPromise = toolTipProvider.augmentToolTip(this, toolTipPromise);\r\n return toolTipPromise;\r\n }\r\n\r\n /** The IModelConnection from which the hit originated. In some cases this may not be the same as the iModel associated with the Viewport -\r\n * for example, if a [[TiledGraphicsProvider]] is used to display graphics from a different iModel in the viewport.\r\n * This HitDetail's element, subcategory, and model Ids are defined in the context of this IModelConnection.\r\n */\r\n public get iModel(): IModelConnection { return undefined !== this._iModel ? this._iModel : this.viewport.iModel; }\r\n\r\n /** Returns true if this hit originated from an [[IModelConnection]] other than the one associated with the [[Viewport]].\r\n * @see [[iModel]].\r\n */\r\n public get isExternalIModelHit(): boolean { return this.iModel !== this.viewport.iModel; }\r\n}\r\n\r\n/** A SnapDetail is generated from the result of a snap request. In addition to the HitDetail about the reason the element was *picked*,\r\n * it holds the *exact* point on the element from the snapping logic, plus additional information that varies with the type of element and snap mode.\r\n * @public\r\n */\r\nexport class SnapDetail extends HitDetail {\r\n /** A sprite to show the user the type of snap performed */\r\n public sprite?: Sprite;\r\n /** HitPoint adjusted by snap */\r\n public readonly snapPoint: Point3d;\r\n /** AccuSnap/AccuDraw can adjust the point after the snap. */\r\n public readonly adjustedPoint: Point3d;\r\n /** Curve primitive for snap. */\r\n public primitive?: CurvePrimitive;\r\n /** Surface normal at snapPoint */\r\n public normal?: Vector3d;\r\n /** The HitGeomType of this SnapDetail */\r\n public geomType?: HitGeomType;\r\n /** The HitGeomType of this SnapDetail */\r\n public parentGeomType?: HitParentGeomType;\r\n\r\n /** Constructor for SnapDetail.\r\n * @param from The HitDetail that created this snap\r\n * @param snapMode The SnapMode used to create this SnapDetail\r\n * @param heat The SnapHeat of this SnapDetail\r\n * @param snapPoint The snapped point in the element\r\n */\r\n public constructor(from: HitDetail, public snapMode: SnapMode = SnapMode.Nearest, public heat: SnapHeat = SnapHeat.None, snapPoint?: XYZProps) {\r\n super(from.testPoint, from.viewport, from.hitSource, from.hitPoint, from.sourceId, from.priority, from.distXY, from.distFraction, from.subCategoryId, from.geometryClass, from.modelId, from.iModel, from.tileId, from.isClassifier);\r\n this.snapPoint = Point3d.fromJSON(snapPoint ? snapPoint : from.hitPoint);\r\n this.adjustedPoint = this.snapPoint.clone();\r\n this.sprite = IconSprites.getSpriteFromUrl(SnapDetail.getSnapSpriteUrl(snapMode));\r\n }\r\n\r\n /** Returns `HitDetailType.Snap` */\r\n public override getHitType(): HitDetailType { return HitDetailType.Snap; }\r\n /** Get the snap point if this SnapDetail is *hot*, the pick point otherwise. */\r\n public override getPoint(): Point3d { return this.isHot ? this.snapPoint : super.getPoint(); }\r\n /** Return true if the pick point was closer than the snap aperture from the generated snap point. */\r\n public get isHot(): boolean { return this.heat !== SnapHeat.None; }\r\n /** Determine whether the [[adjustedPoint]] is different than the [[snapPoint]]. This happens, for example, when points are adjusted for grids, acs plane snap, and AccuDraw. */\r\n public get isPointAdjusted(): boolean { return !this.adjustedPoint.isExactEqual(this.snapPoint); }\r\n /** Change the snap point. */\r\n public setSnapPoint(point: Point3d, heat: SnapHeat) { this.snapPoint.setFrom(point); this.adjustedPoint.setFrom(point); this.heat = heat; }\r\n\r\n /** Set curve primitive and HitGeometryType for this SnapDetail. */\r\n public setCurvePrimitive(primitive?: CurvePrimitive, localToWorld?: Transform, geomType?: HitGeomType): void {\r\n this.primitive = primitive;\r\n this.geomType = undefined;\r\n\r\n // Only HitGeomType.Point and HitGeomType.Surface are valid without a curve primitive.\r\n if (undefined === this.primitive) {\r\n if (HitGeomType.Point === geomType || HitGeomType.Surface === geomType)\r\n this.geomType = geomType;\r\n return;\r\n }\r\n\r\n if (undefined !== localToWorld)\r\n this.primitive.tryTransformInPlace(localToWorld);\r\n\r\n if (this.primitive instanceof Arc3d)\r\n this.geomType = HitGeomType.Arc;\r\n else if (this.primitive instanceof LineSegment3d)\r\n this.geomType = HitGeomType.Segment;\r\n else if (this.primitive instanceof LineString3d)\r\n this.geomType = HitGeomType.Segment;\r\n else\r\n this.geomType = HitGeomType.Curve;\r\n\r\n // Set curve primitive geometry type override...\r\n // - HitGeomType.Point with arc/ellipse denotes center.\r\n // - HitGeomType.Surface with any curve primitive denotes an interior hit.\r\n if (undefined !== geomType && HitGeomType.None !== geomType)\r\n this.geomType = geomType;\r\n }\r\n\r\n /** Make a copy of this SnapDetail. */\r\n public override clone(): SnapDetail {\r\n const val = new SnapDetail(this, this.snapMode, this.heat, this.snapPoint);\r\n val.sprite = this.sprite;\r\n val.geomType = this.geomType;\r\n val.parentGeomType = this.parentGeomType;\r\n val.adjustedPoint.setFrom(this.adjustedPoint);\r\n if (undefined !== this.primitive)\r\n val.primitive = this.primitive.clone();\r\n if (undefined !== this.normal)\r\n val.normal = this.normal.clone();\r\n return val;\r\n }\r\n\r\n public getCurvePrimitive(singleSegment: boolean = true): CurvePrimitive | undefined {\r\n if (!singleSegment || undefined === this.primitive)\r\n return this.primitive;\r\n\r\n if (this.primitive instanceof LineString3d) {\r\n const ls = this.primitive;\r\n if (ls.points.length > 2) {\r\n const loc = ls.closestPoint(this.snapPoint, false);\r\n const nSegments = ls.points.length - 1;\r\n const uSegRange = (1.0 / nSegments);\r\n let segmentNo = Math.floor(loc.fraction / uSegRange);\r\n if (segmentNo >= nSegments)\r\n segmentNo = nSegments - 1;\r\n return LineSegment3d.create(ls.points[segmentNo], ls.points[segmentNo + 1]);\r\n }\r\n }\r\n\r\n return this.primitive;\r\n }\r\n\r\n public override draw(context: DecorateContext) {\r\n if (undefined !== this.primitive) {\r\n let singleSegment = false;\r\n switch (this.snapMode) {\r\n case SnapMode.Center:\r\n case SnapMode.Origin:\r\n case SnapMode.Bisector:\r\n break; // Snap point for these is computed using entire linestring, not just the hit segment...\r\n\r\n default: {\r\n singleSegment = true;\r\n break;\r\n }\r\n }\r\n\r\n const builder = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n const outline = context.viewport.hilite.color.adjustedForContrast(context.viewport.view.backgroundColor, 50);\r\n const centerLine = context.viewport.hilite.color.adjustedForContrast(outline, 175);\r\n const path = Path.create(this.getCurvePrimitive(singleSegment)!);\r\n\r\n builder.setSymbology(outline, outline, 6);\r\n builder.addPath(path);\r\n\r\n builder.setSymbology(centerLine, centerLine, 2);\r\n builder.addPath(path);\r\n\r\n context.addDecorationFromBuilder(builder);\r\n return;\r\n }\r\n super.draw(context);\r\n }\r\n\r\n private static getSnapSpriteUrl(snapType: SnapMode): string {\r\n switch (snapType) {\r\n case SnapMode.Nearest: return `${IModelApp.publicPath}sprites/SnapPointOn.png`;\r\n case SnapMode.NearestKeypoint: return `${IModelApp.publicPath}sprites/SnapKeypoint.png`;\r\n case SnapMode.MidPoint: return `${IModelApp.publicPath}sprites/SnapMidpoint.png`;\r\n case SnapMode.Center: return `${IModelApp.publicPath}sprites/SnapCenter.png`;\r\n case SnapMode.Origin: return `${IModelApp.publicPath}sprites/SnapOrigin.png`;\r\n case SnapMode.Bisector: return `${IModelApp.publicPath}sprites/SnapBisector.png`;\r\n case SnapMode.Intersection: return `${IModelApp.publicPath}sprites/SnapIntersection.png`;\r\n }\r\n return \"\";\r\n }\r\n}\r\n\r\n/** @public */\r\nexport class IntersectDetail extends SnapDetail {\r\n public constructor(from: SnapDetail, heat: SnapHeat = SnapHeat.None, snapPoint: XYZProps, public readonly otherPrimitive: CurvePrimitive, public readonly otherId: string) {\r\n super(from, SnapMode.Intersection, heat, snapPoint);\r\n this.primitive = from.primitive;\r\n this.normal = from.normal; // Preserve normal from primary snap location for AccuDraw smart rotation...\r\n }\r\n\r\n public override draw(context: DecorateContext) {\r\n if (undefined !== this.primitive && undefined !== this.otherPrimitive) {\r\n const builder = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n const outline = context.viewport.hilite.color.adjustedForContrast(context.viewport.view.backgroundColor, 50);\r\n const centerLine = context.viewport.hilite.color.adjustedForContrast(outline, 175);\r\n const path1 = Path.create(this.primitive);\r\n const path2 = Path.create(this.otherPrimitive);\r\n\r\n builder.setSymbology(outline, outline, 6);\r\n builder.addPath(path1);\r\n builder.addPath(path2);\r\n\r\n builder.setSymbology(centerLine, centerLine, 2);\r\n builder.addPath(path1);\r\n builder.setSymbology(centerLine, centerLine, 2, LinePixels.Code2);\r\n builder.addPath(path2);\r\n\r\n context.addDecorationFromBuilder(builder);\r\n return;\r\n }\r\n super.draw(context);\r\n }\r\n}\r\n\r\n/** The result of a \"locate\" is a sorted list of objects that satisfied the search criteria (a HitList). Earlier hits in the list\r\n * are somehow *better* than those later on.\r\n * @public\r\n */\r\nexport class HitList<T extends HitDetail> {\r\n public hits: T[] = [];\r\n public currHit = -1;\r\n public get length(): number { return this.hits.length; }\r\n public empty(): void { this.hits.length = 0; this.currHit = -1; }\r\n public resetCurrentHit(): void { this.currHit = -1; }\r\n\r\n /** Get a hit from a particular index into a HitList\r\n * return the requested hit from the HitList or undefined\r\n */\r\n public getHit(hitNum: number): T | undefined {\r\n if (hitNum < 0) hitNum = this.length - 1;\r\n return (hitNum >= this.length) ? undefined : this.hits[hitNum];\r\n }\r\n\r\n /** When setting one or more indices to undefined you must call dropNulls afterwards */\r\n public setHit(i: number, p: T | undefined): void {\r\n if (i < 0 || i >= this.length)\r\n return;\r\n this.hits[i] = p!;\r\n }\r\n\r\n public dropNulls(): void {\r\n const hits = this.hits;\r\n this.hits = [];\r\n for (const hit of hits)\r\n this.hits.push(hit);\r\n }\r\n\r\n public getNextHit(): T | undefined { this.currHit++; return this.getCurrentHit(); }\r\n public getCurrentHit(): T | undefined { return -1 === this.currHit ? undefined : this.getHit(this.currHit); }\r\n\r\n public setCurrentHit(hit: T): void {\r\n this.resetCurrentHit();\r\n for (let thisHit; undefined !== (thisHit = this.getNextHit());) {\r\n if (thisHit === hit)\r\n return;\r\n }\r\n }\r\n\r\n /** remove the current hit from the list. */\r\n public removeCurrentHit() { this.removeHit(this.currHit); }\r\n\r\n /** remove a hit in the list. */\r\n public removeHit(hitNum: number) {\r\n if (hitNum < 0) // Support -1 == END\r\n hitNum = this.length - 1;\r\n\r\n if (hitNum <= this.currHit)\r\n this.currHit = -1;\r\n\r\n if (hitNum >= this.length) // Locate calls GetNextHit, which increments currHit, until it goes beyond the end of size of the array.\r\n return; // Then Reset call RemoteCurrentHit, which passes in currHit. When it is out of range, we do nothing.\r\n\r\n this.hits.splice(hitNum, 1);\r\n }\r\n\r\n /** search through list and remove any hits that contain a specified element id. */\r\n public removeHitsFrom(sourceId: string): boolean {\r\n let removedOne = false;\r\n\r\n // walk backwards through list so we don't have to worry about what happens on remove\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n const thisHit = this.hits[i];\r\n if (thisHit && sourceId === thisHit.sourceId) {\r\n removedOne = true;\r\n this.removeHit(i);\r\n }\r\n }\r\n return removedOne;\r\n }\r\n\r\n private getPriorityZOverride(priority: HitPriority): number {\r\n switch (priority) {\r\n case HitPriority.WireEdge:\r\n case HitPriority.PlanarEdge:\r\n case HitPriority.NonPlanarEdge:\r\n return 0;\r\n case HitPriority.SilhouetteEdge:\r\n return 1;\r\n case HitPriority.PlanarSurface:\r\n case HitPriority.NonPlanarSurface:\r\n return 2;\r\n default:\r\n return 3;\r\n }\r\n }\r\n\r\n /** compare two hits for insertion into list. */\r\n public compare(hit1: HitDetail | undefined, hit2: HitDetail | undefined): -1 | 1 | 0 {\r\n if (!hit1 || !hit2)\r\n return 0;\r\n\r\n const zOverride1 = this.getPriorityZOverride(hit1.priority);\r\n const zOverride2 = this.getPriorityZOverride(hit2.priority);\r\n\r\n // Prefer edges over surfaces, this is more important than z because we know the edge isn't obscured...\r\n if (zOverride1 < zOverride2) return -1;\r\n if (zOverride1 > zOverride2) return 1;\r\n\r\n // Compare xy distance from pick point, prefer hits closer to center...\r\n if (hit1.distXY < hit2.distXY) return -1;\r\n if (hit1.distXY > hit2.distXY) return 1;\r\n\r\n // Compare distance fraction, prefer hits closer to eye...\r\n if (hit1.distFraction > hit2.distFraction) return -1;\r\n if (hit1.distFraction < hit2.distFraction) return 1;\r\n\r\n // Compare geometry class, prefer path/region hits over surface hits when all else is equal...\r\n if (hit1.priority < hit2.priority) return -1;\r\n if (hit1.priority > hit2.priority) return 1;\r\n\r\n return 0;\r\n }\r\n\r\n /** Add a new hit to the list. Hits are sorted according to their priority and distance. */\r\n public addHit(newHit: T): number {\r\n if (0 === this.hits.length) {\r\n this.hits.push(newHit);\r\n return 0;\r\n }\r\n let index = 0;\r\n for (; index < this.hits.length; ++index) {\r\n const oldHit = this.hits[index];\r\n const comparison = this.compare(newHit, oldHit);\r\n if (comparison < 0)\r\n break;\r\n }\r\n\r\n this.hits.splice(index, 0, newHit);\r\n return index;\r\n }\r\n\r\n /** Insert a new hit into the list at the supplied index. */\r\n public insertHit(i: number, hit: T): void {\r\n if (i < 0 || i >= this.length)\r\n this.hits.push(hit);\r\n else\r\n this.hits.splice(i, 0, hit);\r\n }\r\n}\r\n"]}
|
package/lib/esm/IModelApp.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { AuthorizationClient, Localization, RealityDataAccess, RpcInterfaceDefin
|
|
|
8
8
|
import { WebGLRenderCompatibilityInfo } from "@itwin/webgl-compatibility";
|
|
9
9
|
import { AccuDraw } from "./AccuDraw";
|
|
10
10
|
import { AccuSnap } from "./AccuSnap";
|
|
11
|
+
import { ExtensionAdmin } from "./extension/ExtensionAdmin";
|
|
11
12
|
import { ElementLocateManager } from "./ElementLocateManager";
|
|
12
13
|
import { EntityState } from "./EntityState";
|
|
13
14
|
import { FrontendHubAccess } from "./FrontendHubAccess";
|
|
@@ -153,6 +154,10 @@ export declare class IModelApp {
|
|
|
153
154
|
protected constructor();
|
|
154
155
|
/** Event raised just before the frontend IModelApp is to be shut down */
|
|
155
156
|
static readonly onBeforeShutdown: BeEvent<() => void>;
|
|
157
|
+
/** Event raised after IModelApp is finished starting up.
|
|
158
|
+
* @internal
|
|
159
|
+
*/
|
|
160
|
+
static readonly onAfterStartup: BeEvent<() => void>;
|
|
156
161
|
/** Provides authorization information for various frontend APIs */
|
|
157
162
|
static authorizationClient?: AuthorizationClient;
|
|
158
163
|
/** The [[ToolRegistry]] for this session. */
|
|
@@ -171,9 +176,7 @@ export declare class IModelApp {
|
|
|
171
176
|
static get notifications(): NotificationManager;
|
|
172
177
|
/** The [[TileAdmin]] for this session. */
|
|
173
178
|
static get tileAdmin(): TileAdmin;
|
|
174
|
-
/** The [[QuantityFormatter]] for this session.
|
|
175
|
-
* @alpha
|
|
176
|
-
*/
|
|
179
|
+
/** The [[QuantityFormatter]] for this session. */
|
|
177
180
|
static get quantityFormatter(): QuantityFormatter;
|
|
178
181
|
/** The [[ToolAdmin]] for this session. */
|
|
179
182
|
static get toolAdmin(): ToolAdmin;
|
|
@@ -183,7 +186,6 @@ export declare class IModelApp {
|
|
|
183
186
|
static get accuDraw(): AccuDraw;
|
|
184
187
|
/** The [[AccuSnap]] for this session. */
|
|
185
188
|
static get accuSnap(): AccuSnap;
|
|
186
|
-
/** @internal */
|
|
187
189
|
static get locateManager(): ElementLocateManager;
|
|
188
190
|
/** @internal */
|
|
189
191
|
static get tentativePoint(): TentativePoint;
|
|
@@ -221,6 +223,8 @@ export declare class IModelApp {
|
|
|
221
223
|
* @internal
|
|
222
224
|
*/
|
|
223
225
|
static readonly telemetry: TelemetryManager;
|
|
226
|
+
/** @alpha */
|
|
227
|
+
static readonly extensionAdmin: ExtensionAdmin;
|
|
224
228
|
/** Map of classFullName to EntityState class */
|
|
225
229
|
private static _entityClasses;
|
|
226
230
|
/** Register all of the subclasses of EntityState from a module.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IModelApp.d.ts","sourceRoot":"","sources":["../../src/IModelApp.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAA0C,UAAU,EAAU,MAAM,qBAAqB,CAAC;AACnI,OAAO,EACL,mBAAmB,EAAgB,YAAY,EAAE,iBAAiB,EAAoB,sBAAsB,EAC7G,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAA4B,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"IModelApp.d.ts","sourceRoot":"","sources":["../../src/IModelApp.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/IModelApp.js
CHANGED
|
@@ -16,6 +16,7 @@ import { AccuDraw } from "./AccuDraw";
|
|
|
16
16
|
import { AccuSnap } from "./AccuSnap";
|
|
17
17
|
import * as auxCoordState from "./AuxCoordSys";
|
|
18
18
|
import * as categorySelectorState from "./CategorySelectorState";
|
|
19
|
+
import { ExtensionAdmin } from "./extension/ExtensionAdmin";
|
|
19
20
|
import * as displayStyleState from "./DisplayStyleState";
|
|
20
21
|
import * as drawingViewState from "./DrawingViewState";
|
|
21
22
|
import { ElementLocateManager } from "./ElementLocateManager";
|
|
@@ -67,9 +68,7 @@ export class IModelApp {
|
|
|
67
68
|
static get notifications() { return this._notifications; }
|
|
68
69
|
/** The [[TileAdmin]] for this session. */
|
|
69
70
|
static get tileAdmin() { return this._tileAdmin; }
|
|
70
|
-
/** The [[QuantityFormatter]] for this session.
|
|
71
|
-
* @alpha
|
|
72
|
-
*/
|
|
71
|
+
/** The [[QuantityFormatter]] for this session. */
|
|
73
72
|
static get quantityFormatter() { return this._quantityFormatter; }
|
|
74
73
|
/** The [[ToolAdmin]] for this session. */
|
|
75
74
|
static get toolAdmin() { return this._toolAdmin; }
|
|
@@ -79,7 +78,6 @@ export class IModelApp {
|
|
|
79
78
|
static get accuDraw() { return this._accuDraw; }
|
|
80
79
|
/** The [[AccuSnap]] for this session. */
|
|
81
80
|
static get accuSnap() { return this._accuSnap; }
|
|
82
|
-
/** @internal */
|
|
83
81
|
static get locateManager() { return this._locateManager; }
|
|
84
82
|
/** @internal */
|
|
85
83
|
static get tentativePoint() { return this._tentativePoint; }
|
|
@@ -164,8 +162,10 @@ export class IModelApp {
|
|
|
164
162
|
this._initialized = true;
|
|
165
163
|
opts = opts !== null && opts !== void 0 ? opts : {};
|
|
166
164
|
this._securityOptions = (_a = opts.security) !== null && _a !== void 0 ? _a : {};
|
|
167
|
-
|
|
168
|
-
|
|
165
|
+
if (process.env.NODE_ENV === "development") {
|
|
166
|
+
// Make IModelApp globally accessible for debugging purposes. We'll remove it on shutdown.
|
|
167
|
+
window.iModelAppForDebugger = this;
|
|
168
|
+
}
|
|
169
169
|
this.sessionId = (_b = opts.sessionId) !== null && _b !== void 0 ? _b : Guid.createValue();
|
|
170
170
|
this._applicationId = (_c = opts.applicationId) !== null && _c !== void 0 ? _c : "2686"; // Default to product id of iTwin.js
|
|
171
171
|
this._applicationVersion = (_d = opts.applicationVersion) !== null && _d !== void 0 ? _d : "1.0.0";
|
|
@@ -221,7 +221,8 @@ export class IModelApp {
|
|
|
221
221
|
this.tentativePoint,
|
|
222
222
|
this.uiAdmin,
|
|
223
223
|
].forEach((sys) => sys.onInitialized());
|
|
224
|
-
|
|
224
|
+
await this.quantityFormatter.onInitialized();
|
|
225
|
+
this.onAfterStartup.raiseEvent();
|
|
225
226
|
}
|
|
226
227
|
/** Must be called before the application exits to release any held resources. */
|
|
227
228
|
static async shutdown() {
|
|
@@ -230,7 +231,9 @@ export class IModelApp {
|
|
|
230
231
|
// notify listeners that this IModelApp is about to be shut down.
|
|
231
232
|
this.onBeforeShutdown.raiseEvent();
|
|
232
233
|
this.onBeforeShutdown.clear();
|
|
233
|
-
|
|
234
|
+
if (process.env.NODE_ENV === "development") {
|
|
235
|
+
window.iModelAppForDebugger = undefined;
|
|
236
|
+
}
|
|
234
237
|
this._wantEventLoop = false;
|
|
235
238
|
window.removeEventListener("resize", IModelApp.requestNextAnimation);
|
|
236
239
|
this.clearIntervalAnimation();
|
|
@@ -240,6 +243,7 @@ export class IModelApp {
|
|
|
240
243
|
this._entityClasses.clear();
|
|
241
244
|
this.authorizationClient = undefined;
|
|
242
245
|
this._initialized = false;
|
|
246
|
+
this.onAfterStartup.clear();
|
|
243
247
|
}
|
|
244
248
|
/** Controls how frequently the application polls for changes that may require a new animation frame to be requested.
|
|
245
249
|
* Such changes include resizing a Viewport or changing the device pixel ratio by zooming in or out in the browser.
|
|
@@ -446,7 +450,7 @@ export class IModelApp {
|
|
|
446
450
|
static makeIModelJsLogoCard() {
|
|
447
451
|
return this.makeLogoCard({
|
|
448
452
|
iconSrc: `${this.publicPath}images/about-imodeljs.svg`,
|
|
449
|
-
heading: `<span style="font-weight:normal">${this.localization.getLocalizedString("Notices.PoweredBy")}</span> iTwin.js`,
|
|
453
|
+
heading: `<span style="font-weight:normal">${this.localization.getLocalizedString("iModelJs:Notices.PoweredBy")}</span> iTwin.js`,
|
|
450
454
|
notice: `${require("../../package.json").version}<br>${copyrightNotice}`, // eslint-disable-line @typescript-eslint/no-var-requires
|
|
451
455
|
});
|
|
452
456
|
}
|
|
@@ -479,7 +483,7 @@ export class IModelApp {
|
|
|
479
483
|
if (!key.val)
|
|
480
484
|
key = { scope: "Errors", val: "Status", status: status.toString() };
|
|
481
485
|
}
|
|
482
|
-
return this.localization.getLocalizedString(
|
|
486
|
+
return this.localization.getLocalizedString(`iModelJs:${key.scope}.${key.val}`, key);
|
|
483
487
|
}
|
|
484
488
|
}
|
|
485
489
|
IModelApp._initialized = false;
|
|
@@ -488,12 +492,18 @@ IModelApp._animationRequested = false;
|
|
|
488
492
|
IModelApp._animationInterval = BeDuration.fromSeconds(1);
|
|
489
493
|
/** Event raised just before the frontend IModelApp is to be shut down */
|
|
490
494
|
IModelApp.onBeforeShutdown = new BeEvent();
|
|
495
|
+
/** Event raised after IModelApp is finished starting up.
|
|
496
|
+
* @internal
|
|
497
|
+
*/
|
|
498
|
+
IModelApp.onAfterStartup = new BeEvent();
|
|
491
499
|
/** The [[ToolRegistry]] for this session. */
|
|
492
500
|
IModelApp.tools = new ToolRegistry();
|
|
493
501
|
/** The [[TelemetryManager]] for this session
|
|
494
502
|
* @internal
|
|
495
503
|
*/
|
|
496
504
|
IModelApp.telemetry = new TelemetryManager();
|
|
505
|
+
/** @alpha */
|
|
506
|
+
IModelApp.extensionAdmin = new ExtensionAdmin();
|
|
497
507
|
/** Map of classFullName to EntityState class */
|
|
498
508
|
IModelApp._entityClasses = new Map();
|
|
499
509
|
//# sourceMappingURL=IModelApp.js.map
|