@itwin/core-frontend 5.0.0-dev.99 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +101 -1
- package/lib/cjs/AccuDraw.d.ts +2 -0
- package/lib/cjs/AccuDraw.d.ts.map +1 -1
- package/lib/cjs/AccuDraw.js +22 -41
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/AccuSnap.d.ts +1 -0
- package/lib/cjs/AccuSnap.d.ts.map +1 -1
- package/lib/cjs/AccuSnap.js +71 -3
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/BriefcaseConnection.d.ts +1 -1
- package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
- package/lib/cjs/BriefcaseConnection.js.map +1 -1
- package/lib/cjs/CatalogConnection.d.ts +71 -0
- package/lib/cjs/CatalogConnection.d.ts.map +1 -0
- package/lib/cjs/CatalogConnection.js +95 -0
- package/lib/cjs/CatalogConnection.js.map +1 -0
- package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
- package/lib/cjs/ElementLocateManager.js +5 -2
- package/lib/cjs/ElementLocateManager.js.map +1 -1
- package/lib/cjs/GraphicalEditingScope.d.ts +1 -1
- package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
- package/lib/cjs/GraphicalEditingScope.js +1 -1
- package/lib/cjs/GraphicalEditingScope.js.map +1 -1
- package/lib/cjs/HitDetail.d.ts +30 -3
- package/lib/cjs/HitDetail.d.ts.map +1 -1
- package/lib/cjs/HitDetail.js +14 -0
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +16 -1
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +20 -1
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +18 -6
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +27 -6
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/IpcApp.d.ts +2 -2
- package/lib/cjs/IpcApp.d.ts.map +1 -1
- package/lib/cjs/IpcApp.js +1 -1
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/ModelState.d.ts.map +1 -1
- package/lib/cjs/ModelState.js +7 -5
- package/lib/cjs/ModelState.js.map +1 -1
- package/lib/cjs/NativeApp.d.ts +2 -1
- package/lib/cjs/NativeApp.d.ts.map +1 -1
- package/lib/cjs/NativeApp.js +1 -0
- package/lib/cjs/NativeApp.js.map +1 -1
- package/lib/cjs/SelectionSet.d.ts +7 -7
- package/lib/cjs/SelectionSet.js +3 -3
- package/lib/cjs/SelectionSet.js.map +1 -1
- package/lib/cjs/ViewContext.d.ts +4 -1
- package/lib/cjs/ViewContext.d.ts.map +1 -1
- package/lib/cjs/ViewContext.js +10 -5
- package/lib/cjs/ViewContext.js.map +1 -1
- package/lib/cjs/ViewManager.js +2 -2
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewState.d.ts +1 -1
- package/lib/cjs/ViewState.js +1 -1
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +7 -5
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +10 -5
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/core-frontend.d.ts +2 -1
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +1 -0
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/extension/ExtensionRuntime.js +15 -2
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
- package/lib/cjs/extension/providers/ExtensionLoadScript.d.ts.map +1 -1
- package/lib/cjs/extension/providers/ExtensionLoadScript.js +24 -6
- package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/cjs/internal/cross-package.d.ts +1 -1
- package/lib/cjs/internal/cross-package.d.ts.map +1 -1
- package/lib/cjs/internal/cross-package.js +3 -1
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/render/MockRender.d.ts +1 -1
- package/lib/cjs/internal/render/MockRender.d.ts.map +1 -1
- package/lib/cjs/internal/render/MockRender.js +1 -1
- package/lib/cjs/internal/render/MockRender.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js +1 -1
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts +2 -2
- package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeBuffers.js +2 -2
- package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ClippingProgram.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/ClippingProgram.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/ClippingProgram.js +1 -1
- package/lib/cjs/internal/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FrustumUniforms.d.ts +2 -0
- package/lib/cjs/internal/render/webgl/FrustumUniforms.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/FrustumUniforms.js +7 -0
- package/lib/cjs/internal/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MapLayerParams.d.ts +0 -1
- package/lib/cjs/internal/render/webgl/MapLayerParams.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/MapLayerParams.js +11 -20
- package/lib/cjs/internal/render/webgl/MapLayerParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderCommands.js +2 -3
- package/lib/cjs/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SceneCompositor.d.ts +9 -0
- package/lib/cjs/internal/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/SceneCompositor.js +86 -11
- package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderBuilder.d.ts +4 -3
- package/lib/cjs/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderBuilder.js +3 -3
- package/lib/cjs/internal/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderProgram.d.ts +2 -2
- package/lib/cjs/internal/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderProgram.js +2 -2
- package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SolarShadowMap.js +2 -2
- package/lib/cjs/internal/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SurfaceGeometry.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/SurfaceGeometry.js +20 -8
- package/lib/cjs/internal/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.js +2 -2
- package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetGraphics.d.ts +3 -3
- package/lib/cjs/internal/render/webgl/TargetGraphics.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetGraphics.js +10 -7
- package/lib/cjs/internal/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Technique.d.ts +3 -3
- package/lib/cjs/internal/render/webgl/Technique.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/Technique.js +3 -3
- package/lib/cjs/internal/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js +2 -1
- package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Contours.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Contours.js +31 -1
- package/lib/cjs/internal/render/webgl/glsl/Contours.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Fragment.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Fragment.js +7 -2
- package/lib/cjs/internal/render/webgl/glsl/Fragment.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Surface.js +1 -1
- package/lib/cjs/internal/tile/ClassifierTileTree.js +3 -1
- package/lib/cjs/internal/tile/ClassifierTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/GraphicsCollector.d.ts +2 -0
- package/lib/cjs/internal/tile/GraphicsCollector.d.ts.map +1 -1
- package/lib/cjs/internal/tile/GraphicsCollector.js +2 -0
- package/lib/cjs/internal/tile/GraphicsCollector.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTile.d.ts.map +1 -1
- package/lib/cjs/internal/tile/IModelTile.js +6 -0
- package/lib/cjs/internal/tile/IModelTile.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTileTree.d.ts +4 -1
- package/lib/cjs/internal/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/IModelTileTree.js +6 -0
- package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlDecoder.d.ts +2 -0
- package/lib/cjs/internal/tile/ImdlDecoder.d.ts.map +1 -1
- package/lib/cjs/internal/tile/ImdlDecoder.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.d.ts +2 -2
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.js +2 -1
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/cjs/{tile → internal/tile}/LayerTileTreeHandler.d.ts +3 -3
- package/lib/cjs/internal/tile/LayerTileTreeHandler.d.ts.map +1 -0
- package/lib/cjs/{tile → internal/tile}/LayerTileTreeHandler.js +3 -2
- package/lib/cjs/internal/tile/LayerTileTreeHandler.js.map +1 -0
- package/lib/cjs/{tile → internal/tile}/LayerTileTreeReferenceHandler.d.ts +7 -5
- package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -0
- package/lib/cjs/{tile → internal/tile}/LayerTileTreeReferenceHandler.js +27 -4
- package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -0
- package/lib/cjs/internal/tile/PrimaryTileTree.d.ts +9 -4
- package/lib/cjs/internal/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/PrimaryTileTree.js +34 -11
- package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.d.ts +15 -3
- package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.js +27 -32
- package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.js +2 -1
- package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/cjs/properties/AngleDescription.d.ts +4 -1
- package/lib/cjs/properties/AngleDescription.d.ts.map +1 -1
- package/lib/cjs/properties/AngleDescription.js +10 -2
- package/lib/cjs/properties/AngleDescription.js.map +1 -1
- package/lib/cjs/properties/FormattedQuantityDescription.d.ts +11 -1
- package/lib/cjs/properties/FormattedQuantityDescription.d.ts.map +1 -1
- package/lib/cjs/properties/FormattedQuantityDescription.js +7 -2
- package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/cjs/properties/LengthDescription.d.ts +12 -3
- package/lib/cjs/properties/LengthDescription.d.ts.map +1 -1
- package/lib/cjs/properties/LengthDescription.js +30 -6
- package/lib/cjs/properties/LengthDescription.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +103 -7
- package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js +212 -23
- package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/cjs/render/Decorations.d.ts +1 -1
- package/lib/cjs/render/Decorations.d.ts.map +1 -1
- package/lib/cjs/render/Decorations.js +1 -1
- package/lib/cjs/render/Decorations.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/Pixel.d.ts +13 -2
- package/lib/cjs/render/Pixel.d.ts.map +1 -1
- package/lib/cjs/render/Pixel.js +20 -8
- package/lib/cjs/render/Pixel.js.map +1 -1
- package/lib/cjs/render/RenderGraphic.d.ts +1 -1
- package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
- package/lib/cjs/render/RenderGraphic.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +2 -2
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.d.ts +1 -1
- package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/cjs/request/Request.d.ts +2 -2
- package/lib/cjs/request/Request.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.d.ts +3 -2
- package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlReader.js +1 -0
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js +1 -1
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/Tile.d.ts +1 -1
- package/lib/cjs/tile/Tile.d.ts.map +1 -1
- package/lib/cjs/tile/Tile.js +1 -1
- package/lib/cjs/tile/Tile.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.d.ts +10 -0
- package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
- package/lib/cjs/tile/TileAdmin.js +3 -0
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.d.ts +1 -0
- package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js +2 -0
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileTree.d.ts +1 -1
- package/lib/cjs/tile/TileTree.d.ts.map +1 -1
- package/lib/cjs/tile/TileTree.js +1 -1
- package/lib/cjs/tile/TileTree.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +1 -1
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/internal.d.ts +3 -2
- package/lib/cjs/tile/internal.d.ts.map +1 -1
- package/lib/cjs/tile/internal.js +3 -2
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js +3 -4
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -2
- package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js +2 -2
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.d.ts +10 -0
- package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.js +12 -0
- package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +3 -3
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js +9 -5
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +3 -5
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/QuadId.d.ts +15 -0
- package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
- package/lib/cjs/tile/map/QuadId.js +12 -0
- package/lib/cjs/tile/map/QuadId.js.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.js +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.d.ts +0 -12
- package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.js +2 -60
- package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
- package/lib/cjs/tools/AccuDrawViewportUI.d.ts +7 -1
- package/lib/cjs/tools/AccuDrawViewportUI.d.ts.map +1 -1
- package/lib/cjs/tools/AccuDrawViewportUI.js +29 -19
- package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
- package/lib/cjs/tools/ElementSetTool.d.ts +9 -1
- package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
- package/lib/cjs/tools/ElementSetTool.js +128 -7
- package/lib/cjs/tools/ElementSetTool.js.map +1 -1
- package/lib/cjs/tools/MeasureTool.d.ts +9 -0
- package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
- package/lib/cjs/tools/MeasureTool.js +53 -22
- package/lib/cjs/tools/MeasureTool.js.map +1 -1
- package/lib/cjs/tools/SelectTool.d.ts +2 -2
- package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
- package/lib/cjs/tools/SelectTool.js +26 -97
- package/lib/cjs/tools/SelectTool.js.map +1 -1
- package/lib/cjs/tools/Tool.d.ts +10 -1
- package/lib/cjs/tools/Tool.d.ts.map +1 -1
- package/lib/cjs/tools/Tool.js +27 -4
- package/lib/cjs/tools/Tool.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.d.ts +1 -0
- package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js +8 -2
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ToolSettings.d.ts +5 -0
- package/lib/cjs/tools/ToolSettings.d.ts.map +1 -1
- package/lib/cjs/tools/ToolSettings.js +5 -0
- package/lib/cjs/tools/ToolSettings.js.map +1 -1
- package/lib/cjs/tools/ViewTool.d.ts +26 -18
- package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ViewTool.js +39 -87
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/esm/AccuDraw.d.ts +2 -0
- package/lib/esm/AccuDraw.d.ts.map +1 -1
- package/lib/esm/AccuDraw.js +23 -42
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/AccuSnap.d.ts +1 -0
- package/lib/esm/AccuSnap.d.ts.map +1 -1
- package/lib/esm/AccuSnap.js +71 -3
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/BriefcaseConnection.d.ts +1 -1
- package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
- package/lib/esm/BriefcaseConnection.js.map +1 -1
- package/lib/esm/CatalogConnection.d.ts +71 -0
- package/lib/esm/CatalogConnection.d.ts.map +1 -0
- package/lib/esm/CatalogConnection.js +92 -0
- package/lib/esm/CatalogConnection.js.map +1 -0
- package/lib/esm/ElementLocateManager.d.ts.map +1 -1
- package/lib/esm/ElementLocateManager.js +5 -2
- package/lib/esm/ElementLocateManager.js.map +1 -1
- package/lib/esm/GraphicalEditingScope.d.ts +1 -1
- package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
- package/lib/esm/GraphicalEditingScope.js +1 -1
- package/lib/esm/GraphicalEditingScope.js.map +1 -1
- package/lib/esm/HitDetail.d.ts +30 -3
- package/lib/esm/HitDetail.d.ts.map +1 -1
- package/lib/esm/HitDetail.js +14 -0
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +16 -1
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +21 -2
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +18 -6
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +27 -6
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/IpcApp.d.ts +2 -2
- package/lib/esm/IpcApp.d.ts.map +1 -1
- package/lib/esm/IpcApp.js +1 -1
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/ModelState.d.ts.map +1 -1
- package/lib/esm/ModelState.js +7 -5
- package/lib/esm/ModelState.js.map +1 -1
- package/lib/esm/NativeApp.d.ts +2 -1
- package/lib/esm/NativeApp.d.ts.map +1 -1
- package/lib/esm/NativeApp.js +1 -0
- package/lib/esm/NativeApp.js.map +1 -1
- package/lib/esm/SelectionSet.d.ts +7 -7
- package/lib/esm/SelectionSet.js +3 -3
- package/lib/esm/SelectionSet.js.map +1 -1
- package/lib/esm/ViewContext.d.ts +4 -1
- package/lib/esm/ViewContext.d.ts.map +1 -1
- package/lib/esm/ViewContext.js +10 -5
- package/lib/esm/ViewContext.js.map +1 -1
- package/lib/esm/ViewManager.js +2 -2
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewState.d.ts +1 -1
- package/lib/esm/ViewState.js +1 -1
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/Viewport.d.ts +7 -5
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +10 -5
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/core-frontend.d.ts +2 -1
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +1 -0
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/extension/ExtensionRuntime.js +15 -2
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
- package/lib/esm/extension/providers/ExtensionLoadScript.d.ts.map +1 -1
- package/lib/esm/extension/providers/ExtensionLoadScript.js +1 -6
- package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/esm/internal/cross-package.d.ts +1 -1
- package/lib/esm/internal/cross-package.d.ts.map +1 -1
- package/lib/esm/internal/cross-package.js +1 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/internal/render/MockRender.d.ts +1 -1
- package/lib/esm/internal/render/MockRender.d.ts.map +1 -1
- package/lib/esm/internal/render/MockRender.js +1 -1
- package/lib/esm/internal/render/MockRender.js.map +1 -1
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts +1 -1
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.js +1 -1
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts +2 -2
- package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeBuffers.js +2 -2
- package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/esm/internal/render/webgl/ClippingProgram.d.ts +1 -1
- package/lib/esm/internal/render/webgl/ClippingProgram.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/ClippingProgram.js +1 -1
- package/lib/esm/internal/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/esm/internal/render/webgl/FrustumUniforms.d.ts +2 -0
- package/lib/esm/internal/render/webgl/FrustumUniforms.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/FrustumUniforms.js +8 -1
- package/lib/esm/internal/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/MapLayerParams.d.ts +0 -1
- package/lib/esm/internal/render/webgl/MapLayerParams.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/MapLayerParams.js +11 -20
- package/lib/esm/internal/render/webgl/MapLayerParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/RenderCommands.js +2 -3
- package/lib/esm/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/internal/render/webgl/SceneCompositor.d.ts +9 -0
- package/lib/esm/internal/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/SceneCompositor.js +86 -11
- package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderBuilder.d.ts +4 -3
- package/lib/esm/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderBuilder.js +3 -3
- package/lib/esm/internal/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderProgram.d.ts +2 -2
- package/lib/esm/internal/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderProgram.js +2 -2
- package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/internal/render/webgl/SolarShadowMap.js +2 -2
- package/lib/esm/internal/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/esm/internal/render/webgl/SurfaceGeometry.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/SurfaceGeometry.js +20 -8
- package/lib/esm/internal/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/Target.d.ts +1 -1
- package/lib/esm/internal/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/Target.js +2 -2
- package/lib/esm/internal/render/webgl/Target.js.map +1 -1
- package/lib/esm/internal/render/webgl/TargetGraphics.d.ts +3 -3
- package/lib/esm/internal/render/webgl/TargetGraphics.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/TargetGraphics.js +10 -7
- package/lib/esm/internal/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/esm/internal/render/webgl/Technique.d.ts +3 -3
- package/lib/esm/internal/render/webgl/Technique.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/Technique.js +3 -3
- package/lib/esm/internal/render/webgl/Technique.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Atmosphere.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js +2 -1
- package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Contours.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Contours.js +31 -1
- package/lib/esm/internal/render/webgl/glsl/Contours.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Fragment.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Fragment.js +7 -2
- package/lib/esm/internal/render/webgl/glsl/Fragment.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/RealityMesh.js +1 -1
- package/lib/esm/internal/render/webgl/glsl/Surface.js +1 -1
- package/lib/esm/internal/tile/ClassifierTileTree.js +3 -1
- package/lib/esm/internal/tile/ClassifierTileTree.js.map +1 -1
- package/lib/esm/internal/tile/GraphicsCollector.d.ts +2 -0
- package/lib/esm/internal/tile/GraphicsCollector.d.ts.map +1 -1
- package/lib/esm/internal/tile/GraphicsCollector.js +2 -0
- package/lib/esm/internal/tile/GraphicsCollector.js.map +1 -1
- package/lib/esm/internal/tile/IModelTile.d.ts.map +1 -1
- package/lib/esm/internal/tile/IModelTile.js +7 -1
- package/lib/esm/internal/tile/IModelTile.js.map +1 -1
- package/lib/esm/internal/tile/IModelTileTree.d.ts +4 -1
- package/lib/esm/internal/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/IModelTileTree.js +7 -1
- package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/ImdlDecoder.d.ts +2 -0
- package/lib/esm/internal/tile/ImdlDecoder.d.ts.map +1 -1
- package/lib/esm/internal/tile/ImdlDecoder.js.map +1 -1
- package/lib/esm/internal/tile/ImdlGraphicsCreator.d.ts +2 -2
- package/lib/esm/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/esm/internal/tile/ImdlGraphicsCreator.js +2 -1
- package/lib/esm/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/esm/{tile → internal/tile}/LayerTileTreeHandler.d.ts +3 -3
- package/lib/esm/internal/tile/LayerTileTreeHandler.d.ts.map +1 -0
- package/lib/esm/{tile → internal/tile}/LayerTileTreeHandler.js +3 -2
- package/lib/esm/internal/tile/LayerTileTreeHandler.js.map +1 -0
- package/lib/esm/{tile → internal/tile}/LayerTileTreeReferenceHandler.d.ts +7 -5
- package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -0
- package/lib/esm/{tile → internal/tile}/LayerTileTreeReferenceHandler.js +27 -4
- package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -0
- package/lib/esm/internal/tile/PrimaryTileTree.d.ts +9 -4
- package/lib/esm/internal/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/PrimaryTileTree.js +36 -13
- package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.d.ts +15 -3
- package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.js +26 -32
- package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.js +2 -1
- package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/esm/properties/AngleDescription.d.ts +4 -1
- package/lib/esm/properties/AngleDescription.d.ts.map +1 -1
- package/lib/esm/properties/AngleDescription.js +10 -2
- package/lib/esm/properties/AngleDescription.js.map +1 -1
- package/lib/esm/properties/FormattedQuantityDescription.d.ts +11 -1
- package/lib/esm/properties/FormattedQuantityDescription.d.ts.map +1 -1
- package/lib/esm/properties/FormattedQuantityDescription.js +7 -2
- package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/esm/properties/LengthDescription.d.ts +12 -3
- package/lib/esm/properties/LengthDescription.d.ts.map +1 -1
- package/lib/esm/properties/LengthDescription.js +30 -6
- package/lib/esm/properties/LengthDescription.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +103 -7
- package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.js +210 -23
- package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/esm/render/Decorations.d.ts +1 -1
- package/lib/esm/render/Decorations.d.ts.map +1 -1
- package/lib/esm/render/Decorations.js +1 -1
- package/lib/esm/render/Decorations.js.map +1 -1
- package/lib/esm/render/GraphicBranch.d.ts +1 -1
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/Pixel.d.ts +13 -2
- package/lib/esm/render/Pixel.d.ts.map +1 -1
- package/lib/esm/render/Pixel.js +20 -8
- package/lib/esm/render/Pixel.js.map +1 -1
- package/lib/esm/render/RenderGraphic.d.ts +1 -1
- package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
- package/lib/esm/render/RenderGraphic.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +2 -2
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.d.ts +1 -1
- package/lib/esm/render/RenderTarget.d.ts.map +1 -1
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/esm/request/Request.d.ts +2 -2
- package/lib/esm/request/Request.js.map +1 -1
- package/lib/esm/tile/ImdlReader.d.ts +3 -2
- package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
- package/lib/esm/tile/ImdlReader.js +1 -0
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileTree.js +2 -2
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/Tile.d.ts +1 -1
- package/lib/esm/tile/Tile.d.ts.map +1 -1
- package/lib/esm/tile/Tile.js +1 -1
- package/lib/esm/tile/Tile.js.map +1 -1
- package/lib/esm/tile/TileAdmin.d.ts +10 -0
- package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
- package/lib/esm/tile/TileAdmin.js +3 -0
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.d.ts +1 -0
- package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js +2 -0
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileTree.d.ts +1 -1
- package/lib/esm/tile/TileTree.d.ts.map +1 -1
- package/lib/esm/tile/TileTree.js +1 -1
- package/lib/esm/tile/TileTree.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +1 -1
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/internal.d.ts +3 -2
- package/lib/esm/tile/internal.d.ts.map +1 -1
- package/lib/esm/tile/internal.js +3 -2
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.d.ts +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js +4 -5
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -2
- package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js +2 -2
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.d.ts +10 -0
- package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.js +12 -0
- package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +3 -3
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js +9 -5
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +3 -5
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/QuadId.d.ts +15 -0
- package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
- package/lib/esm/tile/map/QuadId.js +12 -0
- package/lib/esm/tile/map/QuadId.js.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.d.ts +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.js +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/esm/tools/AccuDrawTool.d.ts +0 -12
- package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/esm/tools/AccuDrawTool.js +3 -60
- package/lib/esm/tools/AccuDrawTool.js.map +1 -1
- package/lib/esm/tools/AccuDrawViewportUI.d.ts +7 -1
- package/lib/esm/tools/AccuDrawViewportUI.d.ts.map +1 -1
- package/lib/esm/tools/AccuDrawViewportUI.js +30 -20
- package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
- package/lib/esm/tools/ElementSetTool.d.ts +9 -1
- package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
- package/lib/esm/tools/ElementSetTool.js +130 -9
- package/lib/esm/tools/ElementSetTool.js.map +1 -1
- package/lib/esm/tools/MeasureTool.d.ts +9 -0
- package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
- package/lib/esm/tools/MeasureTool.js +53 -22
- package/lib/esm/tools/MeasureTool.js.map +1 -1
- package/lib/esm/tools/SelectTool.d.ts +2 -2
- package/lib/esm/tools/SelectTool.d.ts.map +1 -1
- package/lib/esm/tools/SelectTool.js +26 -97
- package/lib/esm/tools/SelectTool.js.map +1 -1
- package/lib/esm/tools/Tool.d.ts +10 -1
- package/lib/esm/tools/Tool.d.ts.map +1 -1
- package/lib/esm/tools/Tool.js +27 -4
- package/lib/esm/tools/Tool.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.d.ts +1 -0
- package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/esm/tools/ToolAdmin.js +8 -2
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ToolSettings.d.ts +5 -0
- package/lib/esm/tools/ToolSettings.d.ts.map +1 -1
- package/lib/esm/tools/ToolSettings.js +5 -0
- package/lib/esm/tools/ToolSettings.js.map +1 -1
- package/lib/esm/tools/ViewTool.d.ts +26 -18
- package/lib/esm/tools/ViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ViewTool.js +39 -87
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/lib/public/locales/en/CoreTools.json +0 -5
- package/lib/public/scripts/parse-imdl-worker.js +1 -1
- package/lib/public/sprites/SnapPerpendicularPoint.png +0 -0
- package/lib/public/sprites/SnapTangentPoint.png +0 -0
- package/lib/workers/webpack/parse-imdl-worker.js +1 -1
- package/package.json +20 -16
- package/lib/cjs/tile/LayerTileTreeHandler.d.ts.map +0 -1
- package/lib/cjs/tile/LayerTileTreeHandler.js.map +0 -1
- package/lib/cjs/tile/LayerTileTreeReferenceHandler.d.ts.map +0 -1
- package/lib/cjs/tile/LayerTileTreeReferenceHandler.js.map +0 -1
- package/lib/esm/tile/LayerTileTreeHandler.d.ts.map +0 -1
- package/lib/esm/tile/LayerTileTreeHandler.js.map +0 -1
- package/lib/esm/tile/LayerTileTreeReferenceHandler.d.ts.map +0 -1
- package/lib/esm/tile/LayerTileTreeReferenceHandler.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccuDrawTool.js","sourceRoot":"","sources":["../../../src/tools/AccuDrawTool.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { BentleyStatus } from \"@itwin/core-bentley\";\nimport { AxisOrder, Geometry, Matrix3d, Point3d, Transform, Vector3d } from \"@itwin/core-geometry\";\nimport { AccuDraw, AccuDrawFlags, AccuDrawHintBuilder, CompassMode, ContextMode, ItemField, KeyinStatus, LockedStates, RotationMode, ThreeAxes } from \"../AccuDraw\";\nimport { TentativeOrAccuSnap } from \"../AccuSnap\";\nimport { ACSDisplayOptions, AuxCoordSystemState } from \"../AuxCoordSys\";\nimport { SnapDetail, SnapHeat } from \"../HitDetail\";\nimport { IModelApp } from \"../IModelApp\";\nimport { DecorateContext } from \"../ViewContext\";\nimport { ScreenViewport, Viewport } from \"../Viewport\";\nimport { BeButtonEvent, CoordinateLockOverrides, CoreTools, EventHandled, InputCollector, Tool } from \"./Tool\";\n\n// cSpell:ignore dont unlockedz\n\nfunction normalizedDifference(point1: Point3d, point2: Point3d, out: Vector3d): number {\n return point2.vectorTo(point1).normalizeWithLength(out).mag;\n}\n\nfunction normalizedCrossProduct(vec1: Vector3d, vec2: Vector3d, out: Vector3d): number {\n return vec1.crossProduct(vec2, out).normalizeWithLength(out).mag;\n}\n\n/**\n * A shortcut may require no user input (immediate) or it may install a tool to collect the needed input. AccuDrawShortcuts are how users control AccuDraw.\n * A tool implementor should not use this class to setup AccuDraw, instead use AccuDrawHintBuilder to provide hints.\n * @beta\n */\nexport class AccuDrawShortcuts {\n /** Disable/Enable AccuDraw for the session */\n public static sessionToggle(): void {\n const accudraw = IModelApp.accuDraw;\n\n if (accudraw.isEnabled)\n accudraw.disableForSession();\n else\n accudraw.enableForSession();\n }\n\n /** Suspend/Unsuspend AccuDraw for the active tool */\n public static suspendToggle(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.isActive)\n accudraw.deactivate();\n else\n accudraw.activate();\n\n accudraw.refreshDecorationsAndDynamics();\n }\n\n public static rotateAxesByPoint(isSnapped: boolean, aboutCurrentZ: boolean): boolean {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return false;\n\n const vp = accudraw.currentView;\n if (!vp)\n return false;\n\n const point = accudraw.point;\n if (!vp.view.is3d())\n point.z = 0.0;\n\n if (aboutCurrentZ)\n accudraw.hardConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\n else\n accudraw.softConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\n\n // Snap point and compass origin coincide...\n const xVec = new Vector3d();\n if (normalizedDifference(point, accudraw.planePt, xVec) < Geometry.smallAngleRadians)\n return false;\n\n accudraw.axes.x.setFrom(xVec);\n\n if (RotationMode.Context !== accudraw.rotationMode)\n accudraw.setRotationMode(RotationMode.Context);\n\n accudraw.flags.contextRotMode = ContextMode.XAxis;\n accudraw.flags.lockedRotation = false;\n\n accudraw.updateRotation();\n\n // Always want index line to display for x-Axis...changing rotation clears this...so it flashes...\n accudraw.indexed |= LockedStates.X_BM;\n return true;\n }\n\n public static updateACSByPoints(acs: AuxCoordSystemState, vp: Viewport, points: Point3d[], isDynamics: boolean): boolean {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return false;\n\n let accept = false;\n const vec = [new Vector3d(), new Vector3d(), new Vector3d()];\n acs.setOrigin(points[0]);\n switch (points.length) {\n case 1:\n acs.setRotation(vp.rotation);\n if (!isDynamics) {\n accudraw.published.origin.setFrom(points[0]);\n accudraw.published.flags = AccuDrawFlags.SetOrigin;\n accudraw.flags.fixedOrg = true;\n }\n break;\n\n case 2:\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001) {\n accept = true;\n break;\n }\n\n if (vp.view.is3d()) {\n if (normalizedCrossProduct(accudraw.axes.y, vec[0], vec[1]) < 0.00001) {\n vec[2].set(0.0, 0.0, 1.0);\n\n if (normalizedCrossProduct(vec[2], vec[0], vec[1]) < 0.00001) {\n vec[2].set(0.0, 1.0, 0.0);\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\n }\n }\n\n normalizedCrossProduct(vec[0], vec[1], vec[2]);\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\n\n if (!isDynamics) {\n accudraw.published.origin.setFrom(points[0]);\n accudraw.published.flags = AccuDrawFlags.SetOrigin | AccuDrawFlags.SetNormal;\n accudraw.published.vector.setFrom(vec[0]);\n }\n break;\n }\n\n vec[2].set(0.0, 0.0, 1.0);\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\n accept = true;\n break;\n\n case 3:\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001 ||\n normalizedDifference(points[2], points[0], vec[1]) < 0.00001 ||\n normalizedCrossProduct(vec[0], vec[1], vec[2]) < 0.00001) {\n accept = true;\n break;\n }\n\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\n accept = true;\n break;\n }\n\n return accept;\n }\n\n public static processPendingHints() { IModelApp.accuDraw.processHints(); }\n\n public static requestInputFocus() {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n accudraw.grabInputFocus();\n accudraw.refreshDecorationsAndDynamics();\n }\n\n // Helper method for GUI implementation...\n public static async itemFieldNavigate(index: ItemField, str: string, forward: boolean): Promise<void> {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.getFieldLock(index))\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\n\n if (!accudraw.isActive && KeyinStatus.Partial === accudraw.getKeyinStatus(index)) {\n await accudraw.processFieldInput(index, str, true);\n } else {\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\n accudraw.onFieldValueChange(index);\n }\n\n const vp = accudraw.currentView;\n const is3d = vp ? accudraw.is3dCompass(vp) : false;\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\n switch (index) {\n case ItemField.DIST_Item:\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.ANGLE_Item);\n break;\n\n case ItemField.ANGLE_Item:\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.DIST_Item);\n break;\n\n case ItemField.X_Item:\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.Y_Item);\n break;\n\n case ItemField.Y_Item:\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.X_Item);\n break;\n\n case ItemField.Z_Item:\n index = (forward ? (isPolar ? ItemField.DIST_Item : ItemField.X_Item) : (isPolar ? ItemField.ANGLE_Item : ItemField.Y_Item));\n break;\n }\n\n // Set focus to new item and disable automatic focus change based on cursor location in rectangular mode.\n accudraw.setFocusItem(index);\n accudraw.dontMoveFocus = true;\n }\n\n public static itemFieldNewInput(index: ItemField): void { IModelApp.accuDraw.setKeyinStatus(index, KeyinStatus.Partial); }\n public static itemFieldCompletedInput(index: ItemField): void { IModelApp.accuDraw.setKeyinStatus(index, KeyinStatus.Dynamic); }\n\n public static async itemFieldAcceptInput(index: ItemField, str: string): Promise<void> {\n const accudraw = IModelApp.accuDraw;\n await accudraw.processFieldInput(index, str, true);\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\n\n if (accudraw.getFieldLock(index))\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\n\n const vp = accudraw.currentView;\n if (accudraw.isActive) {\n if (!vp)\n return;\n\n if (CompassMode.Polar === accudraw.compassMode)\n accudraw.fixPointPolar(vp);\n else\n accudraw.fixPointRectangular(vp);\n\n accudraw.flags.dialogNeedsUpdate = true;\n return;\n }\n\n const is3d = vp ? vp.view.is3d() : false;\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\n switch (index) {\n case ItemField.DIST_Item:\n index = ItemField.ANGLE_Item;\n break;\n\n case ItemField.ANGLE_Item:\n index = (is3d ? ItemField.Z_Item : ItemField.DIST_Item);\n break;\n\n case ItemField.X_Item:\n index = ItemField.Y_Item;\n break;\n\n case ItemField.Y_Item:\n index = (is3d ? ItemField.Z_Item : ItemField.X_Item);\n break;\n\n case ItemField.Z_Item:\n index = (isPolar ? ItemField.DIST_Item : ItemField.X_Item);\n break;\n }\n accudraw.setFocusItem(index);\n }\n\n public static itemFieldLockToggle(index: ItemField): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.getFieldLock(index)) {\n switch (index) {\n case ItemField.DIST_Item:\n accudraw.distanceLock(true, false);\n break;\n\n case ItemField.ANGLE_Item:\n accudraw.angleLock();\n break;\n\n case ItemField.X_Item:\n accudraw.clearTentative();\n accudraw.locked |= LockedStates.X_BM;\n break;\n\n case ItemField.Y_Item:\n accudraw.clearTentative();\n accudraw.locked |= LockedStates.Y_BM;\n break;\n\n case ItemField.Z_Item:\n accudraw.clearTentative();\n break;\n }\n\n return;\n }\n\n switch (index) {\n case ItemField.DIST_Item:\n accudraw.locked &= ~LockedStates.DIST_BM;\n break;\n\n case ItemField.ANGLE_Item:\n accudraw.locked &= ~LockedStates.ANGLE_BM;\n break;\n\n case ItemField.X_Item:\n accudraw.locked &= ~LockedStates.X_BM;\n break;\n\n case ItemField.Y_Item:\n accudraw.locked &= ~LockedStates.Y_BM;\n break;\n\n case ItemField.Z_Item:\n break;\n }\n\n accudraw.dontMoveFocus = false;\n accudraw.clearTentative();\n }\n\n public static choosePreviousValue(index: ItemField): void {\n const accudraw = IModelApp.accuDraw;\n accudraw.getSavedValue(index, false);\n accudraw.refreshDecorationsAndDynamics();\n }\n\n public static chooseNextValue(index: ItemField): void {\n const accudraw = IModelApp.accuDraw;\n accudraw.getSavedValue(index, true);\n accudraw.refreshDecorationsAndDynamics();\n }\n\n public static clearSavedValues(): void {\n const accudraw = IModelApp.accuDraw;\n accudraw.clearSavedValues();\n }\n\n public static itemRotationModeChange(rotation: RotationMode): void {\n const accudraw = IModelApp.accuDraw;\n const vp = accudraw.currentView;\n const is3d = vp ? vp.view.is3d() : true;\n\n if (!is3d && (RotationMode.Front === rotation || RotationMode.Side === rotation))\n accudraw.setRotationMode(RotationMode.Top);\n\n accudraw.flags.baseRotation = rotation;\n accudraw.updateRotation(true);\n }\n\n // Shortcut implementations for GUI entry points...\n public static setOrigin(explicitOrigin?: Point3d): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (explicitOrigin) {\n accudraw.published.origin.setFrom(explicitOrigin);\n accudraw.flags.haveValidOrigin = true;\n } else if (accudraw.isInactive || accudraw.isDeactivated) {\n // If AccuSnap is active use adjusted snap point, otherwise use last data point...\n const snap = TentativeOrAccuSnap.getCurrentSnap(false);\n if (undefined !== snap) {\n accudraw.published.origin.setFrom(snap.isPointAdjusted ? snap.adjustedPoint : snap.getPoint());\n accudraw.flags.haveValidOrigin = true;\n } else {\n const ev = new BeButtonEvent();\n IModelApp.toolAdmin.fillEventFromLastDataButton(ev);\n\n if (ev.viewport) {\n accudraw.published.origin.setFrom(ev.point);\n accudraw.flags.haveValidOrigin = true;\n } else {\n // NOTE: If current point isn't valid setDefaultOrigin will be called...\n accudraw.published.origin.setFrom(accudraw.point);\n }\n }\n } else {\n accudraw.published.origin.setFrom(accudraw.point);\n accudraw.flags.haveValidOrigin = true;\n accudraw.setLastPoint(accudraw.published.origin);\n }\n\n accudraw.clearTentative();\n const vp = accudraw.currentView;\n\n // NOTE: _AdjustPoint should have been called to have setup currentView...\n if (vp && !vp.view.is3d())\n accudraw.published.origin.z = 0.0;\n\n accudraw.origin.setFrom(accudraw.published.origin);\n accudraw.point.setFrom(accudraw.published.origin);\n accudraw.planePt.setFrom(accudraw.published.origin);\n accudraw.published.flags |= AccuDrawFlags.SetOrigin;\n accudraw.activate();\n accudraw.refreshDecorationsAndDynamics(); // NOTE: Will already grab input focus through processHints...\n }\n\n public static changeCompassMode(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n let axisLockStatus = accudraw.locked & LockedStates.XY_BM;\n\n if (axisLockStatus) {\n if (CompassMode.Rectangular === accudraw.compassMode) {\n if (axisLockStatus & LockedStates.X_BM && accudraw.delta.x !== 0.0)\n axisLockStatus &= ~LockedStates.X_BM;\n\n if (axisLockStatus & LockedStates.Y_BM && accudraw.delta.y !== 0.0)\n axisLockStatus &= ~LockedStates.Y_BM;\n }\n }\n\n accudraw.changeCompassMode(true);\n if (axisLockStatus) {\n if (CompassMode.Rectangular === accudraw.compassMode) {\n accudraw.delta.x = accudraw.delta.y = 0.0;\n\n if (axisLockStatus & LockedStates.X_BM)\n accudraw.setFieldLock(ItemField.X_Item, true);\n else if (axisLockStatus & LockedStates.Y_BM)\n accudraw.setFieldLock(ItemField.Y_Item, true);\n } else {\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\n }\n accudraw.locked = axisLockStatus;\n }\n accudraw.flags.baseMode = accudraw.compassMode;\n this.requestInputFocus();\n }\n\n public static lockSmart(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const accuSnap = IModelApp.accuSnap;\n\n // Don't want AccuSnap to influence axis or Z...\n if (accuSnap.isHot) {\n accuSnap.clear();\n\n const vp = accudraw.currentView;\n if (vp) {\n if (CompassMode.Polar === accudraw.compassMode)\n accudraw.fixPointPolar(vp);\n else\n accudraw.fixPointRectangular(vp);\n }\n }\n\n if (CompassMode.Polar === accudraw.compassMode) {\n const isSnapped = accudraw.clearTentative();\n if (accudraw.locked & LockedStates.ANGLE_BM) { // angle locked (unlock it)\n accudraw.setFieldLock(ItemField.ANGLE_Item, false);\n accudraw.locked &= ~LockedStates.ANGLE_BM;\n } else if (accudraw.getFieldLock(ItemField.DIST_Item)) { // distance locked (unlock it)\n accudraw.setFieldLock(ItemField.DIST_Item, false);\n accudraw.locked &= ~LockedStates.DIST_BM;\n } else if (isSnapped) {\n accudraw.doLockAngle(isSnapped);\n } else if (accudraw.indexed & LockedStates.ANGLE_BM) { // angle indexed (lock it)\n accudraw.angleLock();\n } else {\n if (Math.abs(accudraw.vector.dotProduct(accudraw.axes.x)) > Math.abs(accudraw.vector.dotProduct(accudraw.axes.y)))\n accudraw.indexed |= LockedStates.Y_BM;\n else\n accudraw.indexed |= LockedStates.X_BM;\n accudraw.angleLock();\n }\n this.requestInputFocus();\n return;\n }\n\n if (accudraw.locked) { // if locked, unlock\n accudraw.clearTentative();\n accudraw.locked &= ~LockedStates.XY_BM;\n accudraw.setFieldLock(ItemField.X_Item, false);\n accudraw.setFieldLock(ItemField.Y_Item, false);\n if (accudraw.getFieldLock(ItemField.Z_Item) && accudraw.delta.z === 0.0 && !accudraw.stickyZLock)\n accudraw.setFieldLock(ItemField.Z_Item, false);\n } else { // lock to nearest axis\n if (accudraw.clearTentative()) {\n if (Math.abs(accudraw.delta.x) >= Geometry.smallAngleRadians && Math.abs(accudraw.delta.y) >= Geometry.smallAngleRadians) {\n accudraw.doLockAngle(false);\n return;\n }\n }\n\n const vp = accudraw.currentView;\n if (Math.abs(accudraw.delta.x) > Math.abs(accudraw.delta.y)) {\n accudraw.delta.y = 0.0;\n accudraw.onFieldValueChange(ItemField.Y_Item);\n accudraw.locked |= LockedStates.Y_BM;\n accudraw.locked &= ~LockedStates.X_BM;\n accudraw.setFieldLock(ItemField.X_Item, false);\n accudraw.setFieldLock(ItemField.Y_Item, true);\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\n } else {\n accudraw.delta.x = 0.0;\n accudraw.onFieldValueChange(ItemField.X_Item);\n accudraw.locked |= LockedStates.X_BM;\n accudraw.locked &= ~LockedStates.Y_BM;\n accudraw.setFieldLock(ItemField.Y_Item, false);\n accudraw.setFieldLock(ItemField.X_Item, true);\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\n }\n\n if (!accudraw.flags.lockedRotation) {\n accudraw.flags.lockedRotation = true;\n accudraw.flags.contextRotMode = ContextMode.Locked;\n accudraw.setRotationMode(RotationMode.Context);\n }\n }\n this.requestInputFocus();\n }\n\n /** Disable indexing when not currently indexed; if indexed, enable respective lock. */\n public static lockIndex(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.flags.indexLocked) {\n if (accudraw.locked)\n this.lockSmart();\n\n accudraw.flags.indexLocked = false;\n } else {\n if (CompassMode.Polar === accudraw.compassMode) {\n if (accudraw.indexed & LockedStates.XY_BM) {\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\n accudraw.angleLock();\n }\n\n if (accudraw.indexed & LockedStates.DIST_BM)\n this.lockDistance();\n } else {\n if (accudraw.indexed & LockedStates.X_BM) {\n this.lockX();\n\n if (accudraw.indexed & LockedStates.DIST_BM)\n this.lockY();\n }\n\n if (accudraw.indexed & LockedStates.Y_BM) {\n this.lockY();\n\n if (accudraw.indexed & LockedStates.DIST_BM)\n this.lockX();\n }\n\n if (accudraw.indexed & LockedStates.DIST_BM && !(accudraw.indexed & LockedStates.XY_BM)) {\n if (accudraw.locked & LockedStates.X_BM)\n this.lockY();\n else\n this.lockX();\n }\n }\n\n accudraw.flags.indexLocked = true;\n }\n\n this.requestInputFocus();\n }\n\n public static lockX(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n accudraw.clearTentative();\n\n if (CompassMode.Rectangular !== accudraw.compassMode) {\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n accudraw.fixPointRectangular(vp);\n accudraw.changeCompassMode(true);\n }\n\n if (accudraw.getFieldLock(ItemField.X_Item)) {\n accudraw.setFieldLock(ItemField.X_Item, false);\n accudraw.locked = accudraw.locked & ~LockedStates.X_BM;\n accudraw.setKeyinStatus(ItemField.X_Item, KeyinStatus.Dynamic);\n } else {\n accudraw.saveCoordinate(ItemField.X_Item, accudraw.delta.x);\n accudraw.setFieldLock(ItemField.X_Item, true);\n accudraw.locked = accudraw.locked | LockedStates.X_BM;\n }\n this.requestInputFocus();\n }\n\n public static lockY(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n accudraw.clearTentative();\n\n if (CompassMode.Rectangular !== accudraw.compassMode) {\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n accudraw.fixPointRectangular(vp);\n accudraw.changeCompassMode(true);\n }\n\n if (accudraw.getFieldLock(ItemField.Y_Item)) {\n accudraw.setFieldLock(ItemField.Y_Item, false);\n accudraw.locked = accudraw.locked & ~LockedStates.Y_BM;\n accudraw.setKeyinStatus(ItemField.Y_Item, KeyinStatus.Dynamic);\n } else {\n accudraw.saveCoordinate(ItemField.Y_Item, accudraw.delta.y);\n accudraw.setFieldLock(ItemField.Y_Item, true);\n accudraw.locked = accudraw.locked | LockedStates.Y_BM;\n }\n this.requestInputFocus();\n }\n\n public static lockZ(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const vp = accudraw.currentView;\n if (!vp || !vp.view.is3d())\n return;\n\n const isSnapped = accudraw.clearTentative();\n\n if (accudraw.getFieldLock(ItemField.Z_Item)) {\n accudraw.setFieldLock(ItemField.Z_Item, false);\n accudraw.setKeyinStatus(ItemField.Z_Item, KeyinStatus.Dynamic);\n } else {\n // Move focus to Z field...\n if (!isSnapped && accudraw.autoFocusFields) {\n accudraw.setFocusItem(ItemField.Z_Item);\n accudraw.dontMoveFocus = true;\n }\n accudraw.setFieldLock(ItemField.Z_Item, true);\n }\n this.requestInputFocus();\n }\n\n public static lockDistance(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const isSnapped = accudraw.clearTentative();\n\n if (CompassMode.Polar !== accudraw.compassMode) {\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n accudraw.locked = 0;\n accudraw.fixPointPolar(vp);\n accudraw.changeCompassMode(true);\n }\n\n if (accudraw.getFieldLock(ItemField.DIST_Item)) {\n accudraw.setFieldLock(ItemField.DIST_Item, false);\n accudraw.locked &= ~LockedStates.DIST_BM;\n accudraw.setKeyinStatus(ItemField.DIST_Item, KeyinStatus.Dynamic);\n } else {\n // Move focus to distance field...\n if (!isSnapped && accudraw.autoFocusFields)\n accudraw.setFocusItem(ItemField.DIST_Item);\n accudraw.distanceLock(true, true);\n }\n this.requestInputFocus();\n }\n\n public static lockAngle(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n accudraw.doLockAngle(accudraw.clearTentative());\n this.requestInputFocus();\n }\n\n public static setStandardRotation(rotation: RotationMode): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (RotationMode.Context === rotation) {\n const axes = accudraw.baseAxes.clone();\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\n accudraw.setContextRotation(axes.toMatrix3d(), false, true);\n this.requestInputFocus();\n return;\n } else {\n accudraw.flags.baseRotation = rotation;\n accudraw.setRotationMode(rotation);\n }\n accudraw.updateRotation(true);\n this.requestInputFocus();\n }\n\n public static alignView(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n const newMatrix = accudraw.getRotation();\n if (newMatrix.isExactEqual(vp.rotation))\n return;\n\n const targetMatrix = newMatrix.multiplyMatrixMatrix(vp.rotation);\n const rotateTransform = Transform.createFixedPointAndMatrix(vp.view.getTargetPoint(), targetMatrix);\n const newFrustum = vp.getFrustum();\n newFrustum.multiply(rotateTransform);\n\n vp.view.setupFromFrustum(newFrustum);\n vp.synchWithView();\n vp.animateFrustumChange();\n\n this.requestInputFocus();\n }\n\n public static rotateToBase(): void { this.setStandardRotation(IModelApp.accuDraw.flags.baseRotation); }\n\n public static rotateToACS(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n // NOTE: Match current ACS orientation..reset auxRotationPlane to top!\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n this.setStandardRotation(RotationMode.ACS);\n }\n\n public static rotateCycle(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const vp = accudraw.currentView;\n if (!vp || !vp.view.is3d())\n return;\n\n let rotation: RotationMode;\n switch (accudraw.rotationMode) {\n case RotationMode.View:\n case RotationMode.Side:\n rotation = RotationMode.Top;\n break;\n\n case RotationMode.Top:\n rotation = RotationMode.Front;\n break;\n\n case RotationMode.Front:\n rotation = RotationMode.Side;\n break;\n\n case RotationMode.Context:\n rotation = RotationMode.Context;\n\n if (rotation !== accudraw.flags.baseRotation) {\n accudraw.baseAxes.setFrom(accudraw.axes);\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n accudraw.flags.baseRotation = rotation;\n } else {\n const axes = accudraw.baseAxes.clone();\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\n if (!accudraw.axes.equals(axes))\n accudraw.changeBaseRotationMode(rotation);\n }\n\n switch (accudraw.flags.auxRotationPlane) {\n case RotationMode.Front:\n accudraw.flags.auxRotationPlane = RotationMode.Side;\n break;\n\n case RotationMode.Side:\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n break;\n\n case RotationMode.Top:\n accudraw.flags.auxRotationPlane = RotationMode.Front;\n break;\n }\n break;\n\n case RotationMode.ACS:\n rotation = RotationMode.ACS;\n switch (accudraw.flags.auxRotationPlane) {\n case RotationMode.Front:\n accudraw.flags.auxRotationPlane = RotationMode.Side;\n break;\n case RotationMode.Side:\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n break;\n case RotationMode.Top:\n accudraw.flags.auxRotationPlane = RotationMode.Front;\n break;\n }\n break;\n\n default:\n return;\n }\n\n this.setStandardRotation(rotation);\n }\n\n public static rotate90(axis: number): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const newRotation = new ThreeAxes();\n\n accudraw.locked = accudraw.indexed = 0;\n accudraw.unlockAllFields();\n\n switch (axis) {\n case 0:\n newRotation.x.setFrom(accudraw.axes.x);\n newRotation.z.setFrom(accudraw.axes.y);\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\n break;\n\n case 1:\n newRotation.x.setFrom(accudraw.axes.z);\n newRotation.y.setFrom(accudraw.axes.y);\n newRotation.x.crossProduct(newRotation.y, newRotation.z);\n break;\n\n case 2:\n newRotation.x.setFrom(accudraw.axes.y);\n newRotation.z.setFrom(accudraw.axes.z);\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\n break;\n }\n\n accudraw.setContextRotation(newRotation.toMatrix3d(), true, true);\n this.requestInputFocus();\n }\n\n public static async rotateAxes(aboutCurrentZ: boolean) {\n return IModelApp.tools.run(\"AccuDraw.RotateAxes\", aboutCurrentZ);\n }\n\n public static async rotateToElement() {\n return IModelApp.tools.run(\"AccuDraw.RotateElement\");\n }\n\n public static async rotatePerpendicular() {\n return IModelApp.tools.run(\"AccuDraw.RotatePerpendicular\");\n }\n\n public static async defineACSByElement() {\n return IModelApp.tools.run(\"AccuDraw.DefineACSByElement\");\n }\n\n public static async defineACSByPoints() {\n return IModelApp.tools.run(\"AccuDraw.DefineACSByPoints\");\n }\n\n public static getACS(acsName: string | undefined, useOrigin: boolean, useRotation: boolean): BentleyStatus {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return BentleyStatus.ERROR;\n\n const vp = accudraw.currentView;\n if (!vp)\n return BentleyStatus.ERROR;\n\n let currRotation = 0, currBaseRotation = 0;\n const axes = new ThreeAxes();\n\n if (!useRotation) {\n // Save current rotation, event listener on ACS change will orient AccuDraw to ACS...\n currRotation = accudraw.rotationMode;\n currBaseRotation = accudraw.flags.baseRotation;\n axes.setFrom(accudraw.axes);\n }\n\n if (acsName && \"\" !== acsName) {\n // // See if this ACS already exists...\n // DgnCode acsCode = AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), acsName);\n // DgnElementId acsId = vp -> GetViewController().GetDgnDb().Elements().QueryElementIdByCode(acsCode);\n\n // if (!acsId.IsValid())\n // return ERROR;\n\n // AuxCoordSystemCPtr auxElm = vp -> GetViewController().GetDgnDb().Elements().Get<AuxCoordSystem>(acsId);\n\n // if (!auxElm.IsValid())\n // return ERROR;\n\n // AuxCoordSystemPtr acsPtr = auxElm -> MakeCopy<AuxCoordSystem>();\n\n // if (!acsPtr.IsValid())\n // return ERROR;\n\n // AuxCoordSystemCR oldACS = vp -> GetViewController().GetAuxCoordinateSystem();\n\n // if (!useOrigin)\n // acsPtr -> SetOrigin(oldACS.GetOrigin());\n\n // if (!useRotation)\n // acsPtr -> SetRotation(oldACS.GetRotation());\n\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\n }\n\n const currentACS = vp.view.auxiliaryCoordinateSystem;\n\n if (useOrigin) {\n accudraw.origin.setFrom(currentACS.getOrigin());\n accudraw.point.setFrom(accudraw.origin);\n accudraw.planePt.setFrom(accudraw.origin);\n }\n\n if (useRotation) {\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n this.setStandardRotation(RotationMode.ACS);\n } else {\n this.itemFieldUnlockAll();\n\n accudraw.setRotationMode(currRotation);\n accudraw.flags.baseRotation = currBaseRotation;\n accudraw.axes.setFrom(axes);\n\n if (RotationMode.ACS === accudraw.flags.baseRotation) {\n const acs = currentACS.clone();\n\n const rMatrix = accudraw.getRotation();\n acs.setRotation(rMatrix);\n\n AccuDraw.updateAuxCoordinateSystem(acs, vp);\n }\n\n accudraw.published.flags &= ~AccuDrawFlags.OrientACS;\n }\n\n return BentleyStatus.SUCCESS;\n }\n\n public static writeACS(_acsName: string): BentleyStatus {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return BentleyStatus.ERROR;\n\n const vp = accudraw.currentView;\n if (!vp)\n return BentleyStatus.ERROR;\n\n // const origin = accudraw.origin;\n // const rMatrix = accudraw.getRotation();\n // AuxCoordSystemPtr acsPtr = AuxCoordSystem:: CreateFrom(vp -> GetViewController().GetAuxCoordinateSystem());\n // acsPtr -> SetOrigin(origin);\n // acsPtr -> SetRotation(rMatrix);\n // acsPtr -> SetType(CompassMode.Polar == accudraw.getCompassMode() ? ACSType :: Cylindrical : ACSType:: Rectangular);\n // acsPtr -> SetCode(AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), nullptr != acsName ? acsName : \"\"));\n // acsPtr -> SetDescription(\"\");\n\n // if (acsName && '\\0' != acsName[0]) {\n // DgnDbStatus status;\n // acsPtr -> Insert(& status);\n\n // if (DgnDbStatus:: Success != status)\n // return BentleyStatus.ERROR;\n // }\n\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\n\n // accudraw.flags.baseRotation = RotationMode.ACS;\n // accudraw.SetRotationMode(RotationMode.ACS);\n\n return BentleyStatus.SUCCESS;\n }\n\n public static itemFieldUnlockAll(): void {\n const accudraw = IModelApp.accuDraw;\n if (accudraw.isEnabled)\n accudraw.unlockAllFields();\n }\n}\n\n/** @beta */\nexport class AccuDrawSessionToggleTool extends Tool {\n public static override toolId = \"AccuDraw.SessionToggle\";\n public override async run() {\n AccuDrawShortcuts.sessionToggle();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSuspendToggleTool extends Tool {\n public static override toolId = \"AccuDraw.SuspendToggle\";\n public override async run() {\n AccuDrawShortcuts.suspendToggle();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetOriginTool extends Tool {\n public static override toolId = \"AccuDraw.SetOrigin\";\n public override async run() {\n AccuDrawShortcuts.setOrigin();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockSmartTool extends Tool {\n public static override toolId = \"AccuDraw.LockSmart\";\n public override async run() {\n AccuDrawShortcuts.lockSmart();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockIndexTool extends Tool {\n public static override toolId = \"AccuDraw.LockIndex\";\n public override async run() {\n AccuDrawShortcuts.lockIndex();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockXTool extends Tool {\n public static override toolId = \"AccuDraw.LockX\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockX();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockYTool extends Tool {\n public static override toolId = \"AccuDraw.LockY\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockY();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockZTool extends Tool {\n public static override toolId = \"AccuDraw.LockZ\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockZ();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockDistanceTool extends Tool {\n public static override toolId = \"AccuDraw.LockDistance\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockDistance();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockAngleTool extends Tool {\n public static override toolId = \"AccuDraw.LockAngle\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockAngle();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawChangeModeTool extends Tool {\n public static override toolId = \"AccuDraw.ChangeMode\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.changeCompassMode();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateCycleTool extends Tool {\n public static override toolId = \"AccuDraw.RotateCycle\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotateCycle();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateTopTool extends Tool {\n public static override toolId = \"AccuDraw.RotateTop\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.Top);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateFrontTool extends Tool {\n public static override toolId = \"AccuDraw.RotateFront\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.Front);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateSideTool extends Tool {\n public static override toolId = \"AccuDraw.RotateSide\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.Side);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateViewTool extends Tool {\n public static override toolId = \"AccuDraw.RotateView\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.View);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotate90AboutXTool extends Tool {\n public static override toolId = \"AccuDraw.Rotate90AboutX\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotate90(0);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotate90AboutYTool extends Tool {\n public static override toolId = \"AccuDraw.Rotate90AboutY\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotate90(1);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotate90AboutZTool extends Tool {\n public static override toolId = \"AccuDraw.Rotate90AboutZ\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotate90(2);\n return true;\n }\n}\n\n/** @internal */\nabstract class AccuDrawShortcutsTool extends InputCollector {\n private _complete = false;\n protected get allowShortcut(): boolean { return this.wantActivateOnStart ? IModelApp.accuDraw.isEnabled : true; }\n protected get wantActivateOnStart(): boolean { return false; } // Whether to automatically enable AccuDraw before the 1st data button...\n protected get wantClearSnapOnStart(): boolean { return false; } // Whether to preserve active Tentative/AccuSnap on install...\n protected get wantManipulationImmediate(): boolean { return false; } // Whether additional input is required to process on install...\n protected get wantExitOnDataButtonUp(): boolean { return false; } // Whether to exit on button up instead of down (see rotate perpendicular)...\n\n public override async onInstall(): Promise<boolean> {\n if (!this.allowShortcut)\n return false;\n return super.onInstall();\n }\n\n public override async onPostInstall(): Promise<void> {\n await super.onPostInstall();\n\n if (this.wantActivateOnStart)\n IModelApp.accuDraw.activate();\n\n this.onManipulationStart();\n\n if (this.wantManipulationImmediate && this.doManipulation(undefined, false)) {\n this._complete = true;\n return this.exitTool();\n }\n\n // NOTE: InputCollector inherits suspended primitive's state, set everything...\n if (this.wantClearSnapOnStart) {\n this.initLocateElements(false, true, undefined, CoordinateLockOverrides.None); // This clears the active Tentative/AccuSnap, some shortcuts have special behavior when invoked with an active snap...\n } else {\n IModelApp.locateManager.initLocateOptions();\n this.changeLocateState(false, true, undefined, CoordinateLockOverrides.None);\n }\n\n this.doManipulation(undefined, true);;\n }\n\n public override async onCleanup(): Promise<void> {\n if (this._complete)\n IModelApp.accuDraw.savedStateInputCollector.ignoreFlags = this.onManipulationComplete();\n }\n\n public override async exitTool(): Promise<void> {\n await super.exitTool();\n AccuDrawShortcuts.requestInputFocus(); // re-grab focus when auto-focus tool setting set...\n }\n\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\n if (this.doManipulation(ev, false)) {\n this._complete = true;\n if (!this.wantExitOnDataButtonUp)\n await this.exitTool();\n }\n\n return EventHandled.No;\n }\n\n public override async onDataButtonUp(_ev: BeButtonEvent): Promise<EventHandled> {\n if (this._complete && this.wantExitOnDataButtonUp)\n await this.exitTool();\n\n return EventHandled.No;\n }\n\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\n this.doManipulation(ev, true);\n }\n\n protected onManipulationStart(): void { }\n protected onManipulationComplete(): AccuDrawFlags { return AccuDrawFlags.SetRMatrix; }\n protected abstract doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;\n}\n\n/** @beta */\nexport class AccuDrawRotateAxesTool extends AccuDrawShortcutsTool {\n public static override toolId = \"AccuDraw.RotateAxes\";\n public static override get maxArgs(): number { return 1; }\n public constructor(public aboutCurrentZ: boolean = true) { super(); }\n\n /** @internal */\n protected override get allowShortcut(): boolean { return IModelApp.accuDraw.isActive; } // Require compass to already be active for this shortcut...\n\n /** @internal */\n protected override get wantActivateOnStart(): boolean { return true; } // State is demoted to inactive when a tool install, still need this...\n\n /** @internal */\n protected override get wantManipulationImmediate(): boolean {\n if (TentativeOrAccuSnap.isHot)\n return true;\n\n const accudraw = IModelApp.accuDraw;\n\n if (CompassMode.Polar === accudraw.compassMode)\n return accudraw.getFieldLock(ItemField.ANGLE_Item);\n\n return accudraw.getFieldLock(ItemField.X_Item) && accudraw.getFieldLock(ItemField.Y_Item);\n }\n\n /** @internal */\n protected override onManipulationStart(): void {\n if (this.aboutCurrentZ)\n IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Establish current orientation as base for when defining compass rotation by x axis...\n CoreTools.outputPromptByKey(\"AccuDraw.RotateAxes.Prompts.FirstPoint\");\n }\n\n /** @internal */\n protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;\n if (!vp)\n return false;\n if (!AccuDrawShortcuts.rotateAxesByPoint(TentativeOrAccuSnap.isHot, this.aboutCurrentZ))\n return false;\n vp.invalidateDecorations();\n if (!isMotion) {\n AccuDrawShortcuts.itemFieldUnlockAll();\n IModelApp.tentativePoint.clear(true);\n }\n return true;\n }\n\n public override async parseAndRun(...args: any[]): Promise<boolean> {\n for (const arg of args) {\n if (arg.toLowerCase() === \"unlockedz\")\n this.aboutCurrentZ = false;\n }\n return this.run(args);\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateElementTool extends AccuDrawShortcutsTool {\n public static override toolId = \"AccuDraw.RotateElement\";\n private _moveOrigin = !IModelApp.accuDraw.isActive || IModelApp.tentativePoint.isActive; // Preserve current origin if AccuDraw already active and not tentative snap...\n\n /** @internal */\n protected override get wantActivateOnStart(): boolean { return true; }\n\n /** @internal */\n protected override get wantManipulationImmediate(): boolean { return IModelApp.tentativePoint.isSnapped; }\n\n /** @internal */\n protected override onManipulationStart(): void {\n IModelApp.accuDraw.setContext(AccuDrawFlags.FixedOrigin); // Don't move compass when updateOrientation returns false...\n CoreTools.outputPromptByKey(\"AccuDraw.RotateElement.Prompts.FirstPoint\");\n }\n\n /** @internal */\n protected override onManipulationComplete(): AccuDrawFlags {\n let ignoreFlags = AccuDrawFlags.SetRMatrix | AccuDrawFlags.Disable; // If AccuDraw wasn't active when the shortcut started, let it remain active for suspended tool when shortcut completes...\n if (this._moveOrigin)\n ignoreFlags |= AccuDrawFlags.SetOrigin;\n return ignoreFlags;\n }\n\n /** @internal */\n protected updateOrientation(snap: SnapDetail, viewport: ScreenViewport, _isMotion: boolean): boolean {\n const accudraw = IModelApp.accuDraw;\n const rMatrix = AccuDraw.getSnapRotation(snap, viewport);\n if (undefined === rMatrix)\n return false;\n\n const point = this._moveOrigin ? snap.snapPoint : accudraw.origin;\n accudraw.setContext(AccuDrawFlags.SetRMatrix | AccuDrawFlags.AlwaysSetOrigin, point, rMatrix);\n return true;\n }\n\n /** @internal */\n protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n const viewport = ev ? ev.viewport : IModelApp.accuDraw.currentView;\n if (!viewport)\n return false;\n\n const snap = TentativeOrAccuSnap.getCurrentSnap(false);\n if (undefined === snap || !this.updateOrientation(snap, viewport, isMotion))\n return false;\n\n if (undefined === ev)\n AccuDrawShortcuts.processPendingHints(); // Would normally be processed after button down, necessary when called from post install...\n if (!isMotion)\n IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Hold temporary rotation for tool duration...\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotatePerpendicularTool extends AccuDrawRotateElementTool {\n public static override toolId = \"AccuDraw.RotatePerpendicular\";\n private _location?: { point: Point3d, viewport: ScreenViewport };\n\n /** @internal */\n protected override get wantExitOnDataButtonUp(): boolean { return true; } // Complete on button up since button down clears tentative...\n\n /** @internal */\n protected override onManipulationComplete(): AccuDrawFlags {\n if (undefined !== this._location) {\n // Use tentative to hold adjusted snap location for suspended tool...\n IModelApp.tentativePoint.setPoint(this._location.point);\n IModelApp.tentativePoint.viewport = this._location.viewport;\n IModelApp.tentativePoint.showTentative();\n }\n\n return AccuDrawFlags.SetRMatrix | AccuDrawFlags.Disable;\n }\n\n /** @internal */\n protected override updateOrientation(snap: SnapDetail, viewport: ScreenViewport, isMotion: boolean): boolean {\n const curve = snap.getCurvePrimitive();\n if (undefined === curve)\n return false;\n\n const accudraw = IModelApp.accuDraw;\n const rMatrix = AccuDraw.getSnapRotation(snap, viewport);\n if (undefined === rMatrix)\n return false;\n\n const zVec = rMatrix.getRow(2); // This is a row matrix...\n const spacePoint = AccuDrawHintBuilder.projectPointToPlaneInView(accudraw.origin, snap.getPoint(), zVec, viewport, true);\n if (undefined === spacePoint)\n return false;\n\n const detail = curve.closestPoint(spacePoint, true);\n if (undefined === detail?.curve)\n return false;\n\n const point = AccuDrawHintBuilder.projectPointToPlaneInView(detail.point, accudraw.origin, zVec, viewport, true);\n if (undefined === point)\n return false;\n\n const xVec = new Vector3d();\n if (normalizedDifference(point, accudraw.origin, xVec) < Geometry.smallAngleRadians)\n return false;; // Closest point and compass origin coincide...\n\n const yVec = xVec.unitCrossProduct(zVec);\n if (undefined === yVec)\n return false;\n\n rMatrix.setColumns(xVec, yVec, zVec);\n Matrix3d.createRigidFromMatrix3d(rMatrix, AxisOrder.XZY, rMatrix);\n rMatrix.transposeInPlace();\n\n snap.setSnapPoint(point, SnapHeat.InRange); // Force hot snap so that adjust point uses it for alignments...\n accudraw.setContext(AccuDrawFlags.SetRMatrix | AccuDrawFlags.AlwaysSetOrigin, accudraw.origin, rMatrix);\n accudraw.adjustPoint(point, viewport, false); // Update internals for new snap location...\n\n if (!isMotion)\n this._location = { point, viewport };\n\n return true;\n }\n}\n\n/** @beta */\nexport class DefineACSByElementTool extends AccuDrawShortcutsTool {\n public static override toolId = \"AccuDraw.DefineACSByElement\";\n private _origin = Point3d.create();\n private _rMatrix = Matrix3d.createIdentity();\n private _acs?: AuxCoordSystemState;\n\n /** @internal */\n protected override onManipulationStart(): void { CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByElement.Prompts.FirstPoint\"); }\n\n /** @internal */\n protected updateOrientation(snap: SnapDetail, vp: Viewport): boolean {\n const rMatrix = AccuDraw.getSnapRotation(snap, vp);\n if (undefined === rMatrix)\n return false;\n this._origin = snap.snapPoint;\n this._rMatrix = rMatrix;\n return true;\n }\n\n /** @internal */\n protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n const vp = ev ? ev.viewport : undefined;\n if (!vp)\n return false;\n\n const snapDetail = TentativeOrAccuSnap.getCurrentSnap(false);\n if (undefined === snapDetail || !this.updateOrientation(snapDetail, vp))\n return false;\n\n IModelApp.viewManager.invalidateDecorationsAllViews();\n if (isMotion)\n return true;\n\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n\n this._acs.setOrigin(this._origin);\n this._acs.setRotation(this._rMatrix);\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\n AccuDrawShortcuts.rotateToACS();\n return true;\n }\n\n /** @internal */\n public override decorate(context: DecorateContext): void {\n const vp = context.viewport;\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n this._acs.setOrigin(this._origin);\n this._acs.setRotation(this._rMatrix);\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\n }\n}\n\n/** @beta */\nexport class DefineACSByPointsTool extends AccuDrawShortcutsTool {\n public static override toolId = \"AccuDraw.DefineACSByPoints\";\n private readonly _points: Point3d[] = [];\n private _acs?: AuxCoordSystemState;\n\n /** @internal */\n protected override onManipulationStart(): void {\n if (!IModelApp.tentativePoint.isActive) {\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.FirstPoint\");\n return;\n }\n\n const origin = IModelApp.tentativePoint.getPoint().clone();\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.SecondPoint\");\n IModelApp.accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.FixedOrigin, origin);\n this._points.push(origin);\n IModelApp.tentativePoint.clear(true);\n }\n\n /** @internal */\n protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n if (!ev || !ev.viewport)\n return false;\n\n IModelApp.viewManager.invalidateDecorationsAllViews();\n if (isMotion)\n return false;\n\n IModelApp.accuDraw.activate();\n this._points.push(ev.point.clone());\n\n const vp = ev.viewport;\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n\n if (AccuDrawShortcuts.updateACSByPoints(this._acs, vp, this._points, false)) {\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\n AccuDrawShortcuts.rotateToACS();\n return true;\n }\n\n CoreTools.outputPromptByKey(`AccuDraw.DefineACSByPoints.Prompts${1 === this._points.length ? \".SecondPoint\" : \".NextPoint\"}`);\n return false;\n }\n\n /** @internal */\n public override decorate(context: DecorateContext): void {\n const tmpPoints: Point3d[] = [];\n this._points.forEach((pt) => tmpPoints.push(pt));\n\n const ev = new BeButtonEvent();\n IModelApp.toolAdmin.fillEventFromCursorLocation(ev);\n tmpPoints.push(ev.point);\n\n const vp = context.viewport;\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n\n AccuDrawShortcuts.updateACSByPoints(this._acs, vp, tmpPoints, true);\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AccuDrawTool.js","sourceRoot":"","sources":["../../../src/tools/AccuDrawTool.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { BentleyStatus } from \"@itwin/core-bentley\";\nimport { Geometry, Matrix3d, Point3d, Transform, Vector3d } from \"@itwin/core-geometry\";\nimport { AccuDraw, AccuDrawFlags, CompassMode, ContextMode, ItemField, KeyinStatus, LockedStates, RotationMode, ThreeAxes } from \"../AccuDraw\";\nimport { TentativeOrAccuSnap } from \"../AccuSnap\";\nimport { ACSDisplayOptions, AuxCoordSystemState } from \"../AuxCoordSys\";\nimport { SnapDetail } from \"../HitDetail\";\nimport { IModelApp } from \"../IModelApp\";\nimport { DecorateContext } from \"../ViewContext\";\nimport { ScreenViewport, Viewport } from \"../Viewport\";\nimport { BeButtonEvent, CoordinateLockOverrides, CoreTools, EventHandled, InputCollector, Tool } from \"./Tool\";\n\n// cSpell:ignore dont unlockedz\n\nfunction normalizedDifference(point1: Point3d, point2: Point3d, out: Vector3d): number {\n return point2.vectorTo(point1).normalizeWithLength(out).mag;\n}\n\nfunction normalizedCrossProduct(vec1: Vector3d, vec2: Vector3d, out: Vector3d): number {\n return vec1.crossProduct(vec2, out).normalizeWithLength(out).mag;\n}\n\n/**\n * A shortcut may require no user input (immediate) or it may install a tool to collect the needed input. AccuDrawShortcuts are how users control AccuDraw.\n * A tool implementor should not use this class to setup AccuDraw, instead use AccuDrawHintBuilder to provide hints.\n * @beta\n */\nexport class AccuDrawShortcuts {\n /** Disable/Enable AccuDraw for the session */\n public static sessionToggle(): void {\n const accudraw = IModelApp.accuDraw;\n\n if (accudraw.isEnabled)\n accudraw.disableForSession();\n else\n accudraw.enableForSession();\n }\n\n /** Suspend/Unsuspend AccuDraw for the active tool */\n public static suspendToggle(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.isActive)\n accudraw.deactivate();\n else\n accudraw.activate();\n\n accudraw.refreshDecorationsAndDynamics();\n }\n\n public static rotateAxesByPoint(isSnapped: boolean, aboutCurrentZ: boolean): boolean {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return false;\n\n const vp = accudraw.currentView;\n if (!vp)\n return false;\n\n const point = accudraw.point;\n if (!vp.view.is3d())\n point.z = 0.0;\n\n if (aboutCurrentZ)\n accudraw.hardConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\n else\n accudraw.softConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\n\n // Snap point and compass origin coincide...\n const xVec = new Vector3d();\n if (normalizedDifference(point, accudraw.planePt, xVec) < Geometry.smallAngleRadians)\n return false;\n\n accudraw.axes.x.setFrom(xVec);\n\n if (RotationMode.Context !== accudraw.rotationMode)\n accudraw.setRotationMode(RotationMode.Context);\n\n accudraw.flags.contextRotMode = ContextMode.XAxis;\n accudraw.flags.lockedRotation = false;\n\n accudraw.updateRotation();\n\n // Always want index line to display for x-Axis...changing rotation clears this...so it flashes...\n accudraw.indexed |= LockedStates.X_BM;\n return true;\n }\n\n public static updateACSByPoints(acs: AuxCoordSystemState, vp: Viewport, points: Point3d[], isDynamics: boolean): boolean {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return false;\n\n let accept = false;\n const vec = [new Vector3d(), new Vector3d(), new Vector3d()];\n acs.setOrigin(points[0]);\n switch (points.length) {\n case 1:\n acs.setRotation(vp.rotation);\n if (!isDynamics) {\n accudraw.published.origin.setFrom(points[0]);\n accudraw.published.flags = AccuDrawFlags.SetOrigin;\n accudraw.flags.fixedOrg = true;\n }\n break;\n\n case 2:\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001) {\n accept = true;\n break;\n }\n\n if (vp.view.is3d()) {\n if (normalizedCrossProduct(accudraw.axes.y, vec[0], vec[1]) < 0.00001) {\n vec[2].set(0.0, 0.0, 1.0);\n\n if (normalizedCrossProduct(vec[2], vec[0], vec[1]) < 0.00001) {\n vec[2].set(0.0, 1.0, 0.0);\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\n }\n }\n\n normalizedCrossProduct(vec[0], vec[1], vec[2]);\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\n\n if (!isDynamics) {\n accudraw.published.origin.setFrom(points[0]);\n accudraw.published.flags = AccuDrawFlags.SetOrigin | AccuDrawFlags.SetNormal;\n accudraw.published.vector.setFrom(vec[0]);\n }\n break;\n }\n\n vec[2].set(0.0, 0.0, 1.0);\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\n accept = true;\n break;\n\n case 3:\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001 ||\n normalizedDifference(points[2], points[0], vec[1]) < 0.00001 ||\n normalizedCrossProduct(vec[0], vec[1], vec[2]) < 0.00001) {\n accept = true;\n break;\n }\n\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\n accept = true;\n break;\n }\n\n return accept;\n }\n\n public static processPendingHints() { IModelApp.accuDraw.processHints(); }\n\n public static requestInputFocus() {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n accudraw.grabInputFocus();\n accudraw.refreshDecorationsAndDynamics();\n }\n\n // Helper method for GUI implementation...\n public static async itemFieldNavigate(index: ItemField, str: string, forward: boolean): Promise<void> {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.getFieldLock(index))\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\n\n if (!accudraw.isActive && KeyinStatus.Partial === accudraw.getKeyinStatus(index)) {\n await accudraw.processFieldInput(index, str, true);\n } else {\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\n accudraw.onFieldValueChange(index);\n }\n\n const vp = accudraw.currentView;\n const is3d = vp ? accudraw.is3dCompass(vp) : false;\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\n switch (index) {\n case ItemField.DIST_Item:\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.ANGLE_Item);\n break;\n\n case ItemField.ANGLE_Item:\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.DIST_Item);\n break;\n\n case ItemField.X_Item:\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.Y_Item);\n break;\n\n case ItemField.Y_Item:\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.X_Item);\n break;\n\n case ItemField.Z_Item:\n index = (forward ? (isPolar ? ItemField.DIST_Item : ItemField.X_Item) : (isPolar ? ItemField.ANGLE_Item : ItemField.Y_Item));\n break;\n }\n\n // Set focus to new item and disable automatic focus change based on cursor location in rectangular mode.\n accudraw.setFocusItem(index);\n accudraw.dontMoveFocus = true;\n }\n\n public static itemFieldNewInput(index: ItemField): void { IModelApp.accuDraw.setKeyinStatus(index, KeyinStatus.Partial); }\n public static itemFieldCompletedInput(index: ItemField): void { IModelApp.accuDraw.setKeyinStatus(index, KeyinStatus.Dynamic); }\n\n public static async itemFieldAcceptInput(index: ItemField, str: string): Promise<void> {\n const accudraw = IModelApp.accuDraw;\n await accudraw.processFieldInput(index, str, true);\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\n\n if (accudraw.getFieldLock(index))\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\n\n const vp = accudraw.currentView;\n if (accudraw.isActive) {\n if (!vp)\n return;\n\n if (CompassMode.Polar === accudraw.compassMode)\n accudraw.fixPointPolar(vp);\n else\n accudraw.fixPointRectangular(vp);\n\n accudraw.flags.dialogNeedsUpdate = true;\n return;\n }\n\n const is3d = vp ? vp.view.is3d() : false;\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\n switch (index) {\n case ItemField.DIST_Item:\n index = ItemField.ANGLE_Item;\n break;\n\n case ItemField.ANGLE_Item:\n index = (is3d ? ItemField.Z_Item : ItemField.DIST_Item);\n break;\n\n case ItemField.X_Item:\n index = ItemField.Y_Item;\n break;\n\n case ItemField.Y_Item:\n index = (is3d ? ItemField.Z_Item : ItemField.X_Item);\n break;\n\n case ItemField.Z_Item:\n index = (isPolar ? ItemField.DIST_Item : ItemField.X_Item);\n break;\n }\n accudraw.setFocusItem(index);\n }\n\n public static itemFieldLockToggle(index: ItemField): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.getFieldLock(index)) {\n switch (index) {\n case ItemField.DIST_Item:\n accudraw.distanceLock(true, false);\n break;\n\n case ItemField.ANGLE_Item:\n accudraw.angleLock();\n break;\n\n case ItemField.X_Item:\n accudraw.clearTentative();\n accudraw.locked |= LockedStates.X_BM;\n break;\n\n case ItemField.Y_Item:\n accudraw.clearTentative();\n accudraw.locked |= LockedStates.Y_BM;\n break;\n\n case ItemField.Z_Item:\n accudraw.clearTentative();\n break;\n }\n\n return;\n }\n\n switch (index) {\n case ItemField.DIST_Item:\n accudraw.locked &= ~LockedStates.DIST_BM;\n break;\n\n case ItemField.ANGLE_Item:\n accudraw.locked &= ~LockedStates.ANGLE_BM;\n break;\n\n case ItemField.X_Item:\n accudraw.locked &= ~LockedStates.X_BM;\n break;\n\n case ItemField.Y_Item:\n accudraw.locked &= ~LockedStates.Y_BM;\n break;\n\n case ItemField.Z_Item:\n break;\n }\n\n accudraw.dontMoveFocus = false;\n accudraw.clearTentative();\n }\n\n public static choosePreviousValue(index: ItemField): void {\n const accudraw = IModelApp.accuDraw;\n accudraw.getSavedValue(index, false);\n accudraw.refreshDecorationsAndDynamics();\n }\n\n public static chooseNextValue(index: ItemField): void {\n const accudraw = IModelApp.accuDraw;\n accudraw.getSavedValue(index, true);\n accudraw.refreshDecorationsAndDynamics();\n }\n\n public static clearSavedValues(): void {\n const accudraw = IModelApp.accuDraw;\n accudraw.clearSavedValues();\n }\n\n public static itemRotationModeChange(rotation: RotationMode): void {\n const accudraw = IModelApp.accuDraw;\n const vp = accudraw.currentView;\n const is3d = vp ? vp.view.is3d() : true;\n\n if (!is3d && (RotationMode.Front === rotation || RotationMode.Side === rotation))\n accudraw.setRotationMode(RotationMode.Top);\n\n accudraw.flags.baseRotation = rotation;\n accudraw.updateRotation(true);\n }\n\n // Shortcut implementations for GUI entry points...\n public static setOrigin(explicitOrigin?: Point3d): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (explicitOrigin) {\n accudraw.published.origin.setFrom(explicitOrigin);\n accudraw.flags.haveValidOrigin = true;\n } else if (accudraw.isInactive || accudraw.isDeactivated) {\n // If AccuSnap is active use adjusted snap point, otherwise use last data point...\n const snap = TentativeOrAccuSnap.getCurrentSnap(false);\n if (undefined !== snap) {\n accudraw.published.origin.setFrom(snap.isPointAdjusted ? snap.adjustedPoint : snap.getPoint());\n accudraw.flags.haveValidOrigin = true;\n } else {\n const ev = new BeButtonEvent();\n IModelApp.toolAdmin.fillEventFromLastDataButton(ev);\n\n if (ev.viewport) {\n accudraw.published.origin.setFrom(ev.point);\n accudraw.flags.haveValidOrigin = true;\n } else {\n // NOTE: If current point isn't valid setDefaultOrigin will be called...\n accudraw.published.origin.setFrom(accudraw.point);\n }\n }\n } else {\n accudraw.published.origin.setFrom(accudraw.point);\n accudraw.flags.haveValidOrigin = true;\n accudraw.setLastPoint(accudraw.published.origin);\n }\n\n accudraw.clearTentative();\n const vp = accudraw.currentView;\n\n // NOTE: _AdjustPoint should have been called to have setup currentView...\n if (vp && !vp.view.is3d())\n accudraw.published.origin.z = 0.0;\n\n accudraw.origin.setFrom(accudraw.published.origin);\n accudraw.point.setFrom(accudraw.published.origin);\n accudraw.planePt.setFrom(accudraw.published.origin);\n accudraw.published.flags |= AccuDrawFlags.SetOrigin;\n accudraw.activate();\n accudraw.refreshDecorationsAndDynamics(); // NOTE: Will already grab input focus through processHints...\n }\n\n public static changeCompassMode(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n let axisLockStatus = accudraw.locked & LockedStates.XY_BM;\n\n if (axisLockStatus) {\n if (CompassMode.Rectangular === accudraw.compassMode) {\n if (axisLockStatus & LockedStates.X_BM && accudraw.delta.x !== 0.0)\n axisLockStatus &= ~LockedStates.X_BM;\n\n if (axisLockStatus & LockedStates.Y_BM && accudraw.delta.y !== 0.0)\n axisLockStatus &= ~LockedStates.Y_BM;\n }\n }\n\n accudraw.changeCompassMode(true);\n if (axisLockStatus) {\n if (CompassMode.Rectangular === accudraw.compassMode) {\n accudraw.delta.x = accudraw.delta.y = 0.0;\n\n if (axisLockStatus & LockedStates.X_BM)\n accudraw.setFieldLock(ItemField.X_Item, true);\n else if (axisLockStatus & LockedStates.Y_BM)\n accudraw.setFieldLock(ItemField.Y_Item, true);\n } else {\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\n }\n accudraw.locked = axisLockStatus;\n }\n accudraw.flags.baseMode = accudraw.compassMode;\n this.requestInputFocus();\n }\n\n public static lockSmart(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const accuSnap = IModelApp.accuSnap;\n\n // Don't want AccuSnap to influence axis or Z...\n if (accuSnap.isHot) {\n accuSnap.clear();\n\n const vp = accudraw.currentView;\n if (vp) {\n if (CompassMode.Polar === accudraw.compassMode)\n accudraw.fixPointPolar(vp);\n else\n accudraw.fixPointRectangular(vp);\n }\n }\n\n if (CompassMode.Polar === accudraw.compassMode) {\n const isSnapped = accudraw.clearTentative();\n if (accudraw.locked & LockedStates.ANGLE_BM) { // angle locked (unlock it)\n accudraw.setFieldLock(ItemField.ANGLE_Item, false);\n accudraw.locked &= ~LockedStates.ANGLE_BM;\n } else if (accudraw.getFieldLock(ItemField.DIST_Item)) { // distance locked (unlock it)\n accudraw.setFieldLock(ItemField.DIST_Item, false);\n accudraw.locked &= ~LockedStates.DIST_BM;\n } else if (isSnapped) {\n accudraw.doLockAngle(isSnapped);\n } else if (accudraw.indexed & LockedStates.ANGLE_BM) { // angle indexed (lock it)\n accudraw.angleLock();\n } else {\n if (Math.abs(accudraw.vector.dotProduct(accudraw.axes.x)) > Math.abs(accudraw.vector.dotProduct(accudraw.axes.y)))\n accudraw.indexed |= LockedStates.Y_BM;\n else\n accudraw.indexed |= LockedStates.X_BM;\n accudraw.angleLock();\n }\n this.requestInputFocus();\n return;\n }\n\n if (accudraw.locked) { // if locked, unlock\n accudraw.clearTentative();\n accudraw.locked &= ~LockedStates.XY_BM;\n accudraw.setFieldLock(ItemField.X_Item, false);\n accudraw.setFieldLock(ItemField.Y_Item, false);\n if (accudraw.getFieldLock(ItemField.Z_Item) && accudraw.delta.z === 0.0 && !accudraw.stickyZLock)\n accudraw.setFieldLock(ItemField.Z_Item, false);\n } else { // lock to nearest axis\n if (accudraw.clearTentative()) {\n if (Math.abs(accudraw.delta.x) >= Geometry.smallAngleRadians && Math.abs(accudraw.delta.y) >= Geometry.smallAngleRadians) {\n accudraw.doLockAngle(false);\n return;\n }\n }\n\n const vp = accudraw.currentView;\n if (Math.abs(accudraw.delta.x) > Math.abs(accudraw.delta.y)) {\n accudraw.delta.y = 0.0;\n accudraw.onFieldValueChange(ItemField.Y_Item);\n accudraw.locked |= LockedStates.Y_BM;\n accudraw.locked &= ~LockedStates.X_BM;\n accudraw.setFieldLock(ItemField.X_Item, false);\n accudraw.setFieldLock(ItemField.Y_Item, true);\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\n } else {\n accudraw.delta.x = 0.0;\n accudraw.onFieldValueChange(ItemField.X_Item);\n accudraw.locked |= LockedStates.X_BM;\n accudraw.locked &= ~LockedStates.Y_BM;\n accudraw.setFieldLock(ItemField.Y_Item, false);\n accudraw.setFieldLock(ItemField.X_Item, true);\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\n }\n\n if (!accudraw.flags.lockedRotation) {\n accudraw.flags.lockedRotation = true;\n accudraw.flags.contextRotMode = ContextMode.Locked;\n accudraw.setRotationMode(RotationMode.Context);\n }\n }\n this.requestInputFocus();\n }\n\n /** Disable indexing when not currently indexed; if indexed, enable respective lock. */\n public static lockIndex(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.flags.indexLocked) {\n if (accudraw.locked)\n this.lockSmart();\n\n accudraw.flags.indexLocked = false;\n } else {\n if (CompassMode.Polar === accudraw.compassMode) {\n if (accudraw.indexed & LockedStates.XY_BM) {\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\n accudraw.angleLock();\n }\n\n if (accudraw.indexed & LockedStates.DIST_BM)\n this.lockDistance();\n } else {\n if (accudraw.indexed & LockedStates.X_BM) {\n this.lockX();\n\n if (accudraw.indexed & LockedStates.DIST_BM)\n this.lockY();\n }\n\n if (accudraw.indexed & LockedStates.Y_BM) {\n this.lockY();\n\n if (accudraw.indexed & LockedStates.DIST_BM)\n this.lockX();\n }\n\n if (accudraw.indexed & LockedStates.DIST_BM && !(accudraw.indexed & LockedStates.XY_BM)) {\n if (accudraw.locked & LockedStates.X_BM)\n this.lockY();\n else\n this.lockX();\n }\n }\n\n accudraw.flags.indexLocked = true;\n }\n\n this.requestInputFocus();\n }\n\n public static lockX(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n accudraw.clearTentative();\n\n if (CompassMode.Rectangular !== accudraw.compassMode) {\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n accudraw.fixPointRectangular(vp);\n accudraw.changeCompassMode(true);\n }\n\n if (accudraw.getFieldLock(ItemField.X_Item)) {\n accudraw.setFieldLock(ItemField.X_Item, false);\n accudraw.locked = accudraw.locked & ~LockedStates.X_BM;\n accudraw.setKeyinStatus(ItemField.X_Item, KeyinStatus.Dynamic);\n } else {\n accudraw.saveCoordinate(ItemField.X_Item, accudraw.delta.x);\n accudraw.setFieldLock(ItemField.X_Item, true);\n accudraw.locked = accudraw.locked | LockedStates.X_BM;\n }\n this.requestInputFocus();\n }\n\n public static lockY(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n accudraw.clearTentative();\n\n if (CompassMode.Rectangular !== accudraw.compassMode) {\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n accudraw.fixPointRectangular(vp);\n accudraw.changeCompassMode(true);\n }\n\n if (accudraw.getFieldLock(ItemField.Y_Item)) {\n accudraw.setFieldLock(ItemField.Y_Item, false);\n accudraw.locked = accudraw.locked & ~LockedStates.Y_BM;\n accudraw.setKeyinStatus(ItemField.Y_Item, KeyinStatus.Dynamic);\n } else {\n accudraw.saveCoordinate(ItemField.Y_Item, accudraw.delta.y);\n accudraw.setFieldLock(ItemField.Y_Item, true);\n accudraw.locked = accudraw.locked | LockedStates.Y_BM;\n }\n this.requestInputFocus();\n }\n\n public static lockZ(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const vp = accudraw.currentView;\n if (!vp || !vp.view.is3d())\n return;\n\n const isSnapped = accudraw.clearTentative();\n\n if (accudraw.getFieldLock(ItemField.Z_Item)) {\n accudraw.setFieldLock(ItemField.Z_Item, false);\n accudraw.setKeyinStatus(ItemField.Z_Item, KeyinStatus.Dynamic);\n } else {\n // Move focus to Z field...\n if (!isSnapped && accudraw.autoFocusFields) {\n accudraw.setFocusItem(ItemField.Z_Item);\n accudraw.dontMoveFocus = true;\n }\n accudraw.setFieldLock(ItemField.Z_Item, true);\n }\n this.requestInputFocus();\n }\n\n public static lockDistance(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const isSnapped = accudraw.clearTentative();\n\n if (CompassMode.Polar !== accudraw.compassMode) {\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n accudraw.locked = 0;\n accudraw.fixPointPolar(vp);\n accudraw.changeCompassMode(true);\n }\n\n if (accudraw.getFieldLock(ItemField.DIST_Item)) {\n accudraw.setFieldLock(ItemField.DIST_Item, false);\n accudraw.locked &= ~LockedStates.DIST_BM;\n accudraw.setKeyinStatus(ItemField.DIST_Item, KeyinStatus.Dynamic);\n } else {\n // Move focus to distance field...\n if (!isSnapped && accudraw.autoFocusFields)\n accudraw.setFocusItem(ItemField.DIST_Item);\n accudraw.distanceLock(true, true);\n }\n this.requestInputFocus();\n }\n\n public static lockAngle(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n accudraw.doLockAngle(accudraw.clearTentative());\n this.requestInputFocus();\n }\n\n public static setStandardRotation(rotation: RotationMode): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (RotationMode.Context === rotation) {\n const axes = accudraw.baseAxes.clone();\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\n accudraw.setContextRotation(axes.toMatrix3d(), false, true);\n this.requestInputFocus();\n return;\n } else {\n accudraw.flags.baseRotation = rotation;\n accudraw.setRotationMode(rotation);\n }\n accudraw.updateRotation(true);\n this.requestInputFocus();\n }\n\n public static alignView(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n const newMatrix = accudraw.getRotation();\n if (newMatrix.isExactEqual(vp.rotation))\n return;\n\n const targetMatrix = newMatrix.multiplyMatrixMatrix(vp.rotation);\n const rotateTransform = Transform.createFixedPointAndMatrix(vp.view.getTargetPoint(), targetMatrix);\n const newFrustum = vp.getFrustum();\n newFrustum.multiply(rotateTransform);\n\n vp.view.setupFromFrustum(newFrustum);\n vp.synchWithView();\n vp.animateFrustumChange();\n\n this.requestInputFocus();\n }\n\n public static rotateToBase(): void { this.setStandardRotation(IModelApp.accuDraw.flags.baseRotation); }\n\n public static rotateToACS(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n // NOTE: Match current ACS orientation..reset auxRotationPlane to top!\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n this.setStandardRotation(RotationMode.ACS);\n }\n\n public static rotateCycle(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const vp = accudraw.currentView;\n if (!vp || !vp.view.is3d())\n return;\n\n let rotation: RotationMode;\n switch (accudraw.rotationMode) {\n case RotationMode.View:\n case RotationMode.Side:\n rotation = RotationMode.Top;\n break;\n\n case RotationMode.Top:\n rotation = RotationMode.Front;\n break;\n\n case RotationMode.Front:\n rotation = RotationMode.Side;\n break;\n\n case RotationMode.Context:\n rotation = RotationMode.Context;\n\n if (rotation !== accudraw.flags.baseRotation) {\n accudraw.baseAxes.setFrom(accudraw.axes);\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n accudraw.flags.baseRotation = rotation;\n } else {\n const axes = accudraw.baseAxes.clone();\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\n if (!accudraw.axes.equals(axes))\n accudraw.changeBaseRotationMode(rotation);\n }\n\n switch (accudraw.flags.auxRotationPlane) {\n case RotationMode.Front:\n accudraw.flags.auxRotationPlane = RotationMode.Side;\n break;\n\n case RotationMode.Side:\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n break;\n\n case RotationMode.Top:\n accudraw.flags.auxRotationPlane = RotationMode.Front;\n break;\n }\n break;\n\n case RotationMode.ACS:\n rotation = RotationMode.ACS;\n switch (accudraw.flags.auxRotationPlane) {\n case RotationMode.Front:\n accudraw.flags.auxRotationPlane = RotationMode.Side;\n break;\n case RotationMode.Side:\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n break;\n case RotationMode.Top:\n accudraw.flags.auxRotationPlane = RotationMode.Front;\n break;\n }\n break;\n\n default:\n return;\n }\n\n this.setStandardRotation(rotation);\n }\n\n public static rotate90(axis: number): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const newRotation = new ThreeAxes();\n\n accudraw.locked = accudraw.indexed = 0;\n accudraw.unlockAllFields();\n\n switch (axis) {\n case 0:\n newRotation.x.setFrom(accudraw.axes.x);\n newRotation.z.setFrom(accudraw.axes.y);\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\n break;\n\n case 1:\n newRotation.x.setFrom(accudraw.axes.z);\n newRotation.y.setFrom(accudraw.axes.y);\n newRotation.x.crossProduct(newRotation.y, newRotation.z);\n break;\n\n case 2:\n newRotation.x.setFrom(accudraw.axes.y);\n newRotation.z.setFrom(accudraw.axes.z);\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\n break;\n }\n\n accudraw.setContextRotation(newRotation.toMatrix3d(), true, true);\n this.requestInputFocus();\n }\n\n public static async rotateAxes(aboutCurrentZ: boolean) {\n return IModelApp.tools.run(\"AccuDraw.RotateAxes\", aboutCurrentZ);\n }\n\n public static async rotateToElement() {\n return IModelApp.tools.run(\"AccuDraw.RotateElement\");\n }\n\n public static async defineACSByElement() {\n return IModelApp.tools.run(\"AccuDraw.DefineACSByElement\");\n }\n\n public static async defineACSByPoints() {\n return IModelApp.tools.run(\"AccuDraw.DefineACSByPoints\");\n }\n\n public static getACS(acsName: string | undefined, useOrigin: boolean, useRotation: boolean): BentleyStatus {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return BentleyStatus.ERROR;\n\n const vp = accudraw.currentView;\n if (!vp)\n return BentleyStatus.ERROR;\n\n let currRotation = 0, currBaseRotation = 0;\n const axes = new ThreeAxes();\n\n if (!useRotation) {\n // Save current rotation, event listener on ACS change will orient AccuDraw to ACS...\n currRotation = accudraw.rotationMode;\n currBaseRotation = accudraw.flags.baseRotation;\n axes.setFrom(accudraw.axes);\n }\n\n if (acsName && \"\" !== acsName) {\n // // See if this ACS already exists...\n // DgnCode acsCode = AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), acsName);\n // DgnElementId acsId = vp -> GetViewController().GetDgnDb().Elements().QueryElementIdByCode(acsCode);\n\n // if (!acsId.IsValid())\n // return ERROR;\n\n // AuxCoordSystemCPtr auxElm = vp -> GetViewController().GetDgnDb().Elements().Get<AuxCoordSystem>(acsId);\n\n // if (!auxElm.IsValid())\n // return ERROR;\n\n // AuxCoordSystemPtr acsPtr = auxElm -> MakeCopy<AuxCoordSystem>();\n\n // if (!acsPtr.IsValid())\n // return ERROR;\n\n // AuxCoordSystemCR oldACS = vp -> GetViewController().GetAuxCoordinateSystem();\n\n // if (!useOrigin)\n // acsPtr -> SetOrigin(oldACS.GetOrigin());\n\n // if (!useRotation)\n // acsPtr -> SetRotation(oldACS.GetRotation());\n\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\n }\n\n const currentACS = vp.view.auxiliaryCoordinateSystem;\n\n if (useOrigin) {\n accudraw.origin.setFrom(currentACS.getOrigin());\n accudraw.point.setFrom(accudraw.origin);\n accudraw.planePt.setFrom(accudraw.origin);\n }\n\n if (useRotation) {\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n this.setStandardRotation(RotationMode.ACS);\n } else {\n this.itemFieldUnlockAll();\n\n accudraw.setRotationMode(currRotation);\n accudraw.flags.baseRotation = currBaseRotation;\n accudraw.axes.setFrom(axes);\n\n if (RotationMode.ACS === accudraw.flags.baseRotation) {\n const acs = currentACS.clone();\n\n const rMatrix = accudraw.getRotation();\n acs.setRotation(rMatrix);\n\n AccuDraw.updateAuxCoordinateSystem(acs, vp);\n }\n\n accudraw.published.flags &= ~AccuDrawFlags.OrientACS;\n }\n\n return BentleyStatus.SUCCESS;\n }\n\n public static writeACS(_acsName: string): BentleyStatus {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return BentleyStatus.ERROR;\n\n const vp = accudraw.currentView;\n if (!vp)\n return BentleyStatus.ERROR;\n\n // const origin = accudraw.origin;\n // const rMatrix = accudraw.getRotation();\n // AuxCoordSystemPtr acsPtr = AuxCoordSystem:: CreateFrom(vp -> GetViewController().GetAuxCoordinateSystem());\n // acsPtr -> SetOrigin(origin);\n // acsPtr -> SetRotation(rMatrix);\n // acsPtr -> SetType(CompassMode.Polar == accudraw.getCompassMode() ? ACSType :: Cylindrical : ACSType:: Rectangular);\n // acsPtr -> SetCode(AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), nullptr != acsName ? acsName : \"\"));\n // acsPtr -> SetDescription(\"\");\n\n // if (acsName && '\\0' != acsName[0]) {\n // DgnDbStatus status;\n // acsPtr -> Insert(& status);\n\n // if (DgnDbStatus:: Success != status)\n // return BentleyStatus.ERROR;\n // }\n\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\n\n // accudraw.flags.baseRotation = RotationMode.ACS;\n // accudraw.SetRotationMode(RotationMode.ACS);\n\n return BentleyStatus.SUCCESS;\n }\n\n public static itemFieldUnlockAll(): void {\n const accudraw = IModelApp.accuDraw;\n if (accudraw.isEnabled)\n accudraw.unlockAllFields();\n }\n}\n\n/** @beta */\nexport class AccuDrawSessionToggleTool extends Tool {\n public static override toolId = \"AccuDraw.SessionToggle\";\n public override async run() {\n AccuDrawShortcuts.sessionToggle();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSuspendToggleTool extends Tool {\n public static override toolId = \"AccuDraw.SuspendToggle\";\n public override async run() {\n AccuDrawShortcuts.suspendToggle();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetOriginTool extends Tool {\n public static override toolId = \"AccuDraw.SetOrigin\";\n public override async run() {\n AccuDrawShortcuts.setOrigin();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockSmartTool extends Tool {\n public static override toolId = \"AccuDraw.LockSmart\";\n public override async run() {\n AccuDrawShortcuts.lockSmart();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockIndexTool extends Tool {\n public static override toolId = \"AccuDraw.LockIndex\";\n public override async run() {\n AccuDrawShortcuts.lockIndex();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockXTool extends Tool {\n public static override toolId = \"AccuDraw.LockX\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockX();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockYTool extends Tool {\n public static override toolId = \"AccuDraw.LockY\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockY();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockZTool extends Tool {\n public static override toolId = \"AccuDraw.LockZ\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockZ();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockDistanceTool extends Tool {\n public static override toolId = \"AccuDraw.LockDistance\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockDistance();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockAngleTool extends Tool {\n public static override toolId = \"AccuDraw.LockAngle\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockAngle();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawChangeModeTool extends Tool {\n public static override toolId = \"AccuDraw.ChangeMode\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.changeCompassMode();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateCycleTool extends Tool {\n public static override toolId = \"AccuDraw.RotateCycle\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotateCycle();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateTopTool extends Tool {\n public static override toolId = \"AccuDraw.RotateTop\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.Top);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateFrontTool extends Tool {\n public static override toolId = \"AccuDraw.RotateFront\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.Front);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateSideTool extends Tool {\n public static override toolId = \"AccuDraw.RotateSide\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.Side);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateViewTool extends Tool {\n public static override toolId = \"AccuDraw.RotateView\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.View);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotate90AboutXTool extends Tool {\n public static override toolId = \"AccuDraw.Rotate90AboutX\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotate90(0);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotate90AboutYTool extends Tool {\n public static override toolId = \"AccuDraw.Rotate90AboutY\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotate90(1);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotate90AboutZTool extends Tool {\n public static override toolId = \"AccuDraw.Rotate90AboutZ\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotate90(2);\n return true;\n }\n}\n\n/** @internal */\nabstract class AccuDrawShortcutsTool extends InputCollector {\n private _complete = false;\n protected get allowShortcut(): boolean { return this.wantActivateOnStart ? IModelApp.accuDraw.isEnabled : true; }\n protected get wantActivateOnStart(): boolean { return false; } // Whether to automatically enable AccuDraw before the 1st data button...\n protected get wantClearSnapOnStart(): boolean { return false; } // Whether to preserve active Tentative/AccuSnap on install...\n protected get wantManipulationImmediate(): boolean { return false; } // Whether additional input is required to process on install...\n protected get wantExitOnDataButtonUp(): boolean { return false; } // Whether to exit on button up instead of down...\n\n public override async onInstall(): Promise<boolean> {\n if (!this.allowShortcut)\n return false;\n return super.onInstall();\n }\n\n public override async onPostInstall(): Promise<void> {\n await super.onPostInstall();\n\n if (this.wantActivateOnStart)\n IModelApp.accuDraw.activate();\n\n this.onManipulationStart();\n\n if (this.wantManipulationImmediate && this.doManipulation(undefined, false)) {\n this._complete = true;\n return this.exitTool();\n }\n\n // NOTE: InputCollector inherits suspended primitive's state, set everything...\n if (this.wantClearSnapOnStart) {\n this.initLocateElements(false, true, undefined, CoordinateLockOverrides.None); // This clears the active Tentative/AccuSnap, some shortcuts have special behavior when invoked with an active snap...\n } else {\n IModelApp.locateManager.initLocateOptions();\n this.changeLocateState(false, true, undefined, CoordinateLockOverrides.None);\n }\n\n this.doManipulation(undefined, true);;\n }\n\n public override async onCleanup(): Promise<void> {\n if (this._complete)\n IModelApp.accuDraw.savedStateInputCollector.ignoreFlags = this.onManipulationComplete();\n }\n\n public override async exitTool(): Promise<void> {\n await super.exitTool();\n AccuDrawShortcuts.requestInputFocus(); // re-grab focus when auto-focus tool setting set...\n }\n\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\n if (this.doManipulation(ev, false)) {\n this._complete = true;\n if (!this.wantExitOnDataButtonUp)\n await this.exitTool();\n }\n\n return EventHandled.No;\n }\n\n public override async onDataButtonUp(_ev: BeButtonEvent): Promise<EventHandled> {\n if (this._complete && this.wantExitOnDataButtonUp)\n await this.exitTool();\n\n return EventHandled.No;\n }\n\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\n this.doManipulation(ev, true);\n }\n\n protected onManipulationStart(): void { }\n protected onManipulationComplete(): AccuDrawFlags { return AccuDrawFlags.SetRMatrix; }\n protected abstract doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;\n}\n\n/** @beta */\nexport class AccuDrawRotateAxesTool extends AccuDrawShortcutsTool {\n public static override toolId = \"AccuDraw.RotateAxes\";\n public static override get maxArgs(): number { return 1; }\n public constructor(public aboutCurrentZ: boolean = true) { super(); }\n\n /** @internal */\n protected override get allowShortcut(): boolean { return IModelApp.accuDraw.isActive; } // Require compass to already be active for this shortcut...\n\n /** @internal */\n protected override get wantActivateOnStart(): boolean { return true; } // State is demoted to inactive when a tool install, still need this...\n\n /** @internal */\n protected override get wantManipulationImmediate(): boolean {\n if (TentativeOrAccuSnap.isHot)\n return true;\n\n const accudraw = IModelApp.accuDraw;\n\n if (CompassMode.Polar === accudraw.compassMode)\n return accudraw.getFieldLock(ItemField.ANGLE_Item);\n\n return accudraw.getFieldLock(ItemField.X_Item) && accudraw.getFieldLock(ItemField.Y_Item);\n }\n\n /** @internal */\n protected override onManipulationStart(): void {\n if (this.aboutCurrentZ)\n IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Establish current orientation as base for when defining compass rotation by x axis...\n CoreTools.outputPromptByKey(\"AccuDraw.RotateAxes.Prompts.FirstPoint\");\n }\n\n /** @internal */\n protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;\n if (!vp)\n return false;\n if (!AccuDrawShortcuts.rotateAxesByPoint(TentativeOrAccuSnap.isHot, this.aboutCurrentZ))\n return false;\n vp.invalidateDecorations();\n if (!isMotion) {\n AccuDrawShortcuts.itemFieldUnlockAll();\n IModelApp.tentativePoint.clear(true);\n }\n return true;\n }\n\n public override async parseAndRun(...args: any[]): Promise<boolean> {\n for (const arg of args) {\n if (arg.toLowerCase() === \"unlockedz\")\n this.aboutCurrentZ = false;\n }\n return this.run(args);\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateElementTool extends AccuDrawShortcutsTool {\n public static override toolId = \"AccuDraw.RotateElement\";\n private _moveOrigin = !IModelApp.accuDraw.isActive || IModelApp.tentativePoint.isActive; // Preserve current origin if AccuDraw already active and not tentative snap...\n\n /** @internal */\n protected override get wantActivateOnStart(): boolean { return true; }\n\n /** @internal */\n protected override get wantManipulationImmediate(): boolean { return IModelApp.tentativePoint.isSnapped; }\n\n /** @internal */\n protected override onManipulationStart(): void {\n IModelApp.accuDraw.setContext(AccuDrawFlags.FixedOrigin); // Don't move compass when updateOrientation returns false...\n CoreTools.outputPromptByKey(\"AccuDraw.RotateElement.Prompts.FirstPoint\");\n }\n\n /** @internal */\n protected override onManipulationComplete(): AccuDrawFlags {\n let ignoreFlags = AccuDrawFlags.SetRMatrix | AccuDrawFlags.Disable; // If AccuDraw wasn't active when the shortcut started, let it remain active for suspended tool when shortcut completes...\n if (this._moveOrigin)\n ignoreFlags |= AccuDrawFlags.SetOrigin;\n return ignoreFlags;\n }\n\n /** @internal */\n protected updateOrientation(snap: SnapDetail, viewport: ScreenViewport, _isMotion: boolean): boolean {\n const accudraw = IModelApp.accuDraw;\n const rMatrix = AccuDraw.getSnapRotation(snap, viewport);\n if (undefined === rMatrix)\n return false;\n\n const point = this._moveOrigin ? snap.snapPoint : accudraw.origin;\n accudraw.setContext(AccuDrawFlags.SetRMatrix | AccuDrawFlags.AlwaysSetOrigin, point, rMatrix);\n return true;\n }\n\n /** @internal */\n protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n const viewport = ev ? ev.viewport : IModelApp.accuDraw.currentView;\n if (!viewport)\n return false;\n\n const snap = TentativeOrAccuSnap.getCurrentSnap(false);\n if (undefined === snap || !this.updateOrientation(snap, viewport, isMotion))\n return false;\n\n if (undefined === ev)\n AccuDrawShortcuts.processPendingHints(); // Would normally be processed after button down, necessary when called from post install...\n if (!isMotion)\n IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Hold temporary rotation for tool duration...\n return true;\n }\n}\n\n/** @beta */\nexport class DefineACSByElementTool extends AccuDrawShortcutsTool {\n public static override toolId = \"AccuDraw.DefineACSByElement\";\n private _origin = Point3d.create();\n private _rMatrix = Matrix3d.createIdentity();\n private _acs?: AuxCoordSystemState;\n\n /** @internal */\n protected override onManipulationStart(): void { CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByElement.Prompts.FirstPoint\"); }\n\n /** @internal */\n protected updateOrientation(snap: SnapDetail, vp: Viewport): boolean {\n const rMatrix = AccuDraw.getSnapRotation(snap, vp);\n if (undefined === rMatrix)\n return false;\n this._origin = snap.snapPoint;\n this._rMatrix = rMatrix;\n return true;\n }\n\n /** @internal */\n protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n const vp = ev ? ev.viewport : undefined;\n if (!vp)\n return false;\n\n const snapDetail = TentativeOrAccuSnap.getCurrentSnap(false);\n if (undefined === snapDetail || !this.updateOrientation(snapDetail, vp))\n return false;\n\n IModelApp.viewManager.invalidateDecorationsAllViews();\n if (isMotion)\n return true;\n\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n\n this._acs.setOrigin(this._origin);\n this._acs.setRotation(this._rMatrix);\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\n AccuDrawShortcuts.rotateToACS();\n return true;\n }\n\n /** @internal */\n public override decorate(context: DecorateContext): void {\n const vp = context.viewport;\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n this._acs.setOrigin(this._origin);\n this._acs.setRotation(this._rMatrix);\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\n }\n}\n\n/** @beta */\nexport class DefineACSByPointsTool extends AccuDrawShortcutsTool {\n public static override toolId = \"AccuDraw.DefineACSByPoints\";\n private readonly _points: Point3d[] = [];\n private _acs?: AuxCoordSystemState;\n\n /** @internal */\n protected override onManipulationStart(): void {\n if (!IModelApp.tentativePoint.isActive) {\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.FirstPoint\");\n return;\n }\n\n const origin = IModelApp.tentativePoint.getPoint().clone();\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.SecondPoint\");\n IModelApp.accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.FixedOrigin, origin);\n this._points.push(origin);\n IModelApp.tentativePoint.clear(true);\n }\n\n /** @internal */\n protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n if (!ev || !ev.viewport)\n return false;\n\n IModelApp.viewManager.invalidateDecorationsAllViews();\n if (isMotion)\n return false;\n\n IModelApp.accuDraw.activate();\n this._points.push(ev.point.clone());\n\n const vp = ev.viewport;\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n\n if (AccuDrawShortcuts.updateACSByPoints(this._acs, vp, this._points, false)) {\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\n AccuDrawShortcuts.rotateToACS();\n return true;\n }\n\n CoreTools.outputPromptByKey(`AccuDraw.DefineACSByPoints.Prompts${1 === this._points.length ? \".SecondPoint\" : \".NextPoint\"}`);\n return false;\n }\n\n /** @internal */\n public override decorate(context: DecorateContext): void {\n const tmpPoints: Point3d[] = [];\n this._points.forEach((pt) => tmpPoints.push(pt));\n\n const ev = new BeButtonEvent();\n IModelApp.toolAdmin.fillEventFromCursorLocation(ev);\n tmpPoints.push(ev.point);\n\n const vp = context.viewport;\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n\n AccuDrawShortcuts.updateACSByPoints(this._acs, vp, tmpPoints, true);\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\n }\n}\n"]}
|
|
@@ -74,7 +74,6 @@ export declare class AccuDrawViewportUI extends AccuDraw {
|
|
|
74
74
|
private unsuspendToolTips;
|
|
75
75
|
private setDynamicKeyinStatus;
|
|
76
76
|
private setPartialKeyinStatus;
|
|
77
|
-
private makeParserHappy;
|
|
78
77
|
private evaluateExpression;
|
|
79
78
|
private parseExpression;
|
|
80
79
|
private processPartialInput;
|
|
@@ -100,6 +99,10 @@ export declare class AccuDrawViewportUI extends AccuDraw {
|
|
|
100
99
|
private initializeItemStyle;
|
|
101
100
|
private createItemField;
|
|
102
101
|
private createItemFieldLock;
|
|
102
|
+
/** Called after the controls have been removed from the view. */
|
|
103
|
+
protected removedControlRect(): void;
|
|
104
|
+
/** Called after the position of the controls in the supplied view is updated. */
|
|
105
|
+
protected changedControlRect(_rect: ViewRect, _vp: ScreenViewport): void;
|
|
103
106
|
/** Use to override the position of the controls in the supplied view. */
|
|
104
107
|
protected modifyControlRect(_rect: ViewRect, _vp: ScreenViewport): void;
|
|
105
108
|
/** Return the ViewRect currently occupied by the controls in the supplied view. */
|
|
@@ -115,6 +118,9 @@ export declare class AccuDrawViewportUI extends AccuDraw {
|
|
|
115
118
|
* When returning false the compass displays in monochrome.
|
|
116
119
|
*/
|
|
117
120
|
get hasInputFocus(): boolean;
|
|
121
|
+
/** Get the item field that currently has input focus.
|
|
122
|
+
*/
|
|
123
|
+
getFocusItem(): ItemField | undefined;
|
|
118
124
|
/** Request to set focus to the specified AccuDraw input field to start entering values.
|
|
119
125
|
* The focused input field will be indicated by the background color.
|
|
120
126
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccuDrawViewportUI.d.ts","sourceRoot":"","sources":["../../../src/tools/AccuDrawViewportUI.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAe,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAS7C;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAmB;IACrC,OAAO,CAAC,kBAAkB,CAAC,CAAO;IAClC,OAAO,CAAC,WAAW,CAAC,CAAwC;IAE5D;;OAEG;IACH,OAAc,YAAY;QACxB,qGAAqG;;QAErG,+GAA+G;;QAE/G,4HAA4H;;QAE5H,wJAAwJ;;;;;QAExJ,mEAAmE;;QAEnE,sEAAsE;;QAEtE,iEAAiE;;QAEjE,iEAAiE;;QAEjE,kFAAkF;;QAElF,4DAA4D;;QAE5D,4EAA4E;;QAG5E,qEAAqE;;YAEnE,wEAAwE;;YAExE,sEAAsE;;YAEtE,uEAAuE;;YAEvE,oDAAoD;;;QAItD,yCAAyC;;YAEvC,0CAA0C;;YAE1C,gFAAgF;;YAEhF,+BAA+B;;YAE/B,2DAA2D;;;MAG7D;IAEF,oGAAoG;;IAMpG,gGAAgG;IACzF,uBAAuB;IAO9B,yFAAyF;IAClF,wBAAwB;IAO/B,kFAAkF;IAC3E,eAAe,IAAI,IAAI;IAc9B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"AccuDrawViewportUI.d.ts","sourceRoot":"","sources":["../../../src/tools/AccuDrawViewportUI.ts"],"names":[],"mappings":"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"}
|