@itwin/core-frontend 4.9.0-dev.9 → 4.10.0-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -1
- package/lib/cjs/AccuDraw.d.ts +7 -0
- package/lib/cjs/AccuDraw.d.ts.map +1 -1
- package/lib/cjs/AccuDraw.js +16 -8
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/PlanarClipMaskState.d.ts +2 -3
- package/lib/cjs/PlanarClipMaskState.d.ts.map +1 -1
- package/lib/cjs/PlanarClipMaskState.js +7 -7
- package/lib/cjs/PlanarClipMaskState.js.map +1 -1
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -1
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js +18 -35
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.js +3 -3
- package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/PlanarClassification.js +1 -1
- package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/tile/RenderGraphicTileTree.d.ts +2 -0
- package/lib/cjs/tile/RenderGraphicTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RenderGraphicTileTree.js +2 -0
- package/lib/cjs/tile/RenderGraphicTileTree.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +13 -5
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +13 -5
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +5 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js +5 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +1 -1
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.d.ts +34 -22
- package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.js +151 -88
- package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
- package/lib/esm/AccuDraw.d.ts +7 -0
- package/lib/esm/AccuDraw.d.ts.map +1 -1
- package/lib/esm/AccuDraw.js +16 -8
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/PlanarClipMaskState.d.ts +2 -3
- package/lib/esm/PlanarClipMaskState.d.ts.map +1 -1
- package/lib/esm/PlanarClipMaskState.js +7 -7
- package/lib/esm/PlanarClipMaskState.js.map +1 -1
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -1
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js +18 -35
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.js +3 -3
- package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/render/webgl/glsl/PlanarClassification.js +1 -1
- package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/tile/RenderGraphicTileTree.d.ts +2 -0
- package/lib/esm/tile/RenderGraphicTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RenderGraphicTileTree.js +2 -0
- package/lib/esm/tile/RenderGraphicTileTree.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +13 -5
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +13 -5
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +5 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js +5 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts +1 -1
- package/lib/esm/tile/map/MapTileTree.js +1 -1
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tools/AccuDrawTool.d.ts +34 -22
- package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/esm/tools/AccuDrawTool.js +151 -89
- package/lib/esm/tools/AccuDrawTool.js.map +1 -1
- package/lib/public/locales/en/CoreTools.json +5 -0
- package/lib/public/scripts/parse-imdl-worker.js +1 -1
- package/lib/workers/webpack/parse-imdl-worker.js +1 -1
- package/package.json +19 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccuDrawTool.js","sourceRoot":"","sources":["../../../src/tools/AccuDrawTool.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 { BentleyStatus } from \"@itwin/core-bentley\";\r\nimport { Geometry, Matrix3d, Point3d, Transform, Vector3d } from \"@itwin/core-geometry\";\r\nimport { AccuDraw, AccuDrawFlags, CompassMode, ContextMode, ItemField, KeyinStatus, LockedStates, RotationMode, ThreeAxes } from \"../AccuDraw\";\r\nimport { TentativeOrAccuSnap } from \"../AccuSnap\";\r\nimport { ACSDisplayOptions, AuxCoordSystemState } from \"../AuxCoordSys\";\r\nimport { SnapDetail } from \"../HitDetail\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { DecorateContext } from \"../ViewContext\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { BeButtonEvent, CoordinateLockOverrides, CoreTools, EventHandled, InputCollector, Tool } from \"./Tool\";\r\n\r\n// cSpell:ignore dont unlockedz\r\n\r\nfunction normalizedDifference(point1: Point3d, point2: Point3d, out: Vector3d): number {\r\n return point2.vectorTo(point1).normalizeWithLength(out).mag;\r\n}\r\n\r\nfunction normalizedCrossProduct(vec1: Vector3d, vec2: Vector3d, out: Vector3d): number {\r\n return vec1.crossProduct(vec2, out).normalizeWithLength(out).mag;\r\n}\r\n\r\n/**\r\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.\r\n * A tool implementor should not use this class to setup AccuDraw, instead use AccuDrawHintBuilder to provide hints.\r\n * @alpha\r\n */\r\nexport class AccuDrawShortcuts {\r\n /** Disable/Enable AccuDraw for the session */\r\n public static sessionToggle(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n\r\n if (accudraw.isEnabled)\r\n accudraw.disableForSession();\r\n else\r\n accudraw.enableForSession();\r\n }\r\n\r\n /** Suspend/Unsuspend AccuDraw for the active tool */\r\n public static suspendToggle(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.isActive)\r\n accudraw.deactivate();\r\n else\r\n accudraw.activate();\r\n\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static rotateAxesByPoint(isSnapped: boolean, aboutCurrentZ: boolean): boolean {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return false;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return false;\r\n\r\n const point = accudraw.point;\r\n if (!vp.view.is3d())\r\n point.z = 0.0;\r\n\r\n if (aboutCurrentZ)\r\n accudraw.hardConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\r\n else\r\n accudraw.softConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\r\n\r\n // Snap point and compass origin coincide...\r\n const xVec = new Vector3d();\r\n if (normalizedDifference(point, accudraw.planePt, xVec) < Geometry.smallAngleRadians)\r\n return false;\r\n\r\n accudraw.axes.x.setFrom(xVec);\r\n\r\n if (RotationMode.Context !== accudraw.rotationMode)\r\n accudraw.setRotationMode(RotationMode.Context);\r\n\r\n accudraw.flags.contextRotMode = ContextMode.XAxis;\r\n accudraw.flags.lockedRotation = false;\r\n\r\n accudraw.updateRotation();\r\n\r\n // Always want index line to display for x-Axis...changing rotation clears this...so it flashes...\r\n accudraw.indexed |= LockedStates.X_BM;\r\n return true;\r\n }\r\n\r\n public static updateACSByPoints(acs: AuxCoordSystemState, vp: Viewport, points: Point3d[], isDynamics: boolean): boolean {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return false;\r\n\r\n let accept = false;\r\n const vec = [new Vector3d(), new Vector3d(), new Vector3d()];\r\n acs.setOrigin(points[0]);\r\n switch (points.length) {\r\n case 1:\r\n acs.setRotation(vp.rotation);\r\n if (!isDynamics) {\r\n accudraw.published.origin.setFrom(points[0]);\r\n accudraw.published.flags = AccuDrawFlags.SetOrigin;\r\n accudraw.flags.fixedOrg = true;\r\n }\r\n break;\r\n\r\n case 2:\r\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001) {\r\n accept = true;\r\n break;\r\n }\r\n\r\n if (vp.view.is3d()) {\r\n if (normalizedCrossProduct(accudraw.axes.y, vec[0], vec[1]) < 0.00001) {\r\n vec[2].set(0.0, 0.0, 1.0);\r\n\r\n if (normalizedCrossProduct(vec[2], vec[0], vec[1]) < 0.00001) {\r\n vec[2].set(0.0, 1.0, 0.0);\r\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\r\n }\r\n }\r\n\r\n normalizedCrossProduct(vec[0], vec[1], vec[2]);\r\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\r\n\r\n if (!isDynamics) {\r\n accudraw.published.origin.setFrom(points[0]);\r\n accudraw.published.flags = AccuDrawFlags.SetOrigin | AccuDrawFlags.SetNormal;\r\n accudraw.published.vector.setFrom(vec[0]);\r\n }\r\n break;\r\n }\r\n\r\n vec[2].set(0.0, 0.0, 1.0);\r\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\r\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\r\n accept = true;\r\n break;\r\n\r\n case 3:\r\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001 ||\r\n normalizedDifference(points[2], points[0], vec[1]) < 0.00001 ||\r\n normalizedCrossProduct(vec[0], vec[1], vec[2]) < 0.00001) {\r\n accept = true;\r\n break;\r\n }\r\n\r\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\r\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\r\n accept = true;\r\n break;\r\n }\r\n\r\n return accept;\r\n }\r\n\r\n public static processPendingHints() { IModelApp.accuDraw.processHints(); }\r\n\r\n public static requestInputFocus() {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n accudraw.grabInputFocus();\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n // Helper method for GUI implementation...\r\n public static async itemFieldNavigate(index: ItemField, str: string, forward: boolean): Promise<void> {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.getFieldLock(index))\r\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\r\n\r\n if (!accudraw.isActive && KeyinStatus.Partial === accudraw.getKeyinStatus(index)) {\r\n await accudraw.processFieldInput(index, str, true);\r\n } else {\r\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\r\n accudraw.onFieldValueChange(index);\r\n }\r\n\r\n const vp = accudraw.currentView;\r\n const is3d = vp ? vp.view.is3d() : false;\r\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.ANGLE_Item);\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.DIST_Item);\r\n break;\r\n\r\n case ItemField.X_Item:\r\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.Y_Item);\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.X_Item);\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n index = (forward ? (isPolar ? ItemField.DIST_Item : ItemField.X_Item) : (isPolar ? ItemField.ANGLE_Item : ItemField.Y_Item));\r\n break;\r\n }\r\n\r\n accudraw.setKeyinStatus(index, KeyinStatus.Partial);\r\n accudraw.setFocusItem(index);\r\n accudraw.dontMoveFocus = true;\r\n }\r\n\r\n public static itemFieldNewInput(index: ItemField): void { IModelApp.accuDraw.setKeyinStatus(index, KeyinStatus.Partial); }\r\n\r\n public static async itemFieldAcceptInput(index: ItemField, str: string): Promise<void> {\r\n const accudraw = IModelApp.accuDraw;\r\n await accudraw.processFieldInput(index, str, true);\r\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\r\n\r\n if (accudraw.getFieldLock(index))\r\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\r\n\r\n const vp = accudraw.currentView;\r\n if (accudraw.isActive) {\r\n if (!vp)\r\n return;\r\n\r\n if (CompassMode.Polar === accudraw.compassMode)\r\n accudraw.fixPointPolar(vp);\r\n else\r\n accudraw.fixPointRectangular(vp);\r\n\r\n accudraw.flags.dialogNeedsUpdate = true;\r\n return;\r\n }\r\n\r\n const is3d = vp ? vp.view.is3d() : false;\r\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n index = ItemField.ANGLE_Item;\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n index = (is3d ? ItemField.Z_Item : ItemField.DIST_Item);\r\n break;\r\n\r\n case ItemField.X_Item:\r\n index = ItemField.Y_Item;\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n index = (is3d ? ItemField.Z_Item : ItemField.X_Item);\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n index = (isPolar ? ItemField.DIST_Item : ItemField.X_Item);\r\n break;\r\n }\r\n accudraw.setFocusItem(index);\r\n }\r\n\r\n public static itemFieldLockToggle(index: ItemField): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.getFieldLock(index)) {\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n accudraw.distanceLock(true, false);\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n accudraw.angleLock();\r\n break;\r\n\r\n case ItemField.X_Item:\r\n accudraw.clearTentative();\r\n accudraw.locked |= LockedStates.X_BM;\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n accudraw.clearTentative();\r\n accudraw.locked |= LockedStates.Y_BM;\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n accudraw.clearTentative();\r\n break;\r\n }\r\n\r\n return;\r\n }\r\n\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n accudraw.locked &= ~LockedStates.DIST_BM;\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n accudraw.locked &= ~LockedStates.ANGLE_BM;\r\n break;\r\n\r\n case ItemField.X_Item:\r\n accudraw.locked &= ~LockedStates.X_BM;\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n accudraw.locked &= ~LockedStates.Y_BM;\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n break;\r\n }\r\n\r\n accudraw.dontMoveFocus = false;\r\n accudraw.clearTentative();\r\n }\r\n\r\n public static itemRotationModeChange(rotation: RotationMode): void {\r\n const accudraw = IModelApp.accuDraw;\r\n const vp = accudraw.currentView;\r\n const is3d = vp ? vp.view.is3d() : true;\r\n\r\n if (!is3d && (RotationMode.Front === rotation || RotationMode.Side === rotation))\r\n accudraw.setRotationMode(RotationMode.Top);\r\n\r\n accudraw.flags.baseRotation = rotation;\r\n accudraw.updateRotation(true);\r\n }\r\n\r\n // Shortcut implementations for GUI entry points...\r\n public static setOrigin(explicitOrigin?: Point3d): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (explicitOrigin) {\r\n accudraw.published.origin.setFrom(explicitOrigin);\r\n accudraw.flags.haveValidOrigin = true;\r\n } else if (accudraw.isInactive || accudraw.isDeactivated) {\r\n // If AccuSnap is active use adjusted snap point, otherwise use last data point...\r\n const snap = TentativeOrAccuSnap.getCurrentSnap(false);\r\n if (undefined !== snap) {\r\n accudraw.published.origin.setFrom(snap.isPointAdjusted ? snap.adjustedPoint : snap.getPoint());\r\n accudraw.flags.haveValidOrigin = true;\r\n } else {\r\n const ev = new BeButtonEvent();\r\n IModelApp.toolAdmin.fillEventFromLastDataButton(ev);\r\n\r\n if (ev.viewport) {\r\n accudraw.published.origin.setFrom(ev.point);\r\n accudraw.flags.haveValidOrigin = true;\r\n } else {\r\n // NOTE: If current point isn't valid setDefaultOrigin will be called...\r\n accudraw.published.origin.setFrom(accudraw.point);\r\n }\r\n }\r\n } else {\r\n accudraw.published.origin.setFrom(accudraw.point);\r\n accudraw.flags.haveValidOrigin = true;\r\n accudraw.setLastPoint(accudraw.published.origin);\r\n }\r\n\r\n accudraw.clearTentative();\r\n const vp = accudraw.currentView;\r\n\r\n // NOTE: _AdjustPoint should have been called to have setup currentView...\r\n if (vp && !vp.view.is3d())\r\n accudraw.published.origin.z = 0.0;\r\n\r\n accudraw.origin.setFrom(accudraw.published.origin);\r\n accudraw.point.setFrom(accudraw.published.origin);\r\n accudraw.planePt.setFrom(accudraw.published.origin);\r\n accudraw.published.flags |= AccuDrawFlags.SetOrigin;\r\n accudraw.activate();\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static changeCompassMode(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n let axisLockStatus = accudraw.locked & LockedStates.XY_BM;\r\n\r\n if (axisLockStatus) {\r\n if (CompassMode.Rectangular === accudraw.compassMode) {\r\n if (axisLockStatus & LockedStates.X_BM && accudraw.delta.x !== 0.0)\r\n axisLockStatus &= ~LockedStates.X_BM;\r\n\r\n if (axisLockStatus & LockedStates.Y_BM && accudraw.delta.y !== 0.0)\r\n axisLockStatus &= ~LockedStates.Y_BM;\r\n }\r\n }\r\n\r\n accudraw.changeCompassMode(true);\r\n if (axisLockStatus) {\r\n if (CompassMode.Rectangular === accudraw.compassMode) {\r\n accudraw.delta.x = accudraw.delta.y = 0.0;\r\n\r\n if (axisLockStatus & LockedStates.X_BM)\r\n accudraw.setFieldLock(ItemField.X_Item, true);\r\n else if (axisLockStatus & LockedStates.Y_BM)\r\n accudraw.setFieldLock(ItemField.Y_Item, true);\r\n } else {\r\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\r\n }\r\n accudraw.locked = axisLockStatus;\r\n }\r\n accudraw.flags.baseMode = accudraw.compassMode;\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockSmart(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const accuSnap = IModelApp.accuSnap;\r\n\r\n // Don't want AccuSnap to influence axis or Z...\r\n if (accuSnap.isHot) {\r\n accuSnap.clear();\r\n\r\n const vp = accudraw.currentView;\r\n if (vp) {\r\n if (CompassMode.Polar === accudraw.compassMode)\r\n accudraw.fixPointPolar(vp);\r\n else\r\n accudraw.fixPointRectangular(vp);\r\n }\r\n }\r\n\r\n if (CompassMode.Polar === accudraw.compassMode) {\r\n const isSnapped = accudraw.clearTentative();\r\n if (accudraw.locked & LockedStates.ANGLE_BM) { // angle locked (unlock it)\r\n accudraw.setFieldLock(ItemField.ANGLE_Item, false);\r\n accudraw.locked &= ~LockedStates.ANGLE_BM;\r\n } else if (accudraw.getFieldLock(ItemField.DIST_Item)) { // distance locked (unlock it)\r\n accudraw.setFieldLock(ItemField.DIST_Item, false);\r\n accudraw.locked &= ~LockedStates.DIST_BM;\r\n } else if (isSnapped) {\r\n accudraw.doLockAngle(isSnapped);\r\n } else if (accudraw.indexed & LockedStates.ANGLE_BM) { // angle indexed (lock it)\r\n accudraw.angleLock();\r\n } else {\r\n if (Math.abs(accudraw.vector.dotProduct(accudraw.axes.x)) > Math.abs(accudraw.vector.dotProduct(accudraw.axes.y)))\r\n accudraw.indexed |= LockedStates.Y_BM;\r\n else\r\n accudraw.indexed |= LockedStates.X_BM;\r\n accudraw.angleLock();\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n return;\r\n }\r\n\r\n if (accudraw.locked) { // if locked, unlock\r\n accudraw.clearTentative();\r\n accudraw.locked &= ~LockedStates.XY_BM;\r\n accudraw.setFieldLock(ItemField.X_Item, false);\r\n accudraw.setFieldLock(ItemField.Y_Item, false);\r\n if (accudraw.getFieldLock(ItemField.Z_Item) && accudraw.delta.z === 0.0 && !accudraw.stickyZLock)\r\n accudraw.setFieldLock(ItemField.Z_Item, false);\r\n } else { // lock to nearest axis\r\n if (accudraw.clearTentative()) {\r\n if (Math.abs(accudraw.delta.x) >= Geometry.smallAngleRadians && Math.abs(accudraw.delta.y) >= Geometry.smallAngleRadians) {\r\n accudraw.doLockAngle(false);\r\n return;\r\n }\r\n }\r\n\r\n const vp = accudraw.currentView;\r\n if (Math.abs(accudraw.delta.x) > Math.abs(accudraw.delta.y)) {\r\n accudraw.delta.y = 0.0;\r\n accudraw.onFieldValueChange(ItemField.Y_Item);\r\n accudraw.locked |= LockedStates.Y_BM;\r\n accudraw.locked &= ~LockedStates.X_BM;\r\n accudraw.setFieldLock(ItemField.X_Item, false);\r\n accudraw.setFieldLock(ItemField.Y_Item, true);\r\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\r\n } else {\r\n accudraw.delta.x = 0.0;\r\n accudraw.onFieldValueChange(ItemField.X_Item);\r\n accudraw.locked |= LockedStates.X_BM;\r\n accudraw.locked &= ~LockedStates.Y_BM;\r\n accudraw.setFieldLock(ItemField.Y_Item, false);\r\n accudraw.setFieldLock(ItemField.X_Item, true);\r\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\r\n }\r\n\r\n if (!accudraw.flags.lockedRotation) {\r\n accudraw.flags.lockedRotation = true;\r\n accudraw.flags.contextRotMode = ContextMode.Locked;\r\n accudraw.setRotationMode(RotationMode.Context);\r\n }\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n /** Disable indexing when not currently indexed; if indexed, enable respective lock. */\r\n public static lockIndex(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.flags.indexLocked) {\r\n if (accudraw.locked)\r\n this.lockSmart();\r\n\r\n accudraw.flags.indexLocked = false;\r\n } else {\r\n if (CompassMode.Polar === accudraw.compassMode) {\r\n if (accudraw.indexed & LockedStates.XY_BM) {\r\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\r\n accudraw.angleLock();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n this.lockDistance();\r\n } else {\r\n if (accudraw.indexed & LockedStates.X_BM) {\r\n this.lockX();\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n this.lockY();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.Y_BM) {\r\n this.lockY();\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n this.lockX();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM && !(accudraw.indexed & LockedStates.XY_BM)) {\r\n if (accudraw.locked & LockedStates.X_BM)\r\n this.lockY();\r\n else\r\n this.lockX();\r\n }\r\n }\r\n\r\n accudraw.flags.indexLocked = true;\r\n }\r\n }\r\n\r\n public static lockX(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n accudraw.clearTentative();\r\n\r\n if (CompassMode.Rectangular !== accudraw.compassMode) {\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n accudraw.fixPointRectangular(vp);\r\n accudraw.changeCompassMode(true);\r\n }\r\n\r\n if (accudraw.getFieldLock(ItemField.X_Item)) {\r\n accudraw.setFieldLock(ItemField.X_Item, false);\r\n accudraw.locked = accudraw.locked & ~LockedStates.X_BM;\r\n } else {\r\n accudraw.saveCoordinate(ItemField.X_Item, accudraw.delta.x);\r\n accudraw.setFieldLock(ItemField.X_Item, true);\r\n accudraw.locked = accudraw.locked | LockedStates.X_BM;\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockY(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n accudraw.clearTentative();\r\n\r\n if (CompassMode.Rectangular !== accudraw.compassMode) {\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n accudraw.fixPointRectangular(vp);\r\n accudraw.changeCompassMode(true);\r\n }\r\n\r\n if (accudraw.getFieldLock(ItemField.Y_Item)) {\r\n accudraw.setFieldLock(ItemField.Y_Item, false);\r\n accudraw.locked = accudraw.locked & ~LockedStates.Y_BM;\r\n } else {\r\n accudraw.saveCoordinate(ItemField.Y_Item, accudraw.delta.y);\r\n accudraw.setFieldLock(ItemField.Y_Item, true);\r\n accudraw.locked = accudraw.locked | LockedStates.Y_BM;\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockZ(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp || !vp.view.is3d())\r\n return;\r\n\r\n const isSnapped = accudraw.clearTentative();\r\n\r\n if (accudraw.getFieldLock(ItemField.Z_Item)) {\r\n accudraw.setFieldLock(ItemField.Z_Item, false);\r\n } else {\r\n // Move focus to Z field...\r\n if (!isSnapped && accudraw.autoFocusFields) {\r\n accudraw.setFocusItem(ItemField.Z_Item);\r\n accudraw.dontMoveFocus = true;\r\n }\r\n accudraw.setFieldLock(ItemField.Z_Item, true);\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockDistance(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const isSnapped = accudraw.clearTentative();\r\n\r\n if (CompassMode.Polar !== accudraw.compassMode) {\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n accudraw.locked = 0;\r\n accudraw.fixPointPolar(vp);\r\n accudraw.changeCompassMode(true);\r\n }\r\n\r\n if (accudraw.getFieldLock(ItemField.DIST_Item)) {\r\n accudraw.setFieldLock(ItemField.DIST_Item, false);\r\n accudraw.locked &= ~LockedStates.DIST_BM;\r\n\r\n accudraw.setKeyinStatus(ItemField.DIST_Item, KeyinStatus.Dynamic); // Need to clear partial status if locked by entering distance since focus stays in distance field...\r\n } else {\r\n // Move focus to distance field...\r\n if (!isSnapped && accudraw.autoFocusFields)\r\n accudraw.setFocusItem(ItemField.DIST_Item);\r\n accudraw.distanceLock(true, true);\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockAngle(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n accudraw.doLockAngle(accudraw.clearTentative());\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public lockIndex(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.flags.indexLocked) {\r\n if (accudraw.locked)\r\n AccuDrawShortcuts.lockSmart();\r\n\r\n accudraw.flags.indexLocked = false;\r\n } else {\r\n if (CompassMode.Polar === accudraw.compassMode) {\r\n if (accudraw.indexed & LockedStates.XY_BM) {\r\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\r\n accudraw.angleLock();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n AccuDrawShortcuts.lockDistance();\r\n } else {\r\n if (accudraw.indexed & LockedStates.X_BM) {\r\n AccuDrawShortcuts.lockX();\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n AccuDrawShortcuts.lockY();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.Y_BM) {\r\n AccuDrawShortcuts.lockY();\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n AccuDrawShortcuts.lockX();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM && !(accudraw.indexed & LockedStates.XY_BM)) {\r\n if (accudraw.locked & LockedStates.X_BM)\r\n AccuDrawShortcuts.lockY();\r\n else\r\n AccuDrawShortcuts.lockX();\r\n }\r\n }\r\n\r\n accudraw.flags.indexLocked = true;\r\n }\r\n\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static setStandardRotation(rotation: RotationMode): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (RotationMode.Context === rotation) {\r\n const axes = accudraw.baseAxes.clone();\r\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\r\n accudraw.setContextRotation(axes.toMatrix3d(), false, true);\r\n accudraw.refreshDecorationsAndDynamics();\r\n return;\r\n } else {\r\n accudraw.flags.baseRotation = rotation;\r\n accudraw.setRotationMode(rotation);\r\n }\r\n accudraw.updateRotation(true);\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static alignView(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n const newMatrix = accudraw.getRotation();\r\n if (newMatrix.isExactEqual(vp.rotation))\r\n return;\r\n\r\n const targetMatrix = newMatrix.multiplyMatrixMatrix(vp.rotation);\r\n const rotateTransform = Transform.createFixedPointAndMatrix(vp.view.getTargetPoint(), targetMatrix);\r\n const newFrustum = vp.getFrustum();\r\n newFrustum.multiply(rotateTransform);\r\n\r\n vp.view.setupFromFrustum(newFrustum);\r\n vp.synchWithView();\r\n vp.animateFrustumChange();\r\n\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static rotateToBase(): void { this.setStandardRotation(IModelApp.accuDraw.flags.baseRotation); }\r\n\r\n public static rotateToACS(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n // NOTE: Match current ACS orientation..reset auxRotationPlane to top!\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n this.setStandardRotation(RotationMode.ACS);\r\n }\r\n\r\n public static rotateCycle(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp || !vp.view.is3d())\r\n return;\r\n\r\n let rotation: RotationMode;\r\n switch (accudraw.rotationMode) {\r\n case RotationMode.View:\r\n case RotationMode.Side:\r\n rotation = RotationMode.Top;\r\n break;\r\n\r\n case RotationMode.Top:\r\n rotation = RotationMode.Front;\r\n break;\r\n\r\n case RotationMode.Front:\r\n rotation = RotationMode.Side;\r\n break;\r\n\r\n case RotationMode.Context:\r\n rotation = RotationMode.Context;\r\n\r\n if (rotation !== accudraw.flags.baseRotation) {\r\n accudraw.baseAxes.setFrom(accudraw.axes);\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n accudraw.flags.baseRotation = rotation;\r\n } else {\r\n const axes = accudraw.baseAxes.clone();\r\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\r\n if (!accudraw.axes.equals(axes))\r\n accudraw.changeBaseRotationMode(rotation);\r\n }\r\n\r\n switch (accudraw.flags.auxRotationPlane) {\r\n case RotationMode.Front:\r\n accudraw.flags.auxRotationPlane = RotationMode.Side;\r\n break;\r\n\r\n case RotationMode.Side:\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n break;\r\n\r\n case RotationMode.Top:\r\n accudraw.flags.auxRotationPlane = RotationMode.Front;\r\n break;\r\n }\r\n break;\r\n\r\n case RotationMode.ACS:\r\n rotation = RotationMode.ACS;\r\n switch (accudraw.flags.auxRotationPlane) {\r\n case RotationMode.Front:\r\n accudraw.flags.auxRotationPlane = RotationMode.Side;\r\n break;\r\n case RotationMode.Side:\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n break;\r\n case RotationMode.Top:\r\n accudraw.flags.auxRotationPlane = RotationMode.Front;\r\n break;\r\n }\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n this.setStandardRotation(rotation);\r\n }\r\n\r\n public static rotate90(axis: number): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const newRotation = new ThreeAxes();\r\n\r\n accudraw.locked = accudraw.indexed = 0;\r\n accudraw.unlockAllFields();\r\n\r\n switch (axis) {\r\n case 0:\r\n newRotation.x.setFrom(accudraw.axes.x);\r\n newRotation.z.setFrom(accudraw.axes.y);\r\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\r\n break;\r\n\r\n case 1:\r\n newRotation.x.setFrom(accudraw.axes.z);\r\n newRotation.y.setFrom(accudraw.axes.y);\r\n newRotation.x.crossProduct(newRotation.y, newRotation.z);\r\n break;\r\n\r\n case 2:\r\n newRotation.x.setFrom(accudraw.axes.y);\r\n newRotation.z.setFrom(accudraw.axes.z);\r\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\r\n break;\r\n }\r\n\r\n accudraw.setContextRotation(newRotation.toMatrix3d(), true, true);\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static async rotateAxes(aboutCurrentZ: boolean) {\r\n return IModelApp.tools.run(\"AccuDraw.RotateAxes\", aboutCurrentZ);\r\n }\r\n\r\n public static async rotateToElement() {\r\n return IModelApp.tools.run(\"AccuDraw.RotateElement\");\r\n }\r\n\r\n public static async defineACSByElement() {\r\n return IModelApp.tools.run(\"AccuDraw.DefineACSByElement\");\r\n }\r\n\r\n public static async defineACSByPoints() {\r\n return IModelApp.tools.run(\"AccuDraw.DefineACSByPoints\");\r\n }\r\n\r\n public static getACS(acsName: string | undefined, useOrigin: boolean, useRotation: boolean): BentleyStatus {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return BentleyStatus.ERROR;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return BentleyStatus.ERROR;\r\n\r\n let currRotation = 0, currBaseRotation = 0;\r\n const axes = new ThreeAxes();\r\n\r\n if (!useRotation) {\r\n // Save current rotation, event listener on ACS change will orient AccuDraw to ACS...\r\n currRotation = accudraw.rotationMode;\r\n currBaseRotation = accudraw.flags.baseRotation;\r\n axes.setFrom(accudraw.axes);\r\n }\r\n\r\n if (acsName && \"\" !== acsName) {\r\n // // See if this ACS already exists...\r\n // DgnCode acsCode = AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), acsName);\r\n // DgnElementId acsId = vp -> GetViewController().GetDgnDb().Elements().QueryElementIdByCode(acsCode);\r\n\r\n // if (!acsId.IsValid())\r\n // return ERROR;\r\n\r\n // AuxCoordSystemCPtr auxElm = vp -> GetViewController().GetDgnDb().Elements().Get<AuxCoordSystem>(acsId);\r\n\r\n // if (!auxElm.IsValid())\r\n // return ERROR;\r\n\r\n // AuxCoordSystemPtr acsPtr = auxElm -> MakeCopy<AuxCoordSystem>();\r\n\r\n // if (!acsPtr.IsValid())\r\n // return ERROR;\r\n\r\n // AuxCoordSystemCR oldACS = vp -> GetViewController().GetAuxCoordinateSystem();\r\n\r\n // if (!useOrigin)\r\n // acsPtr -> SetOrigin(oldACS.GetOrigin());\r\n\r\n // if (!useRotation)\r\n // acsPtr -> SetRotation(oldACS.GetRotation());\r\n\r\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\r\n }\r\n\r\n const currentACS = vp.view.auxiliaryCoordinateSystem;\r\n\r\n if (useOrigin) {\r\n accudraw.origin.setFrom(currentACS.getOrigin());\r\n accudraw.point.setFrom(accudraw.origin);\r\n accudraw.planePt.setFrom(accudraw.origin);\r\n }\r\n\r\n if (useRotation) {\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n this.setStandardRotation(RotationMode.ACS);\r\n } else {\r\n this.itemFieldUnlockAll();\r\n\r\n accudraw.setRotationMode(currRotation);\r\n accudraw.flags.baseRotation = currBaseRotation;\r\n accudraw.axes.setFrom(axes);\r\n\r\n if (RotationMode.ACS === accudraw.flags.baseRotation) {\r\n const acs = currentACS.clone();\r\n\r\n const rMatrix = accudraw.getRotation();\r\n acs.setRotation(rMatrix);\r\n\r\n AccuDraw.updateAuxCoordinateSystem(acs, vp);\r\n }\r\n\r\n accudraw.published.flags &= ~AccuDrawFlags.OrientACS;\r\n }\r\n\r\n return BentleyStatus.SUCCESS;\r\n }\r\n\r\n public static writeACS(_acsName: string): BentleyStatus {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return BentleyStatus.ERROR;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return BentleyStatus.ERROR;\r\n\r\n // const origin = accudraw.origin;\r\n // const rMatrix = accudraw.getRotation();\r\n // AuxCoordSystemPtr acsPtr = AuxCoordSystem:: CreateFrom(vp -> GetViewController().GetAuxCoordinateSystem());\r\n // acsPtr -> SetOrigin(origin);\r\n // acsPtr -> SetRotation(rMatrix);\r\n // acsPtr -> SetType(CompassMode.Polar == accudraw.getCompassMode() ? ACSType :: Cylindrical : ACSType:: Rectangular);\r\n // acsPtr -> SetCode(AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), nullptr != acsName ? acsName : \"\"));\r\n // acsPtr -> SetDescription(\"\");\r\n\r\n // if (acsName && '\\0' != acsName[0]) {\r\n // DgnDbStatus status;\r\n // acsPtr -> Insert(& status);\r\n\r\n // if (DgnDbStatus:: Success != status)\r\n // return BentleyStatus.ERROR;\r\n // }\r\n\r\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\r\n\r\n // accudraw.flags.baseRotation = RotationMode.ACS;\r\n // accudraw.SetRotationMode(RotationMode.ACS);\r\n\r\n return BentleyStatus.SUCCESS;\r\n }\r\n\r\n public static itemFieldUnlockAll(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (accudraw.isEnabled)\r\n accudraw.unlockAllFields();\r\n }\r\n\r\n /** @internal Temporary keyboard shortcuts. */\r\n public static async processShortcutKey(keyEvent: KeyboardEvent) {\r\n switch (keyEvent.key.toLowerCase()) {\r\n case \"enter\":\r\n AccuDrawShortcuts.lockSmart();\r\n return true;\r\n case \"x\":\r\n AccuDrawShortcuts.lockX();\r\n return true;\r\n case \"y\":\r\n AccuDrawShortcuts.lockY();\r\n return true;\r\n case \"z\":\r\n AccuDrawShortcuts.lockZ();\r\n return true;\r\n case \"a\":\r\n AccuDrawShortcuts.lockAngle();\r\n return true;\r\n case \"d\":\r\n AccuDrawShortcuts.lockDistance();\r\n return true;\r\n case \"h\":\r\n AccuDrawShortcuts.suspendToggle();\r\n return true;\r\n case \"l\":\r\n AccuDrawShortcuts.lockIndex();\r\n return true;\r\n case \"m\":\r\n AccuDrawShortcuts.changeCompassMode();\r\n return true;\r\n case \"t\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Top);\r\n return true;\r\n case \"f\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Front);\r\n return true;\r\n case \"s\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Side);\r\n return true;\r\n case \"v\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.View);\r\n return true;\r\n case \"o\":\r\n AccuDrawShortcuts.setOrigin();\r\n return true;\r\n case \"c\":\r\n AccuDrawShortcuts.rotateCycle();\r\n return true;\r\n case \"q\":\r\n return AccuDrawShortcuts.rotateAxes(true);\r\n case \"e\":\r\n return AccuDrawShortcuts.rotateToElement();\r\n case \"r\":\r\n return AccuDrawShortcuts.defineACSByPoints();\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSessionToggleTool extends Tool {\r\n public static override toolId = \"AccuDraw.SessionToggle\";\r\n public override async run() {\r\n AccuDrawShortcuts.sessionToggle();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSuspendToggleTool extends Tool {\r\n public static override toolId = \"AccuDraw.SuspendToggle\";\r\n public override async run() {\r\n AccuDrawShortcuts.suspendToggle();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetOriginTool extends Tool {\r\n public static override toolId = \"AccuDraw.SetOrigin\";\r\n public override async run() {\r\n AccuDrawShortcuts.setOrigin();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockSmartTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockSmart\";\r\n public override async run() {\r\n AccuDrawShortcuts.lockSmart();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockIndexTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockIndex\";\r\n public override async run() {\r\n AccuDrawShortcuts.lockIndex();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockXTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockX\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockX();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockYTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockY\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockY();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockZTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockZ\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockZ();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockDistanceTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockDistance\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockDistance();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockAngleTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockAngle\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockAngle();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawChangeModeTool extends Tool {\r\n public static override toolId = \"AccuDraw.ChangeMode\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.changeCompassMode();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateCycleTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateCycle\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.rotateCycle();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateTopTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateTop\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Top);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateFrontTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateFront\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Front);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateSideTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateSide\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Side);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateViewTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateView\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.View);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nabstract class AccuDrawShortcutsTool extends InputCollector {\r\n private _cancel: boolean;\r\n public constructor() {\r\n super();\r\n this._cancel = true;\r\n }\r\n\r\n public override async onPostInstall() {\r\n await super.onPostInstall();\r\n this.initLocateElements(false, true, undefined, CoordinateLockOverrides.None);\r\n this.doManipulationStart();\r\n } // NOTE: InputCollector inherits suspended primitive's state, set everything...\r\n\r\n public override async onCleanup() { this.doManipulationStop(this._cancel); }\r\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (this.doManipulation(ev, false)) {\r\n this._cancel = false;\r\n await this.exitTool();\r\n }\r\n\r\n return EventHandled.No;\r\n }\r\n\r\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> { this.doManipulation(ev, true); }\r\n public override async exitTool() {\r\n await super.exitTool();\r\n AccuDrawShortcuts.requestInputFocus();\r\n } // re-grab focus when auto-focus tool setting set...\r\n\r\n public activateAccuDrawOnStart() { return true; }\r\n public doManipulationStart() {\r\n if (this.activateAccuDrawOnStart())\r\n IModelApp.accuDraw.activate();\r\n\r\n this.doManipulation(undefined, true);\r\n }\r\n\r\n public doManipulationStop(cancel: boolean) {\r\n if (!cancel)\r\n IModelApp.accuDraw.savedStateInputCollector.ignoreFlags = this.onManipulationComplete();\r\n }\r\n\r\n public onManipulationComplete(): AccuDrawFlags { return 0; }\r\n public abstract doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateAxesTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.RotateAxes\";\r\n public static override get maxArgs(): number { return 1; }\r\n protected _immediateMode: boolean = false;\r\n public constructor(public aboutCurrentZ: boolean = true) { super(); }\r\n\r\n public override async onInstall(): Promise<boolean> {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isActive)\r\n return false; // Require compass to already be active for this shortcut...\r\n\r\n if (this.aboutCurrentZ)\r\n accudraw.changeBaseRotationMode(RotationMode.Context); // Establish current orientation as base; base Z is used when defining compass rotation by x axis...\r\n\r\n if (accudraw.clearTentative() || IModelApp.accuSnap.isHot ||\r\n (CompassMode.Polar === accudraw.compassMode && accudraw.getFieldLock(ItemField.ANGLE_Item)) ||\r\n (CompassMode.Polar !== accudraw.compassMode && accudraw.getFieldLock(ItemField.X_Item) && accudraw.getFieldLock(ItemField.Y_Item))) {\r\n if (AccuDrawShortcuts.rotateAxesByPoint(true, this.aboutCurrentZ)) {\r\n AccuDrawShortcuts.itemFieldUnlockAll();\r\n accudraw.refreshDecorationsAndDynamics();\r\n this._immediateMode = true;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public override async onPostInstall() {\r\n if (this._immediateMode) {\r\n await this.exitTool();\r\n return;\r\n }\r\n return super.onPostInstall();\r\n }\r\n\r\n public override onManipulationComplete(): AccuDrawFlags { return AccuDrawFlags.SetRMatrix; }\r\n public override doManipulationStart(): void {\r\n super.doManipulationStart();\r\n CoreTools.outputPromptByKey(\"AccuDraw.RotateAxes.Prompts.FirstPoint\");\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;\r\n if (!vp)\r\n return true;\r\n AccuDrawShortcuts.rotateAxesByPoint(TentativeOrAccuSnap.isHot, this.aboutCurrentZ);\r\n vp.invalidateDecorations();\r\n if (!isMotion)\r\n AccuDrawShortcuts.itemFieldUnlockAll();\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: any[]): Promise<boolean> {\r\n for (const arg of args) {\r\n if (arg.toLowerCase() === \"unlockedz\")\r\n this.aboutCurrentZ = false;\r\n }\r\n return this.run(args);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateElementTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.RotateElement\";\r\n public moveOrigin: boolean = !IModelApp.accuDraw.isActive; // By default use current origin if AccuDraw is already enabled...\r\n public override async onInstall(): Promise<boolean> { return IModelApp.accuDraw.isEnabled; } // Require compass to be enabled for this session...\r\n\r\n public override onManipulationComplete(): AccuDrawFlags {\r\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...\r\n if (this.moveOrigin)\r\n ignoreFlags |= AccuDrawFlags.SetOrigin;\r\n return ignoreFlags;\r\n }\r\n\r\n public override doManipulationStart(): void {\r\n super.doManipulationStart();\r\n CoreTools.outputPromptByKey(\"AccuDraw.RotateElement.Prompts.FirstPoint\");\r\n }\r\n\r\n public updateOrientation(snap: SnapDetail, vp: Viewport): boolean {\r\n const accudraw = IModelApp.accuDraw;\r\n const rMatrix = AccuDraw.getSnapRotation(snap, vp);\r\n if (undefined === rMatrix)\r\n return false;\r\n const origin = this.moveOrigin ? snap.snapPoint : accudraw.origin;\r\n accudraw.setContext(AccuDrawFlags.AlwaysSetOrigin | AccuDrawFlags.SetRMatrix, origin, rMatrix);\r\n return true;\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;\r\n if (!vp)\r\n return true;\r\n\r\n const snapDetail = TentativeOrAccuSnap.getCurrentSnap(false);\r\n if (undefined === snapDetail || !this.updateOrientation(snapDetail, vp))\r\n return true;\r\n\r\n if (undefined === ev)\r\n AccuDrawShortcuts.processPendingHints();\r\n if (!isMotion)\r\n IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Hold temporary rotation for tool duration when not updating ACS...\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class DefineACSByElementTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.DefineACSByElement\";\r\n private _origin = Point3d.create();\r\n private _rMatrix = Matrix3d.createIdentity();\r\n private _acs?: AuxCoordSystemState;\r\n\r\n public override activateAccuDrawOnStart(): boolean { return false; }\r\n public override onManipulationComplete(): AccuDrawFlags { return AccuDrawFlags.SetRMatrix; }\r\n\r\n public override doManipulationStart(): void {\r\n super.doManipulationStart();\r\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByElement.Prompts.FirstPoint\");\r\n }\r\n\r\n public updateOrientation(snap: SnapDetail, vp: Viewport): boolean {\r\n const rMatrix = AccuDraw.getSnapRotation(snap, vp);\r\n if (undefined === rMatrix)\r\n return false;\r\n this._origin = snap.snapPoint;\r\n this._rMatrix = rMatrix;\r\n return true;\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n const vp = ev ? ev.viewport : undefined;\r\n if (!vp)\r\n return true;\r\n\r\n const snapDetail = TentativeOrAccuSnap.getCurrentSnap(false);\r\n if (undefined === snapDetail || !this.updateOrientation(snapDetail, vp))\r\n return true;\r\n IModelApp.viewManager.invalidateDecorationsAllViews();\r\n if (isMotion)\r\n return true;\r\n\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n this._acs.setOrigin(this._origin);\r\n this._acs.setRotation(this._rMatrix);\r\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\r\n AccuDrawShortcuts.rotateToACS();\r\n return true;\r\n }\r\n\r\n public override decorate(context: DecorateContext): void {\r\n const vp = context.viewport;\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n this._acs.setOrigin(this._origin);\r\n this._acs.setRotation(this._rMatrix);\r\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class DefineACSByPointsTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.DefineACSByPoints\";\r\n private readonly _points: Point3d[] = [];\r\n private _acs?: AuxCoordSystemState;\r\n\r\n public override activateAccuDrawOnStart(): boolean { return false; }\r\n public override onManipulationComplete(): AccuDrawFlags { return AccuDrawFlags.SetRMatrix; }\r\n\r\n public override doManipulationStart(): void {\r\n super.doManipulationStart();\r\n const tentativePoint = IModelApp.tentativePoint;\r\n if (!tentativePoint.isActive) {\r\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.FirstPoint\");\r\n return;\r\n }\r\n\r\n const origin = tentativePoint.getPoint().clone();\r\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.SecondPoint\");\r\n IModelApp.accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.FixedOrigin, origin);\r\n this._points.push(origin);\r\n tentativePoint.clear(true);\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n if (!ev || !ev.viewport)\r\n return true;\r\n\r\n IModelApp.viewManager.invalidateDecorationsAllViews();\r\n if (isMotion)\r\n return false;\r\n\r\n IModelApp.accuDraw.activate();\r\n this._points.push(ev.point.clone());\r\n\r\n const vp = ev.viewport;\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n\r\n if (AccuDrawShortcuts.updateACSByPoints(this._acs, vp, this._points, false)) {\r\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\r\n AccuDrawShortcuts.rotateToACS();\r\n return true;\r\n }\r\n\r\n CoreTools.outputPromptByKey(`AccuDraw.DefineACSByPoints.Prompts${1 === this._points.length ? \".SecondPoint\" : \".NextPoint\"}`);\r\n return false;\r\n }\r\n\r\n public override decorate(context: DecorateContext): void {\r\n const tmpPoints: Point3d[] = [];\r\n this._points.forEach((pt) => tmpPoints.push(pt));\r\n\r\n const ev = new BeButtonEvent();\r\n IModelApp.toolAdmin.fillEventFromCursorLocation(ev);\r\n tmpPoints.push(ev.point);\r\n\r\n const vp = context.viewport;\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n\r\n AccuDrawShortcuts.updateACSByPoints(this._acs, vp, tmpPoints, true);\r\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"AccuDrawTool.js","sourceRoot":"","sources":["../../../src/tools/AccuDrawTool.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 { BentleyStatus } from \"@itwin/core-bentley\";\r\nimport { AxisOrder, Geometry, Matrix3d, Point3d, Transform, Vector3d } from \"@itwin/core-geometry\";\r\nimport { AccuDraw, AccuDrawFlags, AccuDrawHintBuilder, CompassMode, ContextMode, ItemField, KeyinStatus, LockedStates, RotationMode, ThreeAxes } from \"../AccuDraw\";\r\nimport { TentativeOrAccuSnap } from \"../AccuSnap\";\r\nimport { ACSDisplayOptions, AuxCoordSystemState } from \"../AuxCoordSys\";\r\nimport { SnapDetail, SnapHeat } from \"../HitDetail\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { DecorateContext } from \"../ViewContext\";\r\nimport { ScreenViewport, Viewport } from \"../Viewport\";\r\nimport { BeButtonEvent, CoordinateLockOverrides, CoreTools, EventHandled, InputCollector, Tool } from \"./Tool\";\r\n\r\n// cSpell:ignore dont unlockedz\r\n\r\nfunction normalizedDifference(point1: Point3d, point2: Point3d, out: Vector3d): number {\r\n return point2.vectorTo(point1).normalizeWithLength(out).mag;\r\n}\r\n\r\nfunction normalizedCrossProduct(vec1: Vector3d, vec2: Vector3d, out: Vector3d): number {\r\n return vec1.crossProduct(vec2, out).normalizeWithLength(out).mag;\r\n}\r\n\r\n/**\r\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.\r\n * A tool implementor should not use this class to setup AccuDraw, instead use AccuDrawHintBuilder to provide hints.\r\n * @alpha\r\n */\r\nexport class AccuDrawShortcuts {\r\n /** Disable/Enable AccuDraw for the session */\r\n public static sessionToggle(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n\r\n if (accudraw.isEnabled)\r\n accudraw.disableForSession();\r\n else\r\n accudraw.enableForSession();\r\n }\r\n\r\n /** Suspend/Unsuspend AccuDraw for the active tool */\r\n public static suspendToggle(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.isActive)\r\n accudraw.deactivate();\r\n else\r\n accudraw.activate();\r\n\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static rotateAxesByPoint(isSnapped: boolean, aboutCurrentZ: boolean): boolean {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return false;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return false;\r\n\r\n const point = accudraw.point;\r\n if (!vp.view.is3d())\r\n point.z = 0.0;\r\n\r\n if (aboutCurrentZ)\r\n accudraw.hardConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\r\n else\r\n accudraw.softConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\r\n\r\n // Snap point and compass origin coincide...\r\n const xVec = new Vector3d();\r\n if (normalizedDifference(point, accudraw.planePt, xVec) < Geometry.smallAngleRadians)\r\n return false;\r\n\r\n accudraw.axes.x.setFrom(xVec);\r\n\r\n if (RotationMode.Context !== accudraw.rotationMode)\r\n accudraw.setRotationMode(RotationMode.Context);\r\n\r\n accudraw.flags.contextRotMode = ContextMode.XAxis;\r\n accudraw.flags.lockedRotation = false;\r\n\r\n accudraw.updateRotation();\r\n\r\n // Always want index line to display for x-Axis...changing rotation clears this...so it flashes...\r\n accudraw.indexed |= LockedStates.X_BM;\r\n return true;\r\n }\r\n\r\n public static updateACSByPoints(acs: AuxCoordSystemState, vp: Viewport, points: Point3d[], isDynamics: boolean): boolean {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return false;\r\n\r\n let accept = false;\r\n const vec = [new Vector3d(), new Vector3d(), new Vector3d()];\r\n acs.setOrigin(points[0]);\r\n switch (points.length) {\r\n case 1:\r\n acs.setRotation(vp.rotation);\r\n if (!isDynamics) {\r\n accudraw.published.origin.setFrom(points[0]);\r\n accudraw.published.flags = AccuDrawFlags.SetOrigin;\r\n accudraw.flags.fixedOrg = true;\r\n }\r\n break;\r\n\r\n case 2:\r\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001) {\r\n accept = true;\r\n break;\r\n }\r\n\r\n if (vp.view.is3d()) {\r\n if (normalizedCrossProduct(accudraw.axes.y, vec[0], vec[1]) < 0.00001) {\r\n vec[2].set(0.0, 0.0, 1.0);\r\n\r\n if (normalizedCrossProduct(vec[2], vec[0], vec[1]) < 0.00001) {\r\n vec[2].set(0.0, 1.0, 0.0);\r\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\r\n }\r\n }\r\n\r\n normalizedCrossProduct(vec[0], vec[1], vec[2]);\r\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\r\n\r\n if (!isDynamics) {\r\n accudraw.published.origin.setFrom(points[0]);\r\n accudraw.published.flags = AccuDrawFlags.SetOrigin | AccuDrawFlags.SetNormal;\r\n accudraw.published.vector.setFrom(vec[0]);\r\n }\r\n break;\r\n }\r\n\r\n vec[2].set(0.0, 0.0, 1.0);\r\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\r\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\r\n accept = true;\r\n break;\r\n\r\n case 3:\r\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001 ||\r\n normalizedDifference(points[2], points[0], vec[1]) < 0.00001 ||\r\n normalizedCrossProduct(vec[0], vec[1], vec[2]) < 0.00001) {\r\n accept = true;\r\n break;\r\n }\r\n\r\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\r\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\r\n accept = true;\r\n break;\r\n }\r\n\r\n return accept;\r\n }\r\n\r\n public static processPendingHints() { IModelApp.accuDraw.processHints(); }\r\n\r\n public static requestInputFocus() {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n accudraw.grabInputFocus();\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n // Helper method for GUI implementation...\r\n public static async itemFieldNavigate(index: ItemField, str: string, forward: boolean): Promise<void> {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.getFieldLock(index))\r\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\r\n\r\n if (!accudraw.isActive && KeyinStatus.Partial === accudraw.getKeyinStatus(index)) {\r\n await accudraw.processFieldInput(index, str, true);\r\n } else {\r\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\r\n accudraw.onFieldValueChange(index);\r\n }\r\n\r\n const vp = accudraw.currentView;\r\n const is3d = vp ? vp.view.is3d() : false;\r\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.ANGLE_Item);\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.DIST_Item);\r\n break;\r\n\r\n case ItemField.X_Item:\r\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.Y_Item);\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.X_Item);\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n index = (forward ? (isPolar ? ItemField.DIST_Item : ItemField.X_Item) : (isPolar ? ItemField.ANGLE_Item : ItemField.Y_Item));\r\n break;\r\n }\r\n\r\n accudraw.setKeyinStatus(index, KeyinStatus.Partial);\r\n accudraw.setFocusItem(index);\r\n accudraw.dontMoveFocus = true;\r\n }\r\n\r\n public static itemFieldNewInput(index: ItemField): void { IModelApp.accuDraw.setKeyinStatus(index, KeyinStatus.Partial); }\r\n\r\n public static async itemFieldAcceptInput(index: ItemField, str: string): Promise<void> {\r\n const accudraw = IModelApp.accuDraw;\r\n await accudraw.processFieldInput(index, str, true);\r\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\r\n\r\n if (accudraw.getFieldLock(index))\r\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\r\n\r\n const vp = accudraw.currentView;\r\n if (accudraw.isActive) {\r\n if (!vp)\r\n return;\r\n\r\n if (CompassMode.Polar === accudraw.compassMode)\r\n accudraw.fixPointPolar(vp);\r\n else\r\n accudraw.fixPointRectangular(vp);\r\n\r\n accudraw.flags.dialogNeedsUpdate = true;\r\n return;\r\n }\r\n\r\n const is3d = vp ? vp.view.is3d() : false;\r\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n index = ItemField.ANGLE_Item;\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n index = (is3d ? ItemField.Z_Item : ItemField.DIST_Item);\r\n break;\r\n\r\n case ItemField.X_Item:\r\n index = ItemField.Y_Item;\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n index = (is3d ? ItemField.Z_Item : ItemField.X_Item);\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n index = (isPolar ? ItemField.DIST_Item : ItemField.X_Item);\r\n break;\r\n }\r\n accudraw.setFocusItem(index);\r\n }\r\n\r\n public static itemFieldLockToggle(index: ItemField): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.getFieldLock(index)) {\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n accudraw.distanceLock(true, false);\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n accudraw.angleLock();\r\n break;\r\n\r\n case ItemField.X_Item:\r\n accudraw.clearTentative();\r\n accudraw.locked |= LockedStates.X_BM;\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n accudraw.clearTentative();\r\n accudraw.locked |= LockedStates.Y_BM;\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n accudraw.clearTentative();\r\n break;\r\n }\r\n\r\n return;\r\n }\r\n\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n accudraw.locked &= ~LockedStates.DIST_BM;\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n accudraw.locked &= ~LockedStates.ANGLE_BM;\r\n break;\r\n\r\n case ItemField.X_Item:\r\n accudraw.locked &= ~LockedStates.X_BM;\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n accudraw.locked &= ~LockedStates.Y_BM;\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n break;\r\n }\r\n\r\n accudraw.dontMoveFocus = false;\r\n accudraw.clearTentative();\r\n }\r\n\r\n public static itemRotationModeChange(rotation: RotationMode): void {\r\n const accudraw = IModelApp.accuDraw;\r\n const vp = accudraw.currentView;\r\n const is3d = vp ? vp.view.is3d() : true;\r\n\r\n if (!is3d && (RotationMode.Front === rotation || RotationMode.Side === rotation))\r\n accudraw.setRotationMode(RotationMode.Top);\r\n\r\n accudraw.flags.baseRotation = rotation;\r\n accudraw.updateRotation(true);\r\n }\r\n\r\n // Shortcut implementations for GUI entry points...\r\n public static setOrigin(explicitOrigin?: Point3d): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (explicitOrigin) {\r\n accudraw.published.origin.setFrom(explicitOrigin);\r\n accudraw.flags.haveValidOrigin = true;\r\n } else if (accudraw.isInactive || accudraw.isDeactivated) {\r\n // If AccuSnap is active use adjusted snap point, otherwise use last data point...\r\n const snap = TentativeOrAccuSnap.getCurrentSnap(false);\r\n if (undefined !== snap) {\r\n accudraw.published.origin.setFrom(snap.isPointAdjusted ? snap.adjustedPoint : snap.getPoint());\r\n accudraw.flags.haveValidOrigin = true;\r\n } else {\r\n const ev = new BeButtonEvent();\r\n IModelApp.toolAdmin.fillEventFromLastDataButton(ev);\r\n\r\n if (ev.viewport) {\r\n accudraw.published.origin.setFrom(ev.point);\r\n accudraw.flags.haveValidOrigin = true;\r\n } else {\r\n // NOTE: If current point isn't valid setDefaultOrigin will be called...\r\n accudraw.published.origin.setFrom(accudraw.point);\r\n }\r\n }\r\n } else {\r\n accudraw.published.origin.setFrom(accudraw.point);\r\n accudraw.flags.haveValidOrigin = true;\r\n accudraw.setLastPoint(accudraw.published.origin);\r\n }\r\n\r\n accudraw.clearTentative();\r\n const vp = accudraw.currentView;\r\n\r\n // NOTE: _AdjustPoint should have been called to have setup currentView...\r\n if (vp && !vp.view.is3d())\r\n accudraw.published.origin.z = 0.0;\r\n\r\n accudraw.origin.setFrom(accudraw.published.origin);\r\n accudraw.point.setFrom(accudraw.published.origin);\r\n accudraw.planePt.setFrom(accudraw.published.origin);\r\n accudraw.published.flags |= AccuDrawFlags.SetOrigin;\r\n accudraw.activate();\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static changeCompassMode(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n let axisLockStatus = accudraw.locked & LockedStates.XY_BM;\r\n\r\n if (axisLockStatus) {\r\n if (CompassMode.Rectangular === accudraw.compassMode) {\r\n if (axisLockStatus & LockedStates.X_BM && accudraw.delta.x !== 0.0)\r\n axisLockStatus &= ~LockedStates.X_BM;\r\n\r\n if (axisLockStatus & LockedStates.Y_BM && accudraw.delta.y !== 0.0)\r\n axisLockStatus &= ~LockedStates.Y_BM;\r\n }\r\n }\r\n\r\n accudraw.changeCompassMode(true);\r\n if (axisLockStatus) {\r\n if (CompassMode.Rectangular === accudraw.compassMode) {\r\n accudraw.delta.x = accudraw.delta.y = 0.0;\r\n\r\n if (axisLockStatus & LockedStates.X_BM)\r\n accudraw.setFieldLock(ItemField.X_Item, true);\r\n else if (axisLockStatus & LockedStates.Y_BM)\r\n accudraw.setFieldLock(ItemField.Y_Item, true);\r\n } else {\r\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\r\n }\r\n accudraw.locked = axisLockStatus;\r\n }\r\n accudraw.flags.baseMode = accudraw.compassMode;\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockSmart(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const accuSnap = IModelApp.accuSnap;\r\n\r\n // Don't want AccuSnap to influence axis or Z...\r\n if (accuSnap.isHot) {\r\n accuSnap.clear();\r\n\r\n const vp = accudraw.currentView;\r\n if (vp) {\r\n if (CompassMode.Polar === accudraw.compassMode)\r\n accudraw.fixPointPolar(vp);\r\n else\r\n accudraw.fixPointRectangular(vp);\r\n }\r\n }\r\n\r\n if (CompassMode.Polar === accudraw.compassMode) {\r\n const isSnapped = accudraw.clearTentative();\r\n if (accudraw.locked & LockedStates.ANGLE_BM) { // angle locked (unlock it)\r\n accudraw.setFieldLock(ItemField.ANGLE_Item, false);\r\n accudraw.locked &= ~LockedStates.ANGLE_BM;\r\n } else if (accudraw.getFieldLock(ItemField.DIST_Item)) { // distance locked (unlock it)\r\n accudraw.setFieldLock(ItemField.DIST_Item, false);\r\n accudraw.locked &= ~LockedStates.DIST_BM;\r\n } else if (isSnapped) {\r\n accudraw.doLockAngle(isSnapped);\r\n } else if (accudraw.indexed & LockedStates.ANGLE_BM) { // angle indexed (lock it)\r\n accudraw.angleLock();\r\n } else {\r\n if (Math.abs(accudraw.vector.dotProduct(accudraw.axes.x)) > Math.abs(accudraw.vector.dotProduct(accudraw.axes.y)))\r\n accudraw.indexed |= LockedStates.Y_BM;\r\n else\r\n accudraw.indexed |= LockedStates.X_BM;\r\n accudraw.angleLock();\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n return;\r\n }\r\n\r\n if (accudraw.locked) { // if locked, unlock\r\n accudraw.clearTentative();\r\n accudraw.locked &= ~LockedStates.XY_BM;\r\n accudraw.setFieldLock(ItemField.X_Item, false);\r\n accudraw.setFieldLock(ItemField.Y_Item, false);\r\n if (accudraw.getFieldLock(ItemField.Z_Item) && accudraw.delta.z === 0.0 && !accudraw.stickyZLock)\r\n accudraw.setFieldLock(ItemField.Z_Item, false);\r\n } else { // lock to nearest axis\r\n if (accudraw.clearTentative()) {\r\n if (Math.abs(accudraw.delta.x) >= Geometry.smallAngleRadians && Math.abs(accudraw.delta.y) >= Geometry.smallAngleRadians) {\r\n accudraw.doLockAngle(false);\r\n return;\r\n }\r\n }\r\n\r\n const vp = accudraw.currentView;\r\n if (Math.abs(accudraw.delta.x) > Math.abs(accudraw.delta.y)) {\r\n accudraw.delta.y = 0.0;\r\n accudraw.onFieldValueChange(ItemField.Y_Item);\r\n accudraw.locked |= LockedStates.Y_BM;\r\n accudraw.locked &= ~LockedStates.X_BM;\r\n accudraw.setFieldLock(ItemField.X_Item, false);\r\n accudraw.setFieldLock(ItemField.Y_Item, true);\r\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\r\n } else {\r\n accudraw.delta.x = 0.0;\r\n accudraw.onFieldValueChange(ItemField.X_Item);\r\n accudraw.locked |= LockedStates.X_BM;\r\n accudraw.locked &= ~LockedStates.Y_BM;\r\n accudraw.setFieldLock(ItemField.Y_Item, false);\r\n accudraw.setFieldLock(ItemField.X_Item, true);\r\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\r\n }\r\n\r\n if (!accudraw.flags.lockedRotation) {\r\n accudraw.flags.lockedRotation = true;\r\n accudraw.flags.contextRotMode = ContextMode.Locked;\r\n accudraw.setRotationMode(RotationMode.Context);\r\n }\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n /** Disable indexing when not currently indexed; if indexed, enable respective lock. */\r\n public static lockIndex(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.flags.indexLocked) {\r\n if (accudraw.locked)\r\n this.lockSmart();\r\n\r\n accudraw.flags.indexLocked = false;\r\n } else {\r\n if (CompassMode.Polar === accudraw.compassMode) {\r\n if (accudraw.indexed & LockedStates.XY_BM) {\r\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\r\n accudraw.angleLock();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n this.lockDistance();\r\n } else {\r\n if (accudraw.indexed & LockedStates.X_BM) {\r\n this.lockX();\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n this.lockY();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.Y_BM) {\r\n this.lockY();\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n this.lockX();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM && !(accudraw.indexed & LockedStates.XY_BM)) {\r\n if (accudraw.locked & LockedStates.X_BM)\r\n this.lockY();\r\n else\r\n this.lockX();\r\n }\r\n }\r\n\r\n accudraw.flags.indexLocked = true;\r\n }\r\n }\r\n\r\n public static lockX(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n accudraw.clearTentative();\r\n\r\n if (CompassMode.Rectangular !== accudraw.compassMode) {\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n accudraw.fixPointRectangular(vp);\r\n accudraw.changeCompassMode(true);\r\n }\r\n\r\n if (accudraw.getFieldLock(ItemField.X_Item)) {\r\n accudraw.setFieldLock(ItemField.X_Item, false);\r\n accudraw.locked = accudraw.locked & ~LockedStates.X_BM;\r\n } else {\r\n accudraw.saveCoordinate(ItemField.X_Item, accudraw.delta.x);\r\n accudraw.setFieldLock(ItemField.X_Item, true);\r\n accudraw.locked = accudraw.locked | LockedStates.X_BM;\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockY(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n accudraw.clearTentative();\r\n\r\n if (CompassMode.Rectangular !== accudraw.compassMode) {\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n accudraw.fixPointRectangular(vp);\r\n accudraw.changeCompassMode(true);\r\n }\r\n\r\n if (accudraw.getFieldLock(ItemField.Y_Item)) {\r\n accudraw.setFieldLock(ItemField.Y_Item, false);\r\n accudraw.locked = accudraw.locked & ~LockedStates.Y_BM;\r\n } else {\r\n accudraw.saveCoordinate(ItemField.Y_Item, accudraw.delta.y);\r\n accudraw.setFieldLock(ItemField.Y_Item, true);\r\n accudraw.locked = accudraw.locked | LockedStates.Y_BM;\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockZ(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp || !vp.view.is3d())\r\n return;\r\n\r\n const isSnapped = accudraw.clearTentative();\r\n\r\n if (accudraw.getFieldLock(ItemField.Z_Item)) {\r\n accudraw.setFieldLock(ItemField.Z_Item, false);\r\n } else {\r\n // Move focus to Z field...\r\n if (!isSnapped && accudraw.autoFocusFields) {\r\n accudraw.setFocusItem(ItemField.Z_Item);\r\n accudraw.dontMoveFocus = true;\r\n }\r\n accudraw.setFieldLock(ItemField.Z_Item, true);\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockDistance(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const isSnapped = accudraw.clearTentative();\r\n\r\n if (CompassMode.Polar !== accudraw.compassMode) {\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n accudraw.locked = 0;\r\n accudraw.fixPointPolar(vp);\r\n accudraw.changeCompassMode(true);\r\n }\r\n\r\n if (accudraw.getFieldLock(ItemField.DIST_Item)) {\r\n accudraw.setFieldLock(ItemField.DIST_Item, false);\r\n accudraw.locked &= ~LockedStates.DIST_BM;\r\n\r\n accudraw.setKeyinStatus(ItemField.DIST_Item, KeyinStatus.Dynamic); // Need to clear partial status if locked by entering distance since focus stays in distance field...\r\n } else {\r\n // Move focus to distance field...\r\n if (!isSnapped && accudraw.autoFocusFields)\r\n accudraw.setFocusItem(ItemField.DIST_Item);\r\n accudraw.distanceLock(true, true);\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockAngle(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n accudraw.doLockAngle(accudraw.clearTentative());\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public lockIndex(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.flags.indexLocked) {\r\n if (accudraw.locked)\r\n AccuDrawShortcuts.lockSmart();\r\n\r\n accudraw.flags.indexLocked = false;\r\n } else {\r\n if (CompassMode.Polar === accudraw.compassMode) {\r\n if (accudraw.indexed & LockedStates.XY_BM) {\r\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\r\n accudraw.angleLock();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n AccuDrawShortcuts.lockDistance();\r\n } else {\r\n if (accudraw.indexed & LockedStates.X_BM) {\r\n AccuDrawShortcuts.lockX();\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n AccuDrawShortcuts.lockY();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.Y_BM) {\r\n AccuDrawShortcuts.lockY();\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n AccuDrawShortcuts.lockX();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM && !(accudraw.indexed & LockedStates.XY_BM)) {\r\n if (accudraw.locked & LockedStates.X_BM)\r\n AccuDrawShortcuts.lockY();\r\n else\r\n AccuDrawShortcuts.lockX();\r\n }\r\n }\r\n\r\n accudraw.flags.indexLocked = true;\r\n }\r\n\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static setStandardRotation(rotation: RotationMode): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (RotationMode.Context === rotation) {\r\n const axes = accudraw.baseAxes.clone();\r\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\r\n accudraw.setContextRotation(axes.toMatrix3d(), false, true);\r\n accudraw.refreshDecorationsAndDynamics();\r\n return;\r\n } else {\r\n accudraw.flags.baseRotation = rotation;\r\n accudraw.setRotationMode(rotation);\r\n }\r\n accudraw.updateRotation(true);\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static alignView(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n const newMatrix = accudraw.getRotation();\r\n if (newMatrix.isExactEqual(vp.rotation))\r\n return;\r\n\r\n const targetMatrix = newMatrix.multiplyMatrixMatrix(vp.rotation);\r\n const rotateTransform = Transform.createFixedPointAndMatrix(vp.view.getTargetPoint(), targetMatrix);\r\n const newFrustum = vp.getFrustum();\r\n newFrustum.multiply(rotateTransform);\r\n\r\n vp.view.setupFromFrustum(newFrustum);\r\n vp.synchWithView();\r\n vp.animateFrustumChange();\r\n\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static rotateToBase(): void { this.setStandardRotation(IModelApp.accuDraw.flags.baseRotation); }\r\n\r\n public static rotateToACS(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n // NOTE: Match current ACS orientation..reset auxRotationPlane to top!\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n this.setStandardRotation(RotationMode.ACS);\r\n }\r\n\r\n public static rotateCycle(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp || !vp.view.is3d())\r\n return;\r\n\r\n let rotation: RotationMode;\r\n switch (accudraw.rotationMode) {\r\n case RotationMode.View:\r\n case RotationMode.Side:\r\n rotation = RotationMode.Top;\r\n break;\r\n\r\n case RotationMode.Top:\r\n rotation = RotationMode.Front;\r\n break;\r\n\r\n case RotationMode.Front:\r\n rotation = RotationMode.Side;\r\n break;\r\n\r\n case RotationMode.Context:\r\n rotation = RotationMode.Context;\r\n\r\n if (rotation !== accudraw.flags.baseRotation) {\r\n accudraw.baseAxes.setFrom(accudraw.axes);\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n accudraw.flags.baseRotation = rotation;\r\n } else {\r\n const axes = accudraw.baseAxes.clone();\r\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\r\n if (!accudraw.axes.equals(axes))\r\n accudraw.changeBaseRotationMode(rotation);\r\n }\r\n\r\n switch (accudraw.flags.auxRotationPlane) {\r\n case RotationMode.Front:\r\n accudraw.flags.auxRotationPlane = RotationMode.Side;\r\n break;\r\n\r\n case RotationMode.Side:\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n break;\r\n\r\n case RotationMode.Top:\r\n accudraw.flags.auxRotationPlane = RotationMode.Front;\r\n break;\r\n }\r\n break;\r\n\r\n case RotationMode.ACS:\r\n rotation = RotationMode.ACS;\r\n switch (accudraw.flags.auxRotationPlane) {\r\n case RotationMode.Front:\r\n accudraw.flags.auxRotationPlane = RotationMode.Side;\r\n break;\r\n case RotationMode.Side:\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n break;\r\n case RotationMode.Top:\r\n accudraw.flags.auxRotationPlane = RotationMode.Front;\r\n break;\r\n }\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n this.setStandardRotation(rotation);\r\n }\r\n\r\n public static rotate90(axis: number): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const newRotation = new ThreeAxes();\r\n\r\n accudraw.locked = accudraw.indexed = 0;\r\n accudraw.unlockAllFields();\r\n\r\n switch (axis) {\r\n case 0:\r\n newRotation.x.setFrom(accudraw.axes.x);\r\n newRotation.z.setFrom(accudraw.axes.y);\r\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\r\n break;\r\n\r\n case 1:\r\n newRotation.x.setFrom(accudraw.axes.z);\r\n newRotation.y.setFrom(accudraw.axes.y);\r\n newRotation.x.crossProduct(newRotation.y, newRotation.z);\r\n break;\r\n\r\n case 2:\r\n newRotation.x.setFrom(accudraw.axes.y);\r\n newRotation.z.setFrom(accudraw.axes.z);\r\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\r\n break;\r\n }\r\n\r\n accudraw.setContextRotation(newRotation.toMatrix3d(), true, true);\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static async rotateAxes(aboutCurrentZ: boolean) {\r\n return IModelApp.tools.run(\"AccuDraw.RotateAxes\", aboutCurrentZ);\r\n }\r\n\r\n public static async rotateToElement() {\r\n return IModelApp.tools.run(\"AccuDraw.RotateElement\");\r\n }\r\n\r\n public static async rotatePerpendicular() {\r\n return IModelApp.tools.run(\"AccuDraw.RotatePerpendicular\");\r\n }\r\n\r\n public static async defineACSByElement() {\r\n return IModelApp.tools.run(\"AccuDraw.DefineACSByElement\");\r\n }\r\n\r\n public static async defineACSByPoints() {\r\n return IModelApp.tools.run(\"AccuDraw.DefineACSByPoints\");\r\n }\r\n\r\n public static getACS(acsName: string | undefined, useOrigin: boolean, useRotation: boolean): BentleyStatus {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return BentleyStatus.ERROR;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return BentleyStatus.ERROR;\r\n\r\n let currRotation = 0, currBaseRotation = 0;\r\n const axes = new ThreeAxes();\r\n\r\n if (!useRotation) {\r\n // Save current rotation, event listener on ACS change will orient AccuDraw to ACS...\r\n currRotation = accudraw.rotationMode;\r\n currBaseRotation = accudraw.flags.baseRotation;\r\n axes.setFrom(accudraw.axes);\r\n }\r\n\r\n if (acsName && \"\" !== acsName) {\r\n // // See if this ACS already exists...\r\n // DgnCode acsCode = AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), acsName);\r\n // DgnElementId acsId = vp -> GetViewController().GetDgnDb().Elements().QueryElementIdByCode(acsCode);\r\n\r\n // if (!acsId.IsValid())\r\n // return ERROR;\r\n\r\n // AuxCoordSystemCPtr auxElm = vp -> GetViewController().GetDgnDb().Elements().Get<AuxCoordSystem>(acsId);\r\n\r\n // if (!auxElm.IsValid())\r\n // return ERROR;\r\n\r\n // AuxCoordSystemPtr acsPtr = auxElm -> MakeCopy<AuxCoordSystem>();\r\n\r\n // if (!acsPtr.IsValid())\r\n // return ERROR;\r\n\r\n // AuxCoordSystemCR oldACS = vp -> GetViewController().GetAuxCoordinateSystem();\r\n\r\n // if (!useOrigin)\r\n // acsPtr -> SetOrigin(oldACS.GetOrigin());\r\n\r\n // if (!useRotation)\r\n // acsPtr -> SetRotation(oldACS.GetRotation());\r\n\r\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\r\n }\r\n\r\n const currentACS = vp.view.auxiliaryCoordinateSystem;\r\n\r\n if (useOrigin) {\r\n accudraw.origin.setFrom(currentACS.getOrigin());\r\n accudraw.point.setFrom(accudraw.origin);\r\n accudraw.planePt.setFrom(accudraw.origin);\r\n }\r\n\r\n if (useRotation) {\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n this.setStandardRotation(RotationMode.ACS);\r\n } else {\r\n this.itemFieldUnlockAll();\r\n\r\n accudraw.setRotationMode(currRotation);\r\n accudraw.flags.baseRotation = currBaseRotation;\r\n accudraw.axes.setFrom(axes);\r\n\r\n if (RotationMode.ACS === accudraw.flags.baseRotation) {\r\n const acs = currentACS.clone();\r\n\r\n const rMatrix = accudraw.getRotation();\r\n acs.setRotation(rMatrix);\r\n\r\n AccuDraw.updateAuxCoordinateSystem(acs, vp);\r\n }\r\n\r\n accudraw.published.flags &= ~AccuDrawFlags.OrientACS;\r\n }\r\n\r\n return BentleyStatus.SUCCESS;\r\n }\r\n\r\n public static writeACS(_acsName: string): BentleyStatus {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return BentleyStatus.ERROR;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return BentleyStatus.ERROR;\r\n\r\n // const origin = accudraw.origin;\r\n // const rMatrix = accudraw.getRotation();\r\n // AuxCoordSystemPtr acsPtr = AuxCoordSystem:: CreateFrom(vp -> GetViewController().GetAuxCoordinateSystem());\r\n // acsPtr -> SetOrigin(origin);\r\n // acsPtr -> SetRotation(rMatrix);\r\n // acsPtr -> SetType(CompassMode.Polar == accudraw.getCompassMode() ? ACSType :: Cylindrical : ACSType:: Rectangular);\r\n // acsPtr -> SetCode(AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), nullptr != acsName ? acsName : \"\"));\r\n // acsPtr -> SetDescription(\"\");\r\n\r\n // if (acsName && '\\0' != acsName[0]) {\r\n // DgnDbStatus status;\r\n // acsPtr -> Insert(& status);\r\n\r\n // if (DgnDbStatus:: Success != status)\r\n // return BentleyStatus.ERROR;\r\n // }\r\n\r\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\r\n\r\n // accudraw.flags.baseRotation = RotationMode.ACS;\r\n // accudraw.SetRotationMode(RotationMode.ACS);\r\n\r\n return BentleyStatus.SUCCESS;\r\n }\r\n\r\n public static itemFieldUnlockAll(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (accudraw.isEnabled)\r\n accudraw.unlockAllFields();\r\n }\r\n\r\n /** @internal Temporary keyboard shortcuts. */\r\n public static async processShortcutKey(keyEvent: KeyboardEvent) {\r\n switch (keyEvent.key.toLowerCase()) {\r\n case \"enter\":\r\n AccuDrawShortcuts.lockSmart();\r\n return true;\r\n case \"x\":\r\n AccuDrawShortcuts.lockX();\r\n return true;\r\n case \"y\":\r\n AccuDrawShortcuts.lockY();\r\n return true;\r\n case \"z\":\r\n AccuDrawShortcuts.lockZ();\r\n return true;\r\n case \"a\":\r\n AccuDrawShortcuts.lockAngle();\r\n return true;\r\n case \"d\":\r\n AccuDrawShortcuts.lockDistance();\r\n return true;\r\n case \"h\":\r\n AccuDrawShortcuts.suspendToggle();\r\n return true;\r\n case \"l\":\r\n AccuDrawShortcuts.lockIndex();\r\n return true;\r\n case \"m\":\r\n AccuDrawShortcuts.changeCompassMode();\r\n return true;\r\n case \"t\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Top);\r\n return true;\r\n case \"f\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Front);\r\n return true;\r\n case \"s\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Side);\r\n return true;\r\n case \"v\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.View);\r\n return true;\r\n case \"o\":\r\n AccuDrawShortcuts.setOrigin();\r\n return true;\r\n case \"c\":\r\n AccuDrawShortcuts.rotateCycle();\r\n return true;\r\n case \"q\":\r\n return AccuDrawShortcuts.rotateAxes(true);\r\n case \"e\":\r\n return AccuDrawShortcuts.rotateToElement();\r\n case \"p\":\r\n return AccuDrawShortcuts.rotatePerpendicular();\r\n case \"r\":\r\n return AccuDrawShortcuts.defineACSByPoints();\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSessionToggleTool extends Tool {\r\n public static override toolId = \"AccuDraw.SessionToggle\";\r\n public override async run() {\r\n AccuDrawShortcuts.sessionToggle();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSuspendToggleTool extends Tool {\r\n public static override toolId = \"AccuDraw.SuspendToggle\";\r\n public override async run() {\r\n AccuDrawShortcuts.suspendToggle();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetOriginTool extends Tool {\r\n public static override toolId = \"AccuDraw.SetOrigin\";\r\n public override async run() {\r\n AccuDrawShortcuts.setOrigin();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockSmartTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockSmart\";\r\n public override async run() {\r\n AccuDrawShortcuts.lockSmart();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockIndexTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockIndex\";\r\n public override async run() {\r\n AccuDrawShortcuts.lockIndex();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockXTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockX\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockX();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockYTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockY\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockY();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockZTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockZ\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockZ();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockDistanceTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockDistance\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockDistance();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockAngleTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockAngle\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockAngle();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawChangeModeTool extends Tool {\r\n public static override toolId = \"AccuDraw.ChangeMode\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.changeCompassMode();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateCycleTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateCycle\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.rotateCycle();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateTopTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateTop\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Top);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateFrontTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateFront\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Front);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateSideTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateSide\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Side);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateViewTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateView\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.View);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nabstract class AccuDrawShortcutsTool extends InputCollector {\r\n private _complete = false;\r\n protected get allowShortcut(): boolean { return this.wantActivateOnStart ? IModelApp.accuDraw.isEnabled : true; }\r\n protected get wantActivateOnStart(): boolean { return false; } // Whether to automatically enable AccuDraw before the 1st data button...\r\n protected get wantClearSnapOnStart(): boolean { return false; } // Whether to preserve active Tentative/AccuSnap on install...\r\n protected get wantManipulationImmediate(): boolean { return false; } // Whether additional input is required to process on install...\r\n protected get wantExitOnDataButtonUp(): boolean { return false; } // Whether to exit on button up instead of down (see rotate perpendicular)...\r\n\r\n public override async onInstall(): Promise<boolean> {\r\n if (!this.allowShortcut)\r\n return false;\r\n return super.onInstall();\r\n }\r\n\r\n public override async onPostInstall(): Promise<void> {\r\n await super.onPostInstall();\r\n\r\n if (this.wantActivateOnStart)\r\n IModelApp.accuDraw.activate();\r\n\r\n this.onManipulationStart();\r\n\r\n if (this.wantManipulationImmediate && this.doManipulation(undefined, false)) {\r\n this._complete = true;\r\n return this.exitTool();\r\n }\r\n\r\n // NOTE: InputCollector inherits suspended primitive's state, set everything...\r\n if (this.wantClearSnapOnStart) {\r\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...\r\n } else {\r\n IModelApp.locateManager.initLocateOptions();\r\n this.changeLocateState(false, true, undefined, CoordinateLockOverrides.None);\r\n }\r\n\r\n this.doManipulation(undefined, true);;\r\n }\r\n\r\n public override async onCleanup(): Promise<void> {\r\n if (this._complete)\r\n IModelApp.accuDraw.savedStateInputCollector.ignoreFlags = this.onManipulationComplete();\r\n }\r\n\r\n public override async exitTool(): Promise<void> {\r\n await super.exitTool();\r\n AccuDrawShortcuts.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.doManipulation(ev, false)) {\r\n this._complete = true;\r\n if (!this.wantExitOnDataButtonUp)\r\n await this.exitTool();\r\n }\r\n\r\n return EventHandled.No;\r\n }\r\n\r\n public override async onDataButtonUp(_ev: BeButtonEvent): Promise<EventHandled> {\r\n if (this._complete && this.wantExitOnDataButtonUp)\r\n await this.exitTool();\r\n\r\n return EventHandled.No;\r\n }\r\n\r\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\r\n this.doManipulation(ev, true);\r\n }\r\n\r\n public onManipulationStart(): void { }\r\n public onManipulationComplete(): AccuDrawFlags { return AccuDrawFlags.SetRMatrix; }\r\n public abstract doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateAxesTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.RotateAxes\";\r\n public static override get maxArgs(): number { return 1; }\r\n public constructor(public aboutCurrentZ: boolean = true) { super(); }\r\n\r\n protected override get allowShortcut(): boolean { return IModelApp.accuDraw.isActive; } // Require compass to already be active for this shortcut...\r\n protected override get wantActivateOnStart(): boolean { return true; } // State is demoted to inactive when a tool install, still need this...\r\n\r\n protected override get wantManipulationImmediate(): boolean {\r\n if (TentativeOrAccuSnap.isHot)\r\n return true;\r\n\r\n const accudraw = IModelApp.accuDraw;\r\n\r\n if (CompassMode.Polar === accudraw.compassMode)\r\n return accudraw.getFieldLock(ItemField.ANGLE_Item);\r\n\r\n return accudraw.getFieldLock(ItemField.X_Item) && accudraw.getFieldLock(ItemField.Y_Item);\r\n }\r\n\r\n public override onManipulationStart(): void {\r\n if (this.aboutCurrentZ)\r\n IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Establish current orientation as base for when defining compass rotation by x axis...\r\n CoreTools.outputPromptByKey(\"AccuDraw.RotateAxes.Prompts.FirstPoint\");\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;\r\n if (!vp)\r\n return false;\r\n if (!AccuDrawShortcuts.rotateAxesByPoint(TentativeOrAccuSnap.isHot, this.aboutCurrentZ))\r\n return false;\r\n vp.invalidateDecorations();\r\n if (!isMotion) {\r\n AccuDrawShortcuts.itemFieldUnlockAll();\r\n IModelApp.tentativePoint.clear(true);\r\n }\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: any[]): Promise<boolean> {\r\n for (const arg of args) {\r\n if (arg.toLowerCase() === \"unlockedz\")\r\n this.aboutCurrentZ = false;\r\n }\r\n return this.run(args);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateElementTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.RotateElement\";\r\n private _moveOrigin = !IModelApp.accuDraw.isActive || IModelApp.tentativePoint.isActive; // Preserve current origin if AccuDraw already active and not tentative snap...\r\n\r\n protected override get wantActivateOnStart(): boolean { return true; }\r\n protected override get wantManipulationImmediate(): boolean { return IModelApp.tentativePoint.isSnapped; }\r\n\r\n public override onManipulationStart(): void {\r\n IModelApp.accuDraw.setContext(AccuDrawFlags.FixedOrigin); // Don't move compass when updateOrientation returns false...\r\n CoreTools.outputPromptByKey(\"AccuDraw.RotateElement.Prompts.FirstPoint\");\r\n }\r\n\r\n public override onManipulationComplete(): AccuDrawFlags {\r\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...\r\n if (this._moveOrigin)\r\n ignoreFlags |= AccuDrawFlags.SetOrigin;\r\n return ignoreFlags;\r\n }\r\n\r\n public updateOrientation(snap: SnapDetail, viewport: ScreenViewport, _isMotion: boolean): boolean {\r\n const accudraw = IModelApp.accuDraw;\r\n const rMatrix = AccuDraw.getSnapRotation(snap, viewport);\r\n if (undefined === rMatrix)\r\n return false;\r\n\r\n const point = this._moveOrigin ? snap.snapPoint : accudraw.origin;\r\n accudraw.setContext(AccuDrawFlags.SetRMatrix | AccuDrawFlags.AlwaysSetOrigin, point, rMatrix);\r\n return true;\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n const viewport = ev ? ev.viewport : IModelApp.accuDraw.currentView;\r\n if (!viewport)\r\n return false;\r\n\r\n const snap = TentativeOrAccuSnap.getCurrentSnap(false);\r\n if (undefined === snap || !this.updateOrientation(snap, viewport, isMotion))\r\n return false;\r\n\r\n if (undefined === ev)\r\n AccuDrawShortcuts.processPendingHints(); // Would normally be processed after button down, necessary when called from post install...\r\n if (!isMotion)\r\n IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Hold temporary rotation for tool duration...\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotatePerpendicularTool extends AccuDrawRotateElementTool {\r\n public static override toolId = \"AccuDraw.RotatePerpendicular\";\r\n protected _location?: { point: Point3d, viewport: ScreenViewport };\r\n\r\n protected override get wantExitOnDataButtonUp(): boolean { return true; } // Complete on button up since button down clears tentative...\r\n\r\n public override onManipulationComplete(): AccuDrawFlags {\r\n if (undefined !== this._location) {\r\n // Use tentative to hold adjusted snap location for suspended tool...\r\n IModelApp.tentativePoint.setPoint(this._location.point);\r\n IModelApp.tentativePoint.viewport = this._location.viewport;\r\n IModelApp.tentativePoint.showTentative();\r\n }\r\n\r\n return AccuDrawFlags.SetRMatrix | AccuDrawFlags.Disable;\r\n }\r\n\r\n public override updateOrientation(snap: SnapDetail, viewport: ScreenViewport, isMotion: boolean): boolean {\r\n const curve = snap.getCurvePrimitive();\r\n if (undefined === curve)\r\n return false;\r\n\r\n const accudraw = IModelApp.accuDraw;\r\n const rMatrix = AccuDraw.getSnapRotation(snap, viewport);\r\n if (undefined === rMatrix)\r\n return false;\r\n\r\n const zVec = rMatrix.getRow(2); // This is a row matrix...\r\n const spacePoint = AccuDrawHintBuilder.projectPointToPlaneInView(accudraw.origin, snap.getPoint(), zVec, viewport, true);\r\n if (undefined === spacePoint)\r\n return false;\r\n\r\n const detail = curve.closestPoint(spacePoint, true);\r\n if (undefined === detail?.curve)\r\n return false;\r\n\r\n const point = AccuDrawHintBuilder.projectPointToPlaneInView(detail.point, accudraw.origin, zVec, viewport, true);\r\n if (undefined === point)\r\n return false;\r\n\r\n const xVec = new Vector3d();\r\n if (normalizedDifference(point, accudraw.origin, xVec) < Geometry.smallAngleRadians)\r\n return false;; // Closest point and compass origin coincide...\r\n\r\n const yVec = xVec.unitCrossProduct(zVec);\r\n if (undefined === yVec)\r\n return false;\r\n\r\n rMatrix.setColumns(xVec, yVec, zVec);\r\n Matrix3d.createRigidFromMatrix3d(rMatrix, AxisOrder.XZY, rMatrix);\r\n rMatrix.transposeInPlace();\r\n\r\n snap.setSnapPoint(point, SnapHeat.InRange); // Force hot snap so that adjust point uses it for alignments...\r\n accudraw.setContext(AccuDrawFlags.SetRMatrix | AccuDrawFlags.AlwaysSetOrigin, accudraw.origin, rMatrix);\r\n accudraw.adjustPoint(point, viewport, false); // Update internals for new snap location...\r\n\r\n if (!isMotion)\r\n this._location = { point, viewport };\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class DefineACSByElementTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.DefineACSByElement\";\r\n private _origin = Point3d.create();\r\n private _rMatrix = Matrix3d.createIdentity();\r\n private _acs?: AuxCoordSystemState;\r\n\r\n public override onManipulationStart(): void { CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByElement.Prompts.FirstPoint\"); }\r\n\r\n public updateOrientation(snap: SnapDetail, vp: Viewport): boolean {\r\n const rMatrix = AccuDraw.getSnapRotation(snap, vp);\r\n if (undefined === rMatrix)\r\n return false;\r\n this._origin = snap.snapPoint;\r\n this._rMatrix = rMatrix;\r\n return true;\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n const vp = ev ? ev.viewport : undefined;\r\n if (!vp)\r\n return false;\r\n\r\n const snapDetail = TentativeOrAccuSnap.getCurrentSnap(false);\r\n if (undefined === snapDetail || !this.updateOrientation(snapDetail, vp))\r\n return false;\r\n\r\n IModelApp.viewManager.invalidateDecorationsAllViews();\r\n if (isMotion)\r\n return true;\r\n\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n\r\n this._acs.setOrigin(this._origin);\r\n this._acs.setRotation(this._rMatrix);\r\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\r\n AccuDrawShortcuts.rotateToACS();\r\n return true;\r\n }\r\n\r\n public override decorate(context: DecorateContext): void {\r\n const vp = context.viewport;\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n this._acs.setOrigin(this._origin);\r\n this._acs.setRotation(this._rMatrix);\r\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class DefineACSByPointsTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.DefineACSByPoints\";\r\n private readonly _points: Point3d[] = [];\r\n private _acs?: AuxCoordSystemState;\r\n\r\n public override onManipulationStart(): void {\r\n if (!IModelApp.tentativePoint.isActive) {\r\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.FirstPoint\");\r\n return;\r\n }\r\n\r\n const origin = IModelApp.tentativePoint.getPoint().clone();\r\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.SecondPoint\");\r\n IModelApp.accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.FixedOrigin, origin);\r\n this._points.push(origin);\r\n IModelApp.tentativePoint.clear(true);\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n if (!ev || !ev.viewport)\r\n return false;\r\n\r\n IModelApp.viewManager.invalidateDecorationsAllViews();\r\n if (isMotion)\r\n return false;\r\n\r\n IModelApp.accuDraw.activate();\r\n this._points.push(ev.point.clone());\r\n\r\n const vp = ev.viewport;\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n\r\n if (AccuDrawShortcuts.updateACSByPoints(this._acs, vp, this._points, false)) {\r\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\r\n AccuDrawShortcuts.rotateToACS();\r\n return true;\r\n }\r\n\r\n CoreTools.outputPromptByKey(`AccuDraw.DefineACSByPoints.Prompts${1 === this._points.length ? \".SecondPoint\" : \".NextPoint\"}`);\r\n return false;\r\n }\r\n\r\n public override decorate(context: DecorateContext): void {\r\n const tmpPoints: Point3d[] = [];\r\n this._points.forEach((pt) => tmpPoints.push(pt));\r\n\r\n const ev = new BeButtonEvent();\r\n IModelApp.toolAdmin.fillEventFromCursorLocation(ev);\r\n tmpPoints.push(ev.point);\r\n\r\n const vp = context.viewport;\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n\r\n AccuDrawShortcuts.updateACSByPoints(this._acs, vp, tmpPoints, true);\r\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\r\n }\r\n}\r\n"]}
|
package/lib/esm/AccuDraw.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ import { StandardViewId } from "./StandardView";
|
|
|
10
10
|
import { BeButtonEvent } from "./tools/Tool";
|
|
11
11
|
import { DecorateContext } from "./ViewContext";
|
|
12
12
|
import { ScreenViewport, Viewport } from "./Viewport";
|
|
13
|
+
import { ParserSpec } from "@itwin/core-quantity";
|
|
13
14
|
/** @internal */
|
|
14
15
|
export declare enum AccuDrawFlags {
|
|
15
16
|
None = 0,
|
|
@@ -334,7 +335,13 @@ export declare class AccuDraw {
|
|
|
334
335
|
/** Set the current value for the supplied input field */
|
|
335
336
|
setValueByIndex(index: ItemField, value: number): void;
|
|
336
337
|
private updateVector;
|
|
338
|
+
/** Allow the AccuDraw user interface to supply the distance parser */
|
|
339
|
+
getLengthParser(): ParserSpec | undefined;
|
|
337
340
|
private stringToDistance;
|
|
341
|
+
/** Allow the AccuDraw user interface to specify bearing */
|
|
342
|
+
get isBearingMode(): boolean;
|
|
343
|
+
/** Allow the AccuDraw user interface to supply the angle/direction parser */
|
|
344
|
+
getAngleParser(): ParserSpec | undefined;
|
|
338
345
|
private stringToAngle;
|
|
339
346
|
private updateFieldValue;
|
|
340
347
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccuDraw.d.ts","sourceRoot":"","sources":["../../src/AccuDraw.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AccuDraw.d.ts","sourceRoot":"","sources":["../../src/AccuDraw.ts"],"names":[],"mappings":"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"}
|