@itwin/core-frontend 5.11.0-dev.8 → 5.12.0-dev.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 +13 -1
- package/lib/cjs/AccuDraw.d.ts +2 -0
- package/lib/cjs/AccuDraw.d.ts.map +1 -1
- package/lib/cjs/AccuDraw.js +9 -1
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/BingLocation.d.ts +4 -0
- package/lib/cjs/BingLocation.d.ts.map +1 -1
- package/lib/cjs/BingLocation.js +6 -1
- package/lib/cjs/BingLocation.js.map +1 -1
- package/lib/cjs/CesiumAccessClient.d.ts +52 -0
- package/lib/cjs/CesiumAccessClient.d.ts.map +1 -0
- package/lib/cjs/CesiumAccessClient.js +10 -0
- package/lib/cjs/CesiumAccessClient.js.map +1 -0
- package/lib/cjs/DisplayStyleState.js +2 -2
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/GeoProviders.d.ts +45 -0
- package/lib/cjs/GeoProviders.d.ts.map +1 -0
- package/lib/cjs/GeoProviders.js +49 -0
- package/lib/cjs/GeoProviders.js.map +1 -0
- package/lib/cjs/GraphicalEditingScope.d.ts +21 -0
- package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
- package/lib/cjs/GraphicalEditingScope.js +26 -0
- package/lib/cjs/GraphicalEditingScope.js.map +1 -1
- package/lib/cjs/HitDetail.d.ts.map +1 -1
- package/lib/cjs/HitDetail.js +10 -7
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +33 -0
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +33 -0
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +3 -3
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +15 -8
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/NativeApp.d.ts.map +1 -1
- package/lib/cjs/NativeApp.js +1 -3
- package/lib/cjs/NativeApp.js.map +1 -1
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts +1 -1
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -1
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js +23 -5
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
- package/lib/cjs/SubCategoriesCache.d.ts +15 -3
- package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
- package/lib/cjs/SubCategoriesCache.js +98 -26
- package/lib/cjs/SubCategoriesCache.js.map +1 -1
- package/lib/cjs/ViewGlobalLocation.d.ts +1 -1
- package/lib/cjs/ViewGlobalLocation.d.ts.map +1 -1
- package/lib/cjs/ViewGlobalLocation.js +3 -6
- package/lib/cjs/ViewGlobalLocation.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +1 -0
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +13 -1
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/core-frontend.d.ts +3 -0
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +4 -0
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/internal/tile/DynamicIModelTile.d.ts +3 -3
- package/lib/cjs/internal/tile/DynamicIModelTile.d.ts.map +1 -1
- package/lib/cjs/internal/tile/DynamicIModelTile.js +26 -6
- package/lib/cjs/internal/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/IModelTileTree.js +4 -2
- package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.js +6 -2
- package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.d.ts +22 -0
- package/lib/cjs/internal/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.js +53 -5
- package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/properties/AngleDescription.d.ts +1 -0
- package/lib/cjs/properties/AngleDescription.d.ts.map +1 -1
- package/lib/cjs/properties/AngleDescription.js +3 -0
- package/lib/cjs/properties/AngleDescription.js.map +1 -1
- package/lib/cjs/properties/FormattedQuantityDescription.d.ts +29 -1
- package/lib/cjs/properties/FormattedQuantityDescription.d.ts.map +1 -1
- package/lib/cjs/properties/FormattedQuantityDescription.js +35 -0
- package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/cjs/properties/LengthDescription.d.ts +3 -0
- package/lib/cjs/properties/LengthDescription.d.ts.map +1 -1
- package/lib/cjs/properties/LengthDescription.js +9 -0
- package/lib/cjs/properties/LengthDescription.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +1 -1
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +1 -1
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/tile/RealityTile.d.ts +5 -0
- package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTile.js +4 -0
- package/lib/cjs/tile/RealityTile.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.d.ts +23 -1
- package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
- package/lib/cjs/tile/TileAdmin.js +17 -1
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/map/BingElevation.d.ts +16 -4
- package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
- package/lib/cjs/tile/map/BingElevation.js +18 -8
- package/lib/cjs/tile/map/BingElevation.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts +16 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js +57 -17
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +6 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +1 -0
- package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js +3 -0
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +19 -8
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +6 -0
- package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/cjs/tools/AccuDrawShortcutTool.d.ts +29 -0
- package/lib/cjs/tools/AccuDrawShortcutTool.d.ts.map +1 -0
- package/lib/cjs/tools/AccuDrawShortcutTool.js +139 -0
- package/lib/cjs/tools/AccuDrawShortcutTool.js.map +1 -0
- package/lib/cjs/tools/AccuDrawTool.d.ts +13 -68
- package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.js +103 -129
- package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
- package/lib/cjs/tools/SetupCameraTools.d.ts +89 -0
- package/lib/cjs/tools/SetupCameraTools.d.ts.map +1 -0
- package/lib/cjs/tools/SetupCameraTools.js +444 -0
- package/lib/cjs/tools/SetupCameraTools.js.map +1 -0
- package/lib/cjs/tools/ToolAdmin.d.ts +5 -2
- package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js +30 -7
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ViewTool.d.ts +1 -81
- package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ViewTool.js +13 -410
- 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 +9 -1
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/BingLocation.d.ts +4 -0
- package/lib/esm/BingLocation.d.ts.map +1 -1
- package/lib/esm/BingLocation.js +6 -1
- package/lib/esm/BingLocation.js.map +1 -1
- package/lib/esm/CesiumAccessClient.d.ts +52 -0
- package/lib/esm/CesiumAccessClient.d.ts.map +1 -0
- package/lib/esm/CesiumAccessClient.js +9 -0
- package/lib/esm/CesiumAccessClient.js.map +1 -0
- package/lib/esm/DisplayStyleState.js +2 -2
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/GeoProviders.d.ts +45 -0
- package/lib/esm/GeoProviders.d.ts.map +1 -0
- package/lib/esm/GeoProviders.js +45 -0
- package/lib/esm/GeoProviders.js.map +1 -0
- package/lib/esm/GraphicalEditingScope.d.ts +21 -0
- package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
- package/lib/esm/GraphicalEditingScope.js +26 -0
- package/lib/esm/GraphicalEditingScope.js.map +1 -1
- package/lib/esm/HitDetail.d.ts.map +1 -1
- package/lib/esm/HitDetail.js +11 -8
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +33 -0
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +34 -1
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +3 -3
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +15 -8
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/NativeApp.d.ts.map +1 -1
- package/lib/esm/NativeApp.js +1 -3
- package/lib/esm/NativeApp.js.map +1 -1
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts +1 -1
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -1
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js +24 -6
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
- package/lib/esm/SubCategoriesCache.d.ts +15 -3
- package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
- package/lib/esm/SubCategoriesCache.js +99 -27
- package/lib/esm/SubCategoriesCache.js.map +1 -1
- package/lib/esm/ViewGlobalLocation.d.ts +1 -1
- package/lib/esm/ViewGlobalLocation.d.ts.map +1 -1
- package/lib/esm/ViewGlobalLocation.js +3 -6
- package/lib/esm/ViewGlobalLocation.js.map +1 -1
- package/lib/esm/Viewport.d.ts +1 -0
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +13 -1
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/core-frontend.d.ts +3 -0
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +6 -1
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/internal/tile/DynamicIModelTile.d.ts +3 -3
- package/lib/esm/internal/tile/DynamicIModelTile.d.ts.map +1 -1
- package/lib/esm/internal/tile/DynamicIModelTile.js +26 -6
- package/lib/esm/internal/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/internal/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/IModelTileTree.js +4 -2
- package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.js +6 -2
- package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.d.ts +22 -0
- package/lib/esm/internal/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.js +54 -6
- package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/properties/AngleDescription.d.ts +1 -0
- package/lib/esm/properties/AngleDescription.d.ts.map +1 -1
- package/lib/esm/properties/AngleDescription.js +3 -0
- package/lib/esm/properties/AngleDescription.js.map +1 -1
- package/lib/esm/properties/FormattedQuantityDescription.d.ts +29 -1
- package/lib/esm/properties/FormattedQuantityDescription.d.ts.map +1 -1
- package/lib/esm/properties/FormattedQuantityDescription.js +35 -1
- package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/esm/properties/LengthDescription.d.ts +3 -0
- package/lib/esm/properties/LengthDescription.d.ts.map +1 -1
- package/lib/esm/properties/LengthDescription.js +9 -0
- package/lib/esm/properties/LengthDescription.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +1 -1
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +1 -1
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/tile/RealityTile.d.ts +5 -0
- package/lib/esm/tile/RealityTile.d.ts.map +1 -1
- package/lib/esm/tile/RealityTile.js +4 -0
- package/lib/esm/tile/RealityTile.js.map +1 -1
- package/lib/esm/tile/TileAdmin.d.ts +23 -1
- package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
- package/lib/esm/tile/TileAdmin.js +17 -1
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/map/BingElevation.d.ts +16 -4
- package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
- package/lib/esm/tile/map/BingElevation.js +18 -8
- package/lib/esm/tile/map/BingElevation.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.d.ts +16 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js +55 -17
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +6 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +1 -0
- package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js +3 -0
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +20 -9
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.d.ts +6 -0
- package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/esm/tools/AccuDrawShortcutTool.d.ts +29 -0
- package/lib/esm/tools/AccuDrawShortcutTool.d.ts.map +1 -0
- package/lib/esm/tools/AccuDrawShortcutTool.js +134 -0
- package/lib/esm/tools/AccuDrawShortcutTool.js.map +1 -0
- package/lib/esm/tools/AccuDrawTool.d.ts +13 -68
- package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/esm/tools/AccuDrawTool.js +102 -128
- package/lib/esm/tools/AccuDrawTool.js.map +1 -1
- package/lib/esm/tools/SetupCameraTools.d.ts +89 -0
- package/lib/esm/tools/SetupCameraTools.d.ts.map +1 -0
- package/lib/esm/tools/SetupCameraTools.js +439 -0
- package/lib/esm/tools/SetupCameraTools.js.map +1 -0
- package/lib/esm/tools/ToolAdmin.d.ts +5 -2
- package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/esm/tools/ToolAdmin.js +30 -7
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ViewTool.d.ts +1 -81
- package/lib/esm/tools/ViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ViewTool.js +14 -409
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/lib/public/locales/en/iModelJs.json +2 -1
- package/lib/public/scripts/parse-imdl-worker.js +1 -1
- package/lib/workers/webpack/parse-imdl-worker.js +1 -1
- package/package.json +24 -23
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
/** @packageDocumentation
|
|
6
|
+
* @module Tools
|
|
7
|
+
*/
|
|
8
|
+
import { AccuDrawFlags } from "../AccuDraw";
|
|
9
|
+
import { IModelApp } from "../IModelApp";
|
|
10
|
+
import { CoordinateLockOverrides, EventHandled, InputCollector, Tool } from "./Tool";
|
|
11
|
+
import { ViewTool } from "./ViewTool";
|
|
12
|
+
/** @internal */
|
|
13
|
+
export class AccuDrawShortcutImplementation {
|
|
14
|
+
_complete = false;
|
|
15
|
+
get allowShortcut() { return true; }
|
|
16
|
+
get wantAdditionalInput() { return true; } // Whether additional input is required from user...
|
|
17
|
+
onInitialize() { }
|
|
18
|
+
onComplete() { return AccuDrawFlags.SetRMatrix; }
|
|
19
|
+
onProvideToolAssistance() { }
|
|
20
|
+
doDecorate(_context) { }
|
|
21
|
+
doDataButtonDown(ev) {
|
|
22
|
+
return (this._complete = this.doManipulation(ev, false));
|
|
23
|
+
}
|
|
24
|
+
doUnsuspend() {
|
|
25
|
+
this.onProvideToolAssistance();
|
|
26
|
+
}
|
|
27
|
+
doPostInstall() {
|
|
28
|
+
this.onInitialize();
|
|
29
|
+
this.onProvideToolAssistance();
|
|
30
|
+
}
|
|
31
|
+
doCleanup() {
|
|
32
|
+
return this._complete ? this.onComplete() : undefined;
|
|
33
|
+
}
|
|
34
|
+
doProcessImmediate() {
|
|
35
|
+
if (!this.allowShortcut)
|
|
36
|
+
return true;
|
|
37
|
+
if (this.wantAdditionalInput)
|
|
38
|
+
return false;
|
|
39
|
+
this.onInitialize();
|
|
40
|
+
return this.doManipulation(undefined, false);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** @internal */
|
|
44
|
+
class AccuDrawShortcutInputCollector extends InputCollector {
|
|
45
|
+
_impl;
|
|
46
|
+
constructor(_impl) {
|
|
47
|
+
super();
|
|
48
|
+
this._impl = _impl;
|
|
49
|
+
}
|
|
50
|
+
async onPostInstall() {
|
|
51
|
+
await super.onPostInstall();
|
|
52
|
+
this._impl.doPostInstall();
|
|
53
|
+
IModelApp.locateManager.initLocateOptions();
|
|
54
|
+
this.changeLocateState(false, true, undefined, CoordinateLockOverrides.None);
|
|
55
|
+
this._impl.doManipulation(undefined, true);
|
|
56
|
+
}
|
|
57
|
+
async onCleanup() {
|
|
58
|
+
const flags = this._impl.doCleanup();
|
|
59
|
+
if (undefined !== flags)
|
|
60
|
+
IModelApp.accuDraw.savedStateInputCollector.ignoreFlags = flags;
|
|
61
|
+
return super.onCleanup();
|
|
62
|
+
}
|
|
63
|
+
async exitTool() {
|
|
64
|
+
await super.exitTool();
|
|
65
|
+
IModelApp.accuDraw.requestInputFocus(); // re-grab focus when auto-focus tool setting set...
|
|
66
|
+
}
|
|
67
|
+
async onDataButtonDown(ev) {
|
|
68
|
+
if (this._impl.doDataButtonDown(ev))
|
|
69
|
+
await this.exitTool();
|
|
70
|
+
return EventHandled.No;
|
|
71
|
+
}
|
|
72
|
+
async onUnsuspend() {
|
|
73
|
+
this._impl.doUnsuspend();
|
|
74
|
+
}
|
|
75
|
+
async onMouseMotion(ev) {
|
|
76
|
+
this._impl.doManipulation(ev, true);
|
|
77
|
+
}
|
|
78
|
+
decorate(context) {
|
|
79
|
+
this._impl.doDecorate(context);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/** @internal */
|
|
83
|
+
class AccuDrawShortcutViewTool extends ViewTool {
|
|
84
|
+
_impl;
|
|
85
|
+
constructor(_impl) {
|
|
86
|
+
super();
|
|
87
|
+
this._impl = _impl;
|
|
88
|
+
}
|
|
89
|
+
async onPostInstall() {
|
|
90
|
+
await super.onPostInstall();
|
|
91
|
+
this._impl.doPostInstall();
|
|
92
|
+
IModelApp.locateManager.initLocateOptions();
|
|
93
|
+
this.changeLocateState(false, true, undefined, CoordinateLockOverrides.None);
|
|
94
|
+
this._impl.doManipulation(undefined, true);
|
|
95
|
+
}
|
|
96
|
+
async onCleanup() {
|
|
97
|
+
const flags = this._impl.doCleanup();
|
|
98
|
+
if (undefined !== flags)
|
|
99
|
+
IModelApp.accuDraw.savedStateViewTool.ignoreFlags = flags;
|
|
100
|
+
return super.onCleanup();
|
|
101
|
+
}
|
|
102
|
+
async exitTool() {
|
|
103
|
+
await super.exitTool();
|
|
104
|
+
IModelApp.accuDraw.requestInputFocus(); // re-grab focus when auto-focus tool setting set...
|
|
105
|
+
}
|
|
106
|
+
async onDataButtonDown(ev) {
|
|
107
|
+
if (this._impl.doDataButtonDown(ev))
|
|
108
|
+
await this.exitTool();
|
|
109
|
+
return EventHandled.No;
|
|
110
|
+
}
|
|
111
|
+
async onUnsuspend() {
|
|
112
|
+
this._impl.doUnsuspend();
|
|
113
|
+
}
|
|
114
|
+
async onMouseMotion(ev) {
|
|
115
|
+
this._impl.doManipulation(ev, true);
|
|
116
|
+
}
|
|
117
|
+
decorate(context) {
|
|
118
|
+
this._impl.doDecorate(context);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/** @internal */
|
|
122
|
+
export class AccuDrawShortcutTool extends Tool {
|
|
123
|
+
get useViewTool() {
|
|
124
|
+
// Support interactive shortcut when another InputCollector is active (ex. EditManipulator.HandleTool)...
|
|
125
|
+
return IModelApp.toolAdmin.activeTool instanceof InputCollector;
|
|
126
|
+
}
|
|
127
|
+
async run(..._args) {
|
|
128
|
+
const impl = this.createImplementation();
|
|
129
|
+
if (impl.doProcessImmediate())
|
|
130
|
+
return true; // Only install interactive tool when additional user input is required...
|
|
131
|
+
return this.useViewTool ? new AccuDrawShortcutViewTool(impl).run() : new AccuDrawShortcutInputCollector(impl).run();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=AccuDrawShortcutTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccuDrawShortcutTool.js","sourceRoot":"","sources":["../../../src/tools/AccuDrawShortcutTool.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { AccuDrawFlags } from \"../AccuDraw\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { DecorateContext } from \"../ViewContext\";\r\nimport { BeButtonEvent, CoordinateLockOverrides, EventHandled, InputCollector, Tool } from \"./Tool\";\r\nimport { ViewTool } from \"./ViewTool\";\r\n\r\n/** @internal */\r\nexport abstract class AccuDrawShortcutImplementation {\r\n protected _complete = false;\r\n\r\n protected get allowShortcut(): boolean { return true; }\r\n protected get wantAdditionalInput(): boolean { return true; } // Whether additional input is required from user...\r\n\r\n protected onInitialize(): void { }\r\n protected onComplete(): AccuDrawFlags { return AccuDrawFlags.SetRMatrix; }\r\n protected onProvideToolAssistance(): void { }\r\n\r\n public doDecorate(_context: DecorateContext): void { }\r\n public abstract doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;\r\n\r\n public doDataButtonDown(ev: BeButtonEvent): boolean {\r\n return (this._complete = this.doManipulation(ev, false));\r\n }\r\n\r\n public doUnsuspend(): void {\r\n this.onProvideToolAssistance();\r\n }\r\n\r\n public doPostInstall(): void {\r\n this.onInitialize();\r\n this.onProvideToolAssistance();\r\n }\r\n\r\n public doCleanup(): AccuDrawFlags | undefined {\r\n return this._complete ? this.onComplete() : undefined;\r\n }\r\n\r\n public doProcessImmediate(): boolean {\r\n if (!this.allowShortcut)\r\n return true;\r\n\r\n if (this.wantAdditionalInput)\r\n return false;\r\n\r\n this.onInitialize();\r\n return this.doManipulation(undefined, false);\r\n }\r\n}\r\n\r\n/** @internal */\r\nclass AccuDrawShortcutInputCollector extends InputCollector {\r\n public constructor(private readonly _impl: AccuDrawShortcutImplementation) {\r\n super();\r\n }\r\n\r\n public override async onPostInstall(): Promise<void> {\r\n await super.onPostInstall();\r\n this._impl.doPostInstall();\r\n\r\n IModelApp.locateManager.initLocateOptions();\r\n this.changeLocateState(false, true, undefined, CoordinateLockOverrides.None);\r\n this._impl.doManipulation(undefined, true);\r\n }\r\n\r\n public override async onCleanup(): Promise<void> {\r\n const flags = this._impl.doCleanup();\r\n if (undefined !== flags)\r\n IModelApp.accuDraw.savedStateInputCollector.ignoreFlags = flags;\r\n return super.onCleanup();\r\n }\r\n\r\n public override async exitTool(): Promise<void> {\r\n await super.exitTool();\r\n IModelApp.accuDraw.requestInputFocus(); // re-grab focus when auto-focus tool setting set...\r\n }\r\n\r\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (this._impl.doDataButtonDown(ev))\r\n await this.exitTool();\r\n return EventHandled.No;\r\n }\r\n\r\n public override async onUnsuspend(): Promise<void> {\r\n this._impl.doUnsuspend();\r\n }\r\n\r\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\r\n this._impl.doManipulation(ev, true);\r\n }\r\n\r\n public override decorate(context: DecorateContext): void {\r\n this._impl.doDecorate(context);\r\n }\r\n}\r\n\r\n/** @internal */\r\nclass AccuDrawShortcutViewTool extends ViewTool {\r\n public constructor(private readonly _impl: AccuDrawShortcutImplementation) {\r\n super();\r\n }\r\n\r\n public override async onPostInstall(): Promise<void> {\r\n await super.onPostInstall();\r\n this._impl.doPostInstall();\r\n\r\n IModelApp.locateManager.initLocateOptions();\r\n this.changeLocateState(false, true, undefined, CoordinateLockOverrides.None);\r\n this._impl.doManipulation(undefined, true);\r\n }\r\n\r\n public override async onCleanup(): Promise<void> {\r\n const flags = this._impl.doCleanup();\r\n if (undefined !== flags)\r\n IModelApp.accuDraw.savedStateViewTool.ignoreFlags = flags;\r\n return super.onCleanup();\r\n }\r\n\r\n public override async exitTool(): Promise<void> {\r\n await super.exitTool();\r\n IModelApp.accuDraw.requestInputFocus(); // re-grab focus when auto-focus tool setting set...\r\n }\r\n\r\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (this._impl.doDataButtonDown(ev))\r\n await this.exitTool();\r\n return EventHandled.No;\r\n }\r\n\r\n public override async onUnsuspend(): Promise<void> {\r\n this._impl.doUnsuspend();\r\n }\r\n\r\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\r\n this._impl.doManipulation(ev, true);\r\n }\r\n\r\n public override decorate(context: DecorateContext): void {\r\n this._impl.doDecorate(context);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport abstract class AccuDrawShortcutTool extends Tool {\r\n protected abstract createImplementation(): AccuDrawShortcutImplementation;\r\n\r\n protected get useViewTool(): boolean {\r\n // Support interactive shortcut when another InputCollector is active (ex. EditManipulator.HandleTool)...\r\n return IModelApp.toolAdmin.activeTool instanceof InputCollector;\r\n }\r\n\r\n public override async run(..._args: any[]): Promise<boolean> {\r\n const impl = this.createImplementation();\r\n if (impl.doProcessImmediate())\r\n return true; // Only install interactive tool when additional user input is required...\r\n\r\n return this.useViewTool ? new AccuDrawShortcutViewTool(impl).run() : new AccuDrawShortcutInputCollector(impl).run();\r\n }\r\n}"]}
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { BentleyStatus } from "@itwin/core-bentley";
|
|
5
5
|
import { Point3d } from "@itwin/core-geometry";
|
|
6
|
-
import {
|
|
6
|
+
import { ItemField, RotationMode } from "../AccuDraw";
|
|
7
7
|
import { AuxCoordSystemState } from "../AuxCoordSys";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { BeButtonEvent, EventHandled, InputCollector, Tool } from "./Tool";
|
|
8
|
+
import { Viewport } from "../Viewport";
|
|
9
|
+
import { Tool } from "./Tool";
|
|
10
|
+
import { AccuDrawShortcutImplementation, AccuDrawShortcutTool } from "./AccuDrawShortcutTool";
|
|
12
11
|
/**
|
|
13
12
|
* 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.
|
|
14
13
|
* A tool implementor should not use this class to setup AccuDraw, instead use AccuDrawHintBuilder to provide hints.
|
|
@@ -151,86 +150,32 @@ export declare class AccuDrawRotate90AboutZTool extends Tool {
|
|
|
151
150
|
static toolId: string;
|
|
152
151
|
run(): Promise<boolean>;
|
|
153
152
|
}
|
|
154
|
-
/** @
|
|
155
|
-
declare
|
|
156
|
-
private _complete;
|
|
157
|
-
protected get allowShortcut(): boolean;
|
|
158
|
-
protected get wantActivateOnStart(): boolean;
|
|
159
|
-
protected get wantClearSnapOnStart(): boolean;
|
|
160
|
-
protected get wantManipulationImmediate(): boolean;
|
|
161
|
-
protected get wantExitOnDataButtonUp(): boolean;
|
|
162
|
-
onInstall(): Promise<boolean>;
|
|
163
|
-
onPostInstall(): Promise<void>;
|
|
164
|
-
onCleanup(): Promise<void>;
|
|
165
|
-
exitTool(): Promise<void>;
|
|
166
|
-
onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled>;
|
|
167
|
-
onDataButtonUp(_ev: BeButtonEvent): Promise<EventHandled>;
|
|
168
|
-
onMouseMotion(ev: BeButtonEvent): Promise<void>;
|
|
169
|
-
protected onManipulationStart(): void;
|
|
170
|
-
protected onManipulationComplete(): AccuDrawFlags;
|
|
171
|
-
protected abstract doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;
|
|
172
|
-
}
|
|
173
|
-
/** @beta */
|
|
174
|
-
export declare class AccuDrawRotateAxesTool extends AccuDrawShortcutsTool {
|
|
153
|
+
/** @beta */
|
|
154
|
+
export declare class AccuDrawRotateAxesTool extends AccuDrawShortcutTool {
|
|
175
155
|
aboutCurrentZ: boolean;
|
|
176
156
|
static toolId: string;
|
|
177
157
|
static get maxArgs(): number;
|
|
178
158
|
constructor(aboutCurrentZ?: boolean);
|
|
179
159
|
/** @internal */
|
|
180
|
-
protected
|
|
181
|
-
/** @internal */
|
|
182
|
-
protected get wantActivateOnStart(): boolean;
|
|
183
|
-
/** @internal */
|
|
184
|
-
protected get wantManipulationImmediate(): boolean;
|
|
185
|
-
/** @internal */
|
|
186
|
-
protected onManipulationStart(): void;
|
|
187
|
-
/** @internal */
|
|
188
|
-
protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;
|
|
160
|
+
protected createImplementation(): AccuDrawShortcutImplementation;
|
|
189
161
|
parseAndRun(...args: any[]): Promise<boolean>;
|
|
190
162
|
}
|
|
191
163
|
/** @beta */
|
|
192
|
-
export declare class AccuDrawRotateElementTool extends
|
|
164
|
+
export declare class AccuDrawRotateElementTool extends AccuDrawShortcutTool {
|
|
193
165
|
static toolId: string;
|
|
194
|
-
private _moveOrigin;
|
|
195
|
-
/** @internal */
|
|
196
|
-
protected get wantActivateOnStart(): boolean;
|
|
197
|
-
/** @internal */
|
|
198
|
-
protected get wantManipulationImmediate(): boolean;
|
|
199
|
-
/** @internal */
|
|
200
|
-
protected onManipulationStart(): void;
|
|
201
166
|
/** @internal */
|
|
202
|
-
protected
|
|
203
|
-
/** @internal */
|
|
204
|
-
protected updateOrientation(snap: SnapDetail, viewport: ScreenViewport, _isMotion: boolean): boolean;
|
|
205
|
-
/** @internal */
|
|
206
|
-
protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;
|
|
167
|
+
protected createImplementation(): AccuDrawShortcutImplementation;
|
|
207
168
|
}
|
|
208
169
|
/** @beta */
|
|
209
|
-
export declare class DefineACSByElementTool extends
|
|
170
|
+
export declare class DefineACSByElementTool extends AccuDrawShortcutTool {
|
|
210
171
|
static toolId: string;
|
|
211
|
-
private _origin;
|
|
212
|
-
private _rMatrix;
|
|
213
|
-
private _acs?;
|
|
214
|
-
/** @internal */
|
|
215
|
-
protected onManipulationStart(): void;
|
|
216
|
-
/** @internal */
|
|
217
|
-
protected updateOrientation(snap: SnapDetail, vp: Viewport): boolean;
|
|
218
172
|
/** @internal */
|
|
219
|
-
protected
|
|
220
|
-
/** @internal */
|
|
221
|
-
decorate(context: DecorateContext): void;
|
|
173
|
+
protected createImplementation(): AccuDrawShortcutImplementation;
|
|
222
174
|
}
|
|
223
175
|
/** @beta */
|
|
224
|
-
export declare class DefineACSByPointsTool extends
|
|
176
|
+
export declare class DefineACSByPointsTool extends AccuDrawShortcutTool {
|
|
225
177
|
static toolId: string;
|
|
226
|
-
private readonly _points;
|
|
227
|
-
private _acs?;
|
|
228
|
-
/** @internal */
|
|
229
|
-
protected onManipulationStart(): void;
|
|
230
|
-
/** @internal */
|
|
231
|
-
protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;
|
|
232
178
|
/** @internal */
|
|
233
|
-
|
|
179
|
+
protected createImplementation(): AccuDrawShortcutImplementation;
|
|
234
180
|
}
|
|
235
|
-
export {};
|
|
236
181
|
//# sourceMappingURL=AccuDrawTool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccuDrawTool.d.ts","sourceRoot":"","sources":["../../../src/tools/AccuDrawTool.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAsB,OAAO,EAAuB,MAAM,sBAAsB,CAAC;AACxF,OAAO,
|
|
1
|
+
{"version":3,"file":"AccuDrawTool.d.ts","sourceRoot":"","sources":["../../../src/tools/AccuDrawTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,8 @@ import { AccuDraw, AccuDrawFlags, CompassMode, ContextMode, ItemField, KeyinStat
|
|
|
11
11
|
import { TentativeOrAccuSnap } from "../AccuSnap";
|
|
12
12
|
import { ACSDisplayOptions } from "../AuxCoordSys";
|
|
13
13
|
import { IModelApp } from "../IModelApp";
|
|
14
|
-
import { BeButtonEvent,
|
|
14
|
+
import { BeButtonEvent, CoreTools, Tool } from "./Tool";
|
|
15
|
+
import { AccuDrawShortcutImplementation, AccuDrawShortcutTool } from "./AccuDrawShortcutTool";
|
|
15
16
|
// cSpell:ignore dont unlockedz
|
|
16
17
|
function normalizedDifference(point1, point2, out) {
|
|
17
18
|
return point2.vectorTo(point1).normalizeWithLength(out).mag;
|
|
@@ -129,13 +130,11 @@ export class AccuDrawShortcuts {
|
|
|
129
130
|
}
|
|
130
131
|
return accept;
|
|
131
132
|
}
|
|
132
|
-
static processPendingHints() {
|
|
133
|
+
static processPendingHints() {
|
|
134
|
+
IModelApp.accuDraw.processHints();
|
|
135
|
+
}
|
|
133
136
|
static requestInputFocus() {
|
|
134
|
-
|
|
135
|
-
if (!accudraw.isEnabled)
|
|
136
|
-
return;
|
|
137
|
-
accudraw.grabInputFocus();
|
|
138
|
-
accudraw.refreshDecorationsAndDynamics();
|
|
137
|
+
IModelApp.accuDraw.requestInputFocus();
|
|
139
138
|
}
|
|
140
139
|
// Helper method for GUI implementation...
|
|
141
140
|
static async itemFieldNavigate(index, str, forward) {
|
|
@@ -979,99 +978,34 @@ export class AccuDrawRotate90AboutZTool extends Tool {
|
|
|
979
978
|
}
|
|
980
979
|
}
|
|
981
980
|
/** @internal */
|
|
982
|
-
class
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
get wantActivateOnStart() { return false; } // Whether to automatically enable AccuDraw before the 1st data button...
|
|
986
|
-
get wantClearSnapOnStart() { return false; } // Whether to preserve active Tentative/AccuSnap on install...
|
|
987
|
-
get wantManipulationImmediate() { return false; } // Whether additional input is required to process on install...
|
|
988
|
-
get wantExitOnDataButtonUp() { return false; } // Whether to exit on button up instead of down...
|
|
989
|
-
async onInstall() {
|
|
990
|
-
if (!this.allowShortcut)
|
|
991
|
-
return false;
|
|
992
|
-
return super.onInstall();
|
|
993
|
-
}
|
|
994
|
-
async onPostInstall() {
|
|
995
|
-
await super.onPostInstall();
|
|
996
|
-
if (this.wantActivateOnStart)
|
|
997
|
-
IModelApp.accuDraw.activate();
|
|
998
|
-
this.onManipulationStart();
|
|
999
|
-
if (this.wantManipulationImmediate && this.doManipulation(undefined, false)) {
|
|
1000
|
-
this._complete = true;
|
|
1001
|
-
return this.exitTool();
|
|
1002
|
-
}
|
|
1003
|
-
// NOTE: InputCollector inherits suspended primitive's state, set everything...
|
|
1004
|
-
if (this.wantClearSnapOnStart) {
|
|
1005
|
-
this.initLocateElements(false, true, undefined, CoordinateLockOverrides.None); // This clears the active Tentative/AccuSnap, some shortcuts have special behavior when invoked with an active snap...
|
|
1006
|
-
}
|
|
1007
|
-
else {
|
|
1008
|
-
IModelApp.locateManager.initLocateOptions();
|
|
1009
|
-
this.changeLocateState(false, true, undefined, CoordinateLockOverrides.None);
|
|
1010
|
-
}
|
|
1011
|
-
this.doManipulation(undefined, true);
|
|
1012
|
-
;
|
|
1013
|
-
}
|
|
1014
|
-
async onCleanup() {
|
|
1015
|
-
if (this._complete)
|
|
1016
|
-
IModelApp.accuDraw.savedStateInputCollector.ignoreFlags = this.onManipulationComplete();
|
|
1017
|
-
}
|
|
1018
|
-
async exitTool() {
|
|
1019
|
-
await super.exitTool();
|
|
1020
|
-
AccuDrawShortcuts.requestInputFocus(); // re-grab focus when auto-focus tool setting set...
|
|
1021
|
-
}
|
|
1022
|
-
async onDataButtonDown(ev) {
|
|
1023
|
-
if (this.doManipulation(ev, false)) {
|
|
1024
|
-
this._complete = true;
|
|
1025
|
-
if (!this.wantExitOnDataButtonUp)
|
|
1026
|
-
await this.exitTool();
|
|
1027
|
-
}
|
|
1028
|
-
return EventHandled.No;
|
|
1029
|
-
}
|
|
1030
|
-
async onDataButtonUp(_ev) {
|
|
1031
|
-
if (this._complete && this.wantExitOnDataButtonUp)
|
|
1032
|
-
await this.exitTool();
|
|
1033
|
-
return EventHandled.No;
|
|
1034
|
-
}
|
|
1035
|
-
async onMouseMotion(ev) {
|
|
1036
|
-
this.doManipulation(ev, true);
|
|
1037
|
-
}
|
|
1038
|
-
onManipulationStart() { }
|
|
1039
|
-
onManipulationComplete() { return AccuDrawFlags.SetRMatrix; }
|
|
1040
|
-
}
|
|
1041
|
-
/** @beta */
|
|
1042
|
-
export class AccuDrawRotateAxesTool extends AccuDrawShortcutsTool {
|
|
1043
|
-
aboutCurrentZ;
|
|
1044
|
-
static toolId = "AccuDraw.RotateAxes";
|
|
1045
|
-
static get maxArgs() { return 1; }
|
|
1046
|
-
constructor(aboutCurrentZ = true) {
|
|
981
|
+
class RotateAxesImplementation extends AccuDrawShortcutImplementation {
|
|
982
|
+
_aboutCurrentZ;
|
|
983
|
+
constructor(_aboutCurrentZ) {
|
|
1047
984
|
super();
|
|
1048
|
-
this.
|
|
985
|
+
this._aboutCurrentZ = _aboutCurrentZ;
|
|
1049
986
|
}
|
|
1050
|
-
/** @internal */
|
|
1051
987
|
get allowShortcut() { return IModelApp.accuDraw.isActive; } // Require compass to already be active for this shortcut...
|
|
1052
|
-
|
|
1053
|
-
get wantActivateOnStart() { return true; } // State is demoted to inactive when a tool install, still need this...
|
|
1054
|
-
/** @internal */
|
|
1055
|
-
get wantManipulationImmediate() {
|
|
988
|
+
get wantAdditionalInput() {
|
|
1056
989
|
if (TentativeOrAccuSnap.isHot)
|
|
1057
|
-
return
|
|
990
|
+
return false;
|
|
1058
991
|
const accudraw = IModelApp.accuDraw;
|
|
1059
992
|
if (CompassMode.Polar === accudraw.compassMode)
|
|
1060
|
-
return accudraw.getFieldLock(ItemField.ANGLE_Item);
|
|
1061
|
-
return accudraw.getFieldLock(ItemField.X_Item) && accudraw.getFieldLock(ItemField.Y_Item);
|
|
993
|
+
return !accudraw.getFieldLock(ItemField.ANGLE_Item);
|
|
994
|
+
return !(accudraw.getFieldLock(ItemField.X_Item) && accudraw.getFieldLock(ItemField.Y_Item));
|
|
1062
995
|
}
|
|
1063
|
-
|
|
1064
|
-
onManipulationStart() {
|
|
1065
|
-
if (this.aboutCurrentZ)
|
|
1066
|
-
IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Establish current orientation as base for when defining compass rotation by x axis...
|
|
996
|
+
onProvideToolAssistance() {
|
|
1067
997
|
CoreTools.outputPromptByKey("AccuDraw.RotateAxes.Prompts.FirstPoint");
|
|
1068
998
|
}
|
|
1069
|
-
|
|
999
|
+
onInitialize() {
|
|
1000
|
+
IModelApp.accuDraw.activate(); // State demoted to inactive by tool install...
|
|
1001
|
+
if (this._aboutCurrentZ)
|
|
1002
|
+
IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Establish current orientation as base for when defining compass rotation by x axis...
|
|
1003
|
+
}
|
|
1070
1004
|
doManipulation(ev, isMotion) {
|
|
1071
1005
|
const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;
|
|
1072
1006
|
if (!vp)
|
|
1073
1007
|
return false;
|
|
1074
|
-
if (!AccuDrawShortcuts.rotateAxesByPoint(TentativeOrAccuSnap.isHot, this.
|
|
1008
|
+
if (!AccuDrawShortcuts.rotateAxesByPoint(TentativeOrAccuSnap.isHot, this._aboutCurrentZ))
|
|
1075
1009
|
return false;
|
|
1076
1010
|
vp.invalidateDecorations();
|
|
1077
1011
|
if (!isMotion) {
|
|
@@ -1080,36 +1014,47 @@ export class AccuDrawRotateAxesTool extends AccuDrawShortcutsTool {
|
|
|
1080
1014
|
}
|
|
1081
1015
|
return true;
|
|
1082
1016
|
}
|
|
1017
|
+
}
|
|
1018
|
+
/** @beta */
|
|
1019
|
+
export class AccuDrawRotateAxesTool extends AccuDrawShortcutTool {
|
|
1020
|
+
aboutCurrentZ;
|
|
1021
|
+
static toolId = "AccuDraw.RotateAxes";
|
|
1022
|
+
static get maxArgs() { return 1; }
|
|
1023
|
+
constructor(aboutCurrentZ = true) {
|
|
1024
|
+
super();
|
|
1025
|
+
this.aboutCurrentZ = aboutCurrentZ;
|
|
1026
|
+
}
|
|
1027
|
+
/** @internal */
|
|
1028
|
+
createImplementation() {
|
|
1029
|
+
return new RotateAxesImplementation(this.aboutCurrentZ);
|
|
1030
|
+
}
|
|
1083
1031
|
async parseAndRun(...args) {
|
|
1084
1032
|
for (const arg of args) {
|
|
1085
1033
|
if (arg.toLowerCase() === "unlockedz")
|
|
1086
1034
|
this.aboutCurrentZ = false;
|
|
1087
1035
|
}
|
|
1088
|
-
return this.run(
|
|
1036
|
+
return this.run();
|
|
1089
1037
|
}
|
|
1090
1038
|
}
|
|
1091
|
-
/** @
|
|
1092
|
-
|
|
1093
|
-
static toolId = "AccuDraw.RotateElement";
|
|
1039
|
+
/** @internal */
|
|
1040
|
+
class RotateElementImplementation extends AccuDrawShortcutImplementation {
|
|
1094
1041
|
_moveOrigin = !IModelApp.accuDraw.isActive || IModelApp.tentativePoint.isActive; // Preserve current origin if AccuDraw already active and not tentative snap...
|
|
1095
|
-
|
|
1096
|
-
get
|
|
1097
|
-
|
|
1098
|
-
get wantManipulationImmediate() { return IModelApp.tentativePoint.isSnapped; }
|
|
1099
|
-
/** @internal */
|
|
1100
|
-
onManipulationStart() {
|
|
1101
|
-
IModelApp.accuDraw.setContext(AccuDrawFlags.FixedOrigin); // Don't move compass when updateOrientation returns false...
|
|
1042
|
+
get allowShortcut() { return IModelApp.accuDraw.isEnabled; } // Require AccuDraw to be enabled by the application for this shortcut...
|
|
1043
|
+
get wantAdditionalInput() { return !IModelApp.tentativePoint.isSnapped; }
|
|
1044
|
+
onProvideToolAssistance() {
|
|
1102
1045
|
CoreTools.outputPromptByKey("AccuDraw.RotateElement.Prompts.FirstPoint");
|
|
1103
1046
|
}
|
|
1104
|
-
|
|
1105
|
-
|
|
1047
|
+
onInitialize() {
|
|
1048
|
+
IModelApp.accuDraw.activate();
|
|
1049
|
+
IModelApp.accuDraw.setContext(AccuDrawFlags.FixedOrigin); // Don't move compass when updateOrientation returns false...
|
|
1050
|
+
}
|
|
1051
|
+
onComplete() {
|
|
1106
1052
|
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...
|
|
1107
1053
|
if (this._moveOrigin)
|
|
1108
1054
|
ignoreFlags |= AccuDrawFlags.SetOrigin;
|
|
1109
1055
|
return ignoreFlags;
|
|
1110
1056
|
}
|
|
1111
|
-
|
|
1112
|
-
updateOrientation(snap, viewport, _isMotion) {
|
|
1057
|
+
updateOrientation(snap, viewport) {
|
|
1113
1058
|
const accudraw = IModelApp.accuDraw;
|
|
1114
1059
|
const rMatrix = AccuDraw.getSnapRotation(snap, viewport);
|
|
1115
1060
|
if (undefined === rMatrix)
|
|
@@ -1118,30 +1063,39 @@ export class AccuDrawRotateElementTool extends AccuDrawShortcutsTool {
|
|
|
1118
1063
|
accudraw.setContext(AccuDrawFlags.SetRMatrix | AccuDrawFlags.AlwaysSetOrigin, point, rMatrix);
|
|
1119
1064
|
return true;
|
|
1120
1065
|
}
|
|
1121
|
-
/** @internal */
|
|
1122
1066
|
doManipulation(ev, isMotion) {
|
|
1123
1067
|
const viewport = ev ? ev.viewport : IModelApp.accuDraw.currentView;
|
|
1124
1068
|
if (!viewport)
|
|
1125
1069
|
return false;
|
|
1126
1070
|
const snap = TentativeOrAccuSnap.getCurrentSnap(false);
|
|
1127
|
-
if (undefined === snap || !this.updateOrientation(snap, viewport
|
|
1071
|
+
if (undefined === snap || !this.updateOrientation(snap, viewport))
|
|
1128
1072
|
return false;
|
|
1129
1073
|
if (undefined === ev)
|
|
1130
1074
|
AccuDrawShortcuts.processPendingHints(); // Would normally be processed after button down, necessary when called from post install...
|
|
1075
|
+
const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;
|
|
1076
|
+
if (vp)
|
|
1077
|
+
vp.invalidateDecorations();
|
|
1131
1078
|
if (!isMotion)
|
|
1132
1079
|
IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Hold temporary rotation for tool duration...
|
|
1133
1080
|
return true;
|
|
1134
1081
|
}
|
|
1135
1082
|
}
|
|
1136
1083
|
/** @beta */
|
|
1137
|
-
export class
|
|
1138
|
-
static toolId = "AccuDraw.
|
|
1084
|
+
export class AccuDrawRotateElementTool extends AccuDrawShortcutTool {
|
|
1085
|
+
static toolId = "AccuDraw.RotateElement";
|
|
1086
|
+
/** @internal */
|
|
1087
|
+
createImplementation() {
|
|
1088
|
+
return new RotateElementImplementation();
|
|
1089
|
+
}
|
|
1090
|
+
}
|
|
1091
|
+
/** @internal */
|
|
1092
|
+
class DefineACSByElementImplementation extends AccuDrawShortcutImplementation {
|
|
1139
1093
|
_origin = Point3d.create();
|
|
1140
1094
|
_rMatrix = Matrix3d.createIdentity();
|
|
1141
1095
|
_acs;
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1096
|
+
onProvideToolAssistance() {
|
|
1097
|
+
CoreTools.outputPromptByKey("AccuDraw.DefineACSByElement.Prompts.FirstPoint");
|
|
1098
|
+
}
|
|
1145
1099
|
updateOrientation(snap, vp) {
|
|
1146
1100
|
const rMatrix = AccuDraw.getSnapRotation(snap, vp);
|
|
1147
1101
|
if (undefined === rMatrix)
|
|
@@ -1150,7 +1104,6 @@ export class DefineACSByElementTool extends AccuDrawShortcutsTool {
|
|
|
1150
1104
|
this._rMatrix = rMatrix;
|
|
1151
1105
|
return true;
|
|
1152
1106
|
}
|
|
1153
|
-
/** @internal */
|
|
1154
1107
|
doManipulation(ev, isMotion) {
|
|
1155
1108
|
const vp = ev ? ev.viewport : undefined;
|
|
1156
1109
|
if (!vp)
|
|
@@ -1169,8 +1122,7 @@ export class DefineACSByElementTool extends AccuDrawShortcutsTool {
|
|
|
1169
1122
|
AccuDrawShortcuts.rotateToACS();
|
|
1170
1123
|
return true;
|
|
1171
1124
|
}
|
|
1172
|
-
|
|
1173
|
-
decorate(context) {
|
|
1125
|
+
doDecorate(context) {
|
|
1174
1126
|
const vp = context.viewport;
|
|
1175
1127
|
if (!this._acs)
|
|
1176
1128
|
this._acs = vp.view.auxiliaryCoordinateSystem.clone();
|
|
@@ -1180,23 +1132,38 @@ export class DefineACSByElementTool extends AccuDrawShortcutsTool {
|
|
|
1180
1132
|
}
|
|
1181
1133
|
}
|
|
1182
1134
|
/** @beta */
|
|
1183
|
-
export class
|
|
1184
|
-
static toolId = "AccuDraw.
|
|
1135
|
+
export class DefineACSByElementTool extends AccuDrawShortcutTool {
|
|
1136
|
+
static toolId = "AccuDraw.DefineACSByElement";
|
|
1137
|
+
/** @internal */
|
|
1138
|
+
createImplementation() {
|
|
1139
|
+
return new DefineACSByElementImplementation();
|
|
1140
|
+
}
|
|
1141
|
+
}
|
|
1142
|
+
/** @internal */
|
|
1143
|
+
class DefineACSByPointsImplementation extends AccuDrawShortcutImplementation {
|
|
1185
1144
|
_points = [];
|
|
1186
1145
|
_acs;
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1146
|
+
_origin = IModelApp.tentativePoint.isActive ? IModelApp.tentativePoint.getPoint().clone() : undefined;
|
|
1147
|
+
onProvideToolAssistance() {
|
|
1148
|
+
switch (this._points.length) {
|
|
1149
|
+
case 0:
|
|
1150
|
+
CoreTools.outputPromptByKey("AccuDraw.DefineACSByPoints.Prompts.FirstPoint");
|
|
1151
|
+
break;
|
|
1152
|
+
case 1:
|
|
1153
|
+
CoreTools.outputPromptByKey("AccuDraw.DefineACSByPoints.Prompts.SecondPoint");
|
|
1154
|
+
break;
|
|
1155
|
+
default:
|
|
1156
|
+
CoreTools.outputPromptByKey("AccuDraw.DefineACSByPoints.Prompts.NextPoint");
|
|
1157
|
+
break;
|
|
1192
1158
|
}
|
|
1193
|
-
const origin = IModelApp.tentativePoint.getPoint().clone();
|
|
1194
|
-
CoreTools.outputPromptByKey("AccuDraw.DefineACSByPoints.Prompts.SecondPoint");
|
|
1195
|
-
IModelApp.accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.FixedOrigin, origin);
|
|
1196
|
-
this._points.push(origin);
|
|
1197
|
-
IModelApp.tentativePoint.clear(true);
|
|
1198
1159
|
}
|
|
1199
|
-
|
|
1160
|
+
onInitialize() {
|
|
1161
|
+
if (undefined === this._origin)
|
|
1162
|
+
return;
|
|
1163
|
+
IModelApp.accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.FixedOrigin, this._origin);
|
|
1164
|
+
this._points.push(this._origin);
|
|
1165
|
+
IModelApp.tentativePoint.clear(true); // Necessary when installed as an InputCollector...
|
|
1166
|
+
}
|
|
1200
1167
|
doManipulation(ev, isMotion) {
|
|
1201
1168
|
if (!ev || !ev.viewport)
|
|
1202
1169
|
return false;
|
|
@@ -1213,11 +1180,10 @@ export class DefineACSByPointsTool extends AccuDrawShortcutsTool {
|
|
|
1213
1180
|
AccuDrawShortcuts.rotateToACS();
|
|
1214
1181
|
return true;
|
|
1215
1182
|
}
|
|
1216
|
-
|
|
1183
|
+
this.onProvideToolAssistance();
|
|
1217
1184
|
return false;
|
|
1218
1185
|
}
|
|
1219
|
-
|
|
1220
|
-
decorate(context) {
|
|
1186
|
+
doDecorate(context) {
|
|
1221
1187
|
const tmpPoints = [];
|
|
1222
1188
|
this._points.forEach((pt) => tmpPoints.push(pt));
|
|
1223
1189
|
const ev = new BeButtonEvent();
|
|
@@ -1230,4 +1196,12 @@ export class DefineACSByPointsTool extends AccuDrawShortcutsTool {
|
|
|
1230
1196
|
this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);
|
|
1231
1197
|
}
|
|
1232
1198
|
}
|
|
1199
|
+
/** @beta */
|
|
1200
|
+
export class DefineACSByPointsTool extends AccuDrawShortcutTool {
|
|
1201
|
+
static toolId = "AccuDraw.DefineACSByPoints";
|
|
1202
|
+
/** @internal */
|
|
1203
|
+
createImplementation() {
|
|
1204
|
+
return new DefineACSByPointsImplementation();
|
|
1205
|
+
}
|
|
1206
|
+
}
|
|
1233
1207
|
//# sourceMappingURL=AccuDrawTool.js.map
|