@itwin/core-frontend 5.12.0-dev.6 → 5.12.0-dev.7
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 +6 -1
- package/lib/cjs/tools/AccuDrawShortcutTool.d.ts.map +1 -1
- package/lib/cjs/tools/AccuDrawShortcutTool.js +6 -2
- package/lib/cjs/tools/AccuDrawShortcutTool.js.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.d.ts +109 -23
- package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.js +234 -34
- package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
- package/lib/cjs/tools/ClipViewTool.d.ts +2 -1
- package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ClipViewTool.js +8 -7
- package/lib/cjs/tools/ClipViewTool.js.map +1 -1
- package/lib/esm/tools/AccuDrawShortcutTool.d.ts.map +1 -1
- package/lib/esm/tools/AccuDrawShortcutTool.js +6 -2
- package/lib/esm/tools/AccuDrawShortcutTool.js.map +1 -1
- package/lib/esm/tools/AccuDrawTool.d.ts +109 -23
- package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/esm/tools/AccuDrawTool.js +233 -34
- package/lib/esm/tools/AccuDrawTool.js.map +1 -1
- package/lib/esm/tools/ClipViewTool.d.ts +2 -1
- package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ClipViewTool.js +9 -8
- package/lib/esm/tools/ClipViewTool.js.map +1 -1
- package/lib/public/locales/en/CoreTools.json +10 -0
- package/package.json +20 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccuDrawTool.js","sourceRoot":"","sources":["../../../src/tools/AccuDrawTool.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { BentleyStatus } from \"@itwin/core-bentley\";\nimport { Geometry, Matrix3d, Point3d, Transform, Vector3d } from \"@itwin/core-geometry\";\nimport { AccuDraw, AccuDrawFlags, CompassMode, ContextMode, ItemField, KeyinStatus, LockedStates, RotationMode, ThreeAxes } from \"../AccuDraw\";\nimport { TentativeOrAccuSnap } from \"../AccuSnap\";\nimport { ACSDisplayOptions, AuxCoordSystemState } from \"../AuxCoordSys\";\nimport { SnapDetail } from \"../HitDetail\";\nimport { IModelApp } from \"../IModelApp\";\nimport { DecorateContext } from \"../ViewContext\";\nimport { ScreenViewport, Viewport } from \"../Viewport\";\nimport { BeButtonEvent, CoreTools, Tool } from \"./Tool\";\nimport { AccuDrawShortcutImplementation, AccuDrawShortcutTool } from \"./AccuDrawShortcutTool\";\n\n// cSpell:ignore dont unlockedz\n\nfunction normalizedDifference(point1: Point3d, point2: Point3d, out: Vector3d): number {\n return point2.vectorTo(point1).normalizeWithLength(out).mag;\n}\n\nfunction normalizedCrossProduct(vec1: Vector3d, vec2: Vector3d, out: Vector3d): number {\n return vec1.crossProduct(vec2, out).normalizeWithLength(out).mag;\n}\n\n/**\n * A shortcut may require no user input (immediate) or it may install a tool to collect the needed input. AccuDrawShortcuts are how users control AccuDraw.\n * A tool implementor should not use this class to setup AccuDraw, instead use AccuDrawHintBuilder to provide hints.\n * @beta\n */\nexport class AccuDrawShortcuts {\n /** Disable/Enable AccuDraw for the session */\n public static sessionToggle(): void {\n const accudraw = IModelApp.accuDraw;\n\n if (accudraw.isEnabled)\n accudraw.disableForSession();\n else\n accudraw.enableForSession();\n }\n\n /** Suspend/Unsuspend AccuDraw for the active tool */\n public static suspendToggle(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.isActive)\n accudraw.deactivate();\n else\n accudraw.activate();\n\n accudraw.refreshDecorationsAndDynamics();\n }\n\n public static rotateAxesByPoint(isSnapped: boolean, aboutCurrentZ: boolean): boolean {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return false;\n\n const vp = accudraw.currentView;\n if (!vp)\n return false;\n\n const point = accudraw.point;\n if (!vp.view.is3d())\n point.z = 0.0;\n\n if (aboutCurrentZ)\n accudraw.hardConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\n else\n accudraw.softConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\n\n // Snap point and compass origin coincide...\n const xVec = new Vector3d();\n if (normalizedDifference(point, accudraw.planePt, xVec) < Geometry.smallAngleRadians)\n return false;\n\n accudraw.axes.x.setFrom(xVec);\n\n if (RotationMode.Context !== accudraw.rotationMode)\n accudraw.setRotationMode(RotationMode.Context);\n\n accudraw.flags.contextRotMode = ContextMode.XAxis;\n accudraw.flags.lockedRotation = false;\n\n accudraw.updateRotation();\n\n // Always want index line to display for x-Axis...changing rotation clears this...so it flashes...\n accudraw.indexed |= LockedStates.X_BM;\n return true;\n }\n\n public static updateACSByPoints(acs: AuxCoordSystemState, vp: Viewport, points: Point3d[], isDynamics: boolean): boolean {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return false;\n\n let accept = false;\n const vec = [new Vector3d(), new Vector3d(), new Vector3d()];\n acs.setOrigin(points[0]);\n switch (points.length) {\n case 1:\n acs.setRotation(vp.rotation);\n if (!isDynamics) {\n accudraw.published.origin.setFrom(points[0]);\n accudraw.published.flags = AccuDrawFlags.SetOrigin;\n accudraw.flags.fixedOrg = true;\n }\n break;\n\n case 2:\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001) {\n accept = true;\n break;\n }\n\n if (vp.view.is3d()) {\n if (normalizedCrossProduct(accudraw.axes.y, vec[0], vec[1]) < 0.00001) {\n vec[2].set(0.0, 0.0, 1.0);\n\n if (normalizedCrossProduct(vec[2], vec[0], vec[1]) < 0.00001) {\n vec[2].set(0.0, 1.0, 0.0);\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\n }\n }\n\n normalizedCrossProduct(vec[0], vec[1], vec[2]);\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\n\n if (!isDynamics) {\n accudraw.published.origin.setFrom(points[0]);\n accudraw.published.flags = AccuDrawFlags.SetOrigin | AccuDrawFlags.SetNormal;\n accudraw.published.vector.setFrom(vec[0]);\n }\n break;\n }\n\n vec[2].set(0.0, 0.0, 1.0);\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\n accept = true;\n break;\n\n case 3:\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001 ||\n normalizedDifference(points[2], points[0], vec[1]) < 0.00001 ||\n normalizedCrossProduct(vec[0], vec[1], vec[2]) < 0.00001) {\n accept = true;\n break;\n }\n\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\n accept = true;\n break;\n }\n\n return accept;\n }\n\n public static processPendingHints() {\n IModelApp.accuDraw.processHints();\n }\n\n public static requestInputFocus() {\n IModelApp.accuDraw.requestInputFocus();\n }\n\n // Helper method for GUI implementation...\n public static async itemFieldNavigate(index: ItemField, str: string, forward: boolean): Promise<void> {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.getFieldLock(index))\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\n\n if (!accudraw.isActive && KeyinStatus.Partial === accudraw.getKeyinStatus(index)) {\n await accudraw.processFieldInput(index, str, true);\n } else {\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\n accudraw.onFieldValueChange(index);\n }\n\n const vp = accudraw.currentView;\n const is3d = vp ? accudraw.is3dCompass(vp) : false;\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\n switch (index) {\n case ItemField.DIST_Item:\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.ANGLE_Item);\n break;\n\n case ItemField.ANGLE_Item:\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.DIST_Item);\n break;\n\n case ItemField.X_Item:\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.Y_Item);\n break;\n\n case ItemField.Y_Item:\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.X_Item);\n break;\n\n case ItemField.Z_Item:\n index = (forward ? (isPolar ? ItemField.DIST_Item : ItemField.X_Item) : (isPolar ? ItemField.ANGLE_Item : ItemField.Y_Item));\n break;\n }\n\n // Set focus to new item and disable automatic focus change based on cursor location in rectangular mode.\n accudraw.setFocusItem(index);\n accudraw.dontMoveFocus = true;\n }\n\n public static itemFieldNewInput(index: ItemField): void { IModelApp.accuDraw.setKeyinStatus(index, KeyinStatus.Partial); }\n public static itemFieldCompletedInput(index: ItemField): void { IModelApp.accuDraw.setKeyinStatus(index, KeyinStatus.Dynamic); }\n\n public static async itemFieldAcceptInput(index: ItemField, str: string): Promise<void> {\n const accudraw = IModelApp.accuDraw;\n await accudraw.processFieldInput(index, str, true);\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\n\n if (accudraw.getFieldLock(index))\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\n\n const vp = accudraw.currentView;\n if (accudraw.isActive) {\n if (!vp)\n return;\n\n if (CompassMode.Polar === accudraw.compassMode)\n accudraw.fixPointPolar(vp);\n else\n accudraw.fixPointRectangular(vp);\n\n accudraw.flags.dialogNeedsUpdate = true;\n return;\n }\n\n const is3d = vp ? vp.view.is3d() : false;\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\n switch (index) {\n case ItemField.DIST_Item:\n index = ItemField.ANGLE_Item;\n break;\n\n case ItemField.ANGLE_Item:\n index = (is3d ? ItemField.Z_Item : ItemField.DIST_Item);\n break;\n\n case ItemField.X_Item:\n index = ItemField.Y_Item;\n break;\n\n case ItemField.Y_Item:\n index = (is3d ? ItemField.Z_Item : ItemField.X_Item);\n break;\n\n case ItemField.Z_Item:\n index = (isPolar ? ItemField.DIST_Item : ItemField.X_Item);\n break;\n }\n accudraw.setFocusItem(index);\n }\n\n public static itemFieldLockToggle(index: ItemField): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.getFieldLock(index)) {\n switch (index) {\n case ItemField.DIST_Item:\n accudraw.distanceLock(true, false);\n break;\n\n case ItemField.ANGLE_Item:\n accudraw.angleLock();\n break;\n\n case ItemField.X_Item:\n accudraw.clearTentative();\n accudraw.locked |= LockedStates.X_BM;\n break;\n\n case ItemField.Y_Item:\n accudraw.clearTentative();\n accudraw.locked |= LockedStates.Y_BM;\n break;\n\n case ItemField.Z_Item:\n accudraw.clearTentative();\n break;\n }\n\n return;\n }\n\n switch (index) {\n case ItemField.DIST_Item:\n accudraw.locked &= ~LockedStates.DIST_BM;\n break;\n\n case ItemField.ANGLE_Item:\n accudraw.locked &= ~LockedStates.ANGLE_BM;\n break;\n\n case ItemField.X_Item:\n accudraw.locked &= ~LockedStates.X_BM;\n break;\n\n case ItemField.Y_Item:\n accudraw.locked &= ~LockedStates.Y_BM;\n break;\n\n case ItemField.Z_Item:\n break;\n }\n\n accudraw.dontMoveFocus = false;\n accudraw.clearTentative();\n }\n\n public static choosePreviousValue(index: ItemField): void {\n const accudraw = IModelApp.accuDraw;\n accudraw.getSavedValue(index, false);\n accudraw.refreshDecorationsAndDynamics();\n }\n\n public static chooseNextValue(index: ItemField): void {\n const accudraw = IModelApp.accuDraw;\n accudraw.getSavedValue(index, true);\n accudraw.refreshDecorationsAndDynamics();\n }\n\n public static clearSavedValues(): void {\n const accudraw = IModelApp.accuDraw;\n accudraw.clearSavedValues();\n }\n\n public static itemRotationModeChange(rotation: RotationMode): void {\n const accudraw = IModelApp.accuDraw;\n const vp = accudraw.currentView;\n const is3d = vp ? vp.view.is3d() : true;\n\n if (!is3d && (RotationMode.Front === rotation || RotationMode.Side === rotation))\n accudraw.setRotationMode(RotationMode.Top);\n\n accudraw.flags.baseRotation = rotation;\n accudraw.updateRotation(true);\n }\n\n // Shortcut implementations for GUI entry points...\n public static setOrigin(explicitOrigin?: Point3d): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (explicitOrigin) {\n accudraw.published.origin.setFrom(explicitOrigin);\n accudraw.flags.haveValidOrigin = true;\n } else if (accudraw.isInactive || accudraw.isDeactivated) {\n // If AccuSnap is active use adjusted snap point, otherwise use last data point...\n const snap = TentativeOrAccuSnap.getCurrentSnap(false);\n if (undefined !== snap) {\n accudraw.published.origin.setFrom(snap.isPointAdjusted ? snap.adjustedPoint : snap.getPoint());\n accudraw.flags.haveValidOrigin = true;\n } else {\n const ev = new BeButtonEvent();\n IModelApp.toolAdmin.fillEventFromLastDataButton(ev);\n\n if (ev.viewport) {\n accudraw.published.origin.setFrom(ev.point);\n accudraw.flags.haveValidOrigin = true;\n } else {\n // NOTE: If current point isn't valid setDefaultOrigin will be called...\n accudraw.published.origin.setFrom(accudraw.point);\n }\n }\n } else {\n accudraw.published.origin.setFrom(accudraw.point);\n accudraw.flags.haveValidOrigin = true;\n accudraw.setLastPoint(accudraw.published.origin);\n }\n\n accudraw.clearTentative();\n const vp = accudraw.currentView;\n\n // NOTE: _AdjustPoint should have been called to have setup currentView...\n if (vp && !vp.view.is3d())\n accudraw.published.origin.z = 0.0;\n\n accudraw.origin.setFrom(accudraw.published.origin);\n accudraw.point.setFrom(accudraw.published.origin);\n accudraw.planePt.setFrom(accudraw.published.origin);\n accudraw.published.flags |= AccuDrawFlags.SetOrigin;\n accudraw.activate();\n accudraw.refreshDecorationsAndDynamics(); // NOTE: Will already grab input focus through processHints...\n }\n\n public static changeCompassMode(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n let axisLockStatus = accudraw.locked & LockedStates.XY_BM;\n\n if (axisLockStatus) {\n if (CompassMode.Rectangular === accudraw.compassMode) {\n if (axisLockStatus & LockedStates.X_BM && accudraw.delta.x !== 0.0)\n axisLockStatus &= ~LockedStates.X_BM;\n\n if (axisLockStatus & LockedStates.Y_BM && accudraw.delta.y !== 0.0)\n axisLockStatus &= ~LockedStates.Y_BM;\n }\n }\n\n accudraw.changeCompassMode(true);\n if (axisLockStatus) {\n if (CompassMode.Rectangular === accudraw.compassMode) {\n accudraw.delta.x = accudraw.delta.y = 0.0;\n\n if (axisLockStatus & LockedStates.X_BM)\n accudraw.setFieldLock(ItemField.X_Item, true);\n else if (axisLockStatus & LockedStates.Y_BM)\n accudraw.setFieldLock(ItemField.Y_Item, true);\n } else {\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\n }\n accudraw.locked = axisLockStatus;\n }\n accudraw.flags.baseMode = accudraw.compassMode;\n this.requestInputFocus();\n }\n\n public static lockSmart(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const accuSnap = IModelApp.accuSnap;\n\n // Don't want AccuSnap to influence axis or Z...\n if (accuSnap.isHot) {\n accuSnap.clear();\n\n const vp = accudraw.currentView;\n if (vp) {\n if (CompassMode.Polar === accudraw.compassMode)\n accudraw.fixPointPolar(vp);\n else\n accudraw.fixPointRectangular(vp);\n }\n }\n\n if (CompassMode.Polar === accudraw.compassMode) {\n const isSnapped = accudraw.clearTentative();\n if (accudraw.locked & LockedStates.ANGLE_BM) { // angle locked (unlock it)\n accudraw.setFieldLock(ItemField.ANGLE_Item, false);\n accudraw.locked &= ~LockedStates.ANGLE_BM;\n } else if (accudraw.getFieldLock(ItemField.DIST_Item)) { // distance locked (unlock it)\n accudraw.setFieldLock(ItemField.DIST_Item, false);\n accudraw.locked &= ~LockedStates.DIST_BM;\n } else if (isSnapped) {\n accudraw.doLockAngle(isSnapped);\n } else if (accudraw.indexed & LockedStates.ANGLE_BM) { // angle indexed (lock it)\n accudraw.angleLock();\n } else {\n if (Math.abs(accudraw.vector.dotProduct(accudraw.axes.x)) > Math.abs(accudraw.vector.dotProduct(accudraw.axes.y)))\n accudraw.indexed |= LockedStates.Y_BM;\n else\n accudraw.indexed |= LockedStates.X_BM;\n accudraw.angleLock();\n }\n this.requestInputFocus();\n return;\n }\n\n if (accudraw.locked) { // if locked, unlock\n accudraw.clearTentative();\n accudraw.locked &= ~LockedStates.XY_BM;\n accudraw.setFieldLock(ItemField.X_Item, false);\n accudraw.setFieldLock(ItemField.Y_Item, false);\n if (accudraw.getFieldLock(ItemField.Z_Item) && accudraw.delta.z === 0.0 && !accudraw.stickyZLock)\n accudraw.setFieldLock(ItemField.Z_Item, false);\n } else { // lock to nearest axis\n if (accudraw.clearTentative()) {\n if (Math.abs(accudraw.delta.x) >= Geometry.smallAngleRadians && Math.abs(accudraw.delta.y) >= Geometry.smallAngleRadians) {\n accudraw.doLockAngle(false);\n return;\n }\n }\n\n const vp = accudraw.currentView;\n if (Math.abs(accudraw.delta.x) > Math.abs(accudraw.delta.y)) {\n accudraw.delta.y = 0.0;\n accudraw.onFieldValueChange(ItemField.Y_Item);\n accudraw.locked |= LockedStates.Y_BM;\n accudraw.locked &= ~LockedStates.X_BM;\n accudraw.setFieldLock(ItemField.X_Item, false);\n accudraw.setFieldLock(ItemField.Y_Item, true);\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\n } else {\n accudraw.delta.x = 0.0;\n accudraw.onFieldValueChange(ItemField.X_Item);\n accudraw.locked |= LockedStates.X_BM;\n accudraw.locked &= ~LockedStates.Y_BM;\n accudraw.setFieldLock(ItemField.Y_Item, false);\n accudraw.setFieldLock(ItemField.X_Item, true);\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\n }\n\n if (!accudraw.flags.lockedRotation) {\n accudraw.flags.lockedRotation = true;\n accudraw.flags.contextRotMode = ContextMode.Locked;\n accudraw.setRotationMode(RotationMode.Context);\n }\n }\n this.requestInputFocus();\n }\n\n /** Disable indexing when not currently indexed; if indexed, enable respective lock. */\n public static lockIndex(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.flags.indexLocked) {\n if (accudraw.locked)\n this.lockSmart();\n\n accudraw.flags.indexLocked = false;\n } else {\n if (CompassMode.Polar === accudraw.compassMode) {\n if (accudraw.indexed & LockedStates.XY_BM) {\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\n accudraw.angleLock();\n }\n\n if (accudraw.indexed & LockedStates.DIST_BM)\n this.lockDistance();\n } else {\n if (accudraw.indexed & LockedStates.X_BM) {\n this.lockX();\n\n if (accudraw.indexed & LockedStates.DIST_BM)\n this.lockY();\n }\n\n if (accudraw.indexed & LockedStates.Y_BM) {\n this.lockY();\n\n if (accudraw.indexed & LockedStates.DIST_BM)\n this.lockX();\n }\n\n if (accudraw.indexed & LockedStates.DIST_BM && !(accudraw.indexed & LockedStates.XY_BM)) {\n if (accudraw.locked & LockedStates.X_BM)\n this.lockY();\n else\n this.lockX();\n }\n }\n\n accudraw.flags.indexLocked = true;\n }\n\n this.requestInputFocus();\n }\n\n public static lockX(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n accudraw.clearTentative();\n\n if (CompassMode.Rectangular !== accudraw.compassMode) {\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n accudraw.fixPointRectangular(vp);\n accudraw.changeCompassMode(true);\n }\n\n if (accudraw.getFieldLock(ItemField.X_Item)) {\n accudraw.setFieldLock(ItemField.X_Item, false);\n accudraw.locked = accudraw.locked & ~LockedStates.X_BM;\n accudraw.setKeyinStatus(ItemField.X_Item, KeyinStatus.Dynamic);\n } else {\n accudraw.saveCoordinate(ItemField.X_Item, accudraw.delta.x);\n accudraw.setFieldLock(ItemField.X_Item, true);\n accudraw.locked = accudraw.locked | LockedStates.X_BM;\n }\n this.requestInputFocus();\n }\n\n public static lockY(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n accudraw.clearTentative();\n\n if (CompassMode.Rectangular !== accudraw.compassMode) {\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n accudraw.fixPointRectangular(vp);\n accudraw.changeCompassMode(true);\n }\n\n if (accudraw.getFieldLock(ItemField.Y_Item)) {\n accudraw.setFieldLock(ItemField.Y_Item, false);\n accudraw.locked = accudraw.locked & ~LockedStates.Y_BM;\n accudraw.setKeyinStatus(ItemField.Y_Item, KeyinStatus.Dynamic);\n } else {\n accudraw.saveCoordinate(ItemField.Y_Item, accudraw.delta.y);\n accudraw.setFieldLock(ItemField.Y_Item, true);\n accudraw.locked = accudraw.locked | LockedStates.Y_BM;\n }\n this.requestInputFocus();\n }\n\n public static lockZ(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const vp = accudraw.currentView;\n if (!vp || !vp.view.is3d())\n return;\n\n const isSnapped = accudraw.clearTentative();\n\n if (accudraw.getFieldLock(ItemField.Z_Item)) {\n accudraw.setFieldLock(ItemField.Z_Item, false);\n accudraw.setKeyinStatus(ItemField.Z_Item, KeyinStatus.Dynamic);\n } else {\n // Move focus to Z field...\n if (!isSnapped && accudraw.autoFocusFields) {\n accudraw.setFocusItem(ItemField.Z_Item);\n accudraw.dontMoveFocus = true;\n }\n accudraw.setFieldLock(ItemField.Z_Item, true);\n }\n this.requestInputFocus();\n }\n\n public static lockDistance(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const isSnapped = accudraw.clearTentative();\n\n if (CompassMode.Polar !== accudraw.compassMode) {\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n accudraw.locked = 0;\n accudraw.fixPointPolar(vp);\n accudraw.changeCompassMode(true);\n }\n\n if (accudraw.getFieldLock(ItemField.DIST_Item)) {\n accudraw.setFieldLock(ItemField.DIST_Item, false);\n accudraw.locked &= ~LockedStates.DIST_BM;\n accudraw.setKeyinStatus(ItemField.DIST_Item, KeyinStatus.Dynamic);\n } else {\n // Move focus to distance field...\n if (!isSnapped && accudraw.autoFocusFields)\n accudraw.setFocusItem(ItemField.DIST_Item);\n accudraw.distanceLock(true, true);\n }\n this.requestInputFocus();\n }\n\n public static lockAngle(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n accudraw.doLockAngle(accudraw.clearTentative());\n this.requestInputFocus();\n }\n\n public static setStandardRotation(rotation: RotationMode): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (RotationMode.Context === rotation) {\n const axes = accudraw.baseAxes.clone();\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\n accudraw.setContextRotation(axes.toMatrix3d(), false, true);\n this.requestInputFocus();\n return;\n } else {\n accudraw.flags.baseRotation = rotation;\n accudraw.setRotationMode(rotation);\n }\n accudraw.updateRotation(true);\n this.requestInputFocus();\n }\n\n public static alignView(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n const newMatrix = accudraw.getRotation();\n if (newMatrix.isExactEqual(vp.rotation))\n return;\n\n const targetMatrix = newMatrix.multiplyMatrixMatrix(vp.rotation);\n const rotateTransform = Transform.createFixedPointAndMatrix(vp.view.getTargetPoint(), targetMatrix);\n const newFrustum = vp.getFrustum();\n newFrustum.multiply(rotateTransform);\n\n vp.view.setupFromFrustum(newFrustum);\n vp.synchWithView();\n vp.animateFrustumChange();\n\n this.requestInputFocus();\n }\n\n public static rotateToBase(): void { this.setStandardRotation(IModelApp.accuDraw.flags.baseRotation); }\n\n public static rotateToACS(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n // NOTE: Match current ACS orientation..reset auxRotationPlane to top!\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n this.setStandardRotation(RotationMode.ACS);\n }\n\n public static rotateCycle(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const vp = accudraw.currentView;\n if (!vp || !vp.view.is3d())\n return;\n\n let rotation: RotationMode;\n switch (accudraw.rotationMode) {\n case RotationMode.View:\n case RotationMode.Side:\n rotation = RotationMode.Top;\n break;\n\n case RotationMode.Top:\n rotation = RotationMode.Front;\n break;\n\n case RotationMode.Front:\n rotation = RotationMode.Side;\n break;\n\n case RotationMode.Context:\n rotation = RotationMode.Context;\n\n if (rotation !== accudraw.flags.baseRotation) {\n accudraw.baseAxes.setFrom(accudraw.axes);\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n accudraw.flags.baseRotation = rotation;\n } else {\n const axes = accudraw.baseAxes.clone();\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\n if (!accudraw.axes.equals(axes))\n accudraw.changeBaseRotationMode(rotation);\n }\n\n switch (accudraw.flags.auxRotationPlane) {\n case RotationMode.Front:\n accudraw.flags.auxRotationPlane = RotationMode.Side;\n break;\n\n case RotationMode.Side:\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n break;\n\n case RotationMode.Top:\n accudraw.flags.auxRotationPlane = RotationMode.Front;\n break;\n }\n break;\n\n case RotationMode.ACS:\n rotation = RotationMode.ACS;\n switch (accudraw.flags.auxRotationPlane) {\n case RotationMode.Front:\n accudraw.flags.auxRotationPlane = RotationMode.Side;\n break;\n case RotationMode.Side:\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n break;\n case RotationMode.Top:\n accudraw.flags.auxRotationPlane = RotationMode.Front;\n break;\n }\n break;\n\n default:\n return;\n }\n\n this.setStandardRotation(rotation);\n }\n\n public static rotate90(axis: number): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const newRotation = new ThreeAxes();\n\n accudraw.locked = accudraw.indexed = 0;\n accudraw.unlockAllFields();\n\n switch (axis) {\n case 0:\n newRotation.x.setFrom(accudraw.axes.x);\n newRotation.z.setFrom(accudraw.axes.y);\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\n break;\n\n case 1:\n newRotation.x.setFrom(accudraw.axes.z);\n newRotation.y.setFrom(accudraw.axes.y);\n newRotation.x.crossProduct(newRotation.y, newRotation.z);\n break;\n\n case 2:\n newRotation.x.setFrom(accudraw.axes.y);\n newRotation.z.setFrom(accudraw.axes.z);\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\n break;\n }\n\n accudraw.setContextRotation(newRotation.toMatrix3d(), true, true);\n this.requestInputFocus();\n }\n\n public static async rotateAxes(aboutCurrentZ: boolean) {\n return IModelApp.tools.run(\"AccuDraw.RotateAxes\", aboutCurrentZ);\n }\n\n public static async rotateToElement() {\n return IModelApp.tools.run(\"AccuDraw.RotateElement\");\n }\n\n public static async defineACSByElement() {\n return IModelApp.tools.run(\"AccuDraw.DefineACSByElement\");\n }\n\n public static async defineACSByPoints() {\n return IModelApp.tools.run(\"AccuDraw.DefineACSByPoints\");\n }\n\n public static getACS(acsName: string | undefined, useOrigin: boolean, useRotation: boolean): BentleyStatus {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return BentleyStatus.ERROR;\n\n const vp = accudraw.currentView;\n if (!vp)\n return BentleyStatus.ERROR;\n\n let currRotation = 0, currBaseRotation = 0;\n const axes = new ThreeAxes();\n\n if (!useRotation) {\n // Save current rotation, event listener on ACS change will orient AccuDraw to ACS...\n currRotation = accudraw.rotationMode;\n currBaseRotation = accudraw.flags.baseRotation;\n axes.setFrom(accudraw.axes);\n }\n\n if (acsName && \"\" !== acsName) {\n // // See if this ACS already exists...\n // DgnCode acsCode = AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), acsName);\n // DgnElementId acsId = vp -> GetViewController().GetDgnDb().Elements().QueryElementIdByCode(acsCode);\n\n // if (!acsId.IsValid())\n // return ERROR;\n\n // AuxCoordSystemCPtr auxElm = vp -> GetViewController().GetDgnDb().Elements().Get<AuxCoordSystem>(acsId);\n\n // if (!auxElm.IsValid())\n // return ERROR;\n\n // AuxCoordSystemPtr acsPtr = auxElm -> MakeCopy<AuxCoordSystem>();\n\n // if (!acsPtr.IsValid())\n // return ERROR;\n\n // AuxCoordSystemCR oldACS = vp -> GetViewController().GetAuxCoordinateSystem();\n\n // if (!useOrigin)\n // acsPtr -> SetOrigin(oldACS.GetOrigin());\n\n // if (!useRotation)\n // acsPtr -> SetRotation(oldACS.GetRotation());\n\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\n }\n\n const currentACS = vp.view.auxiliaryCoordinateSystem;\n\n if (useOrigin) {\n accudraw.origin.setFrom(currentACS.getOrigin());\n accudraw.point.setFrom(accudraw.origin);\n accudraw.planePt.setFrom(accudraw.origin);\n }\n\n if (useRotation) {\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n this.setStandardRotation(RotationMode.ACS);\n } else {\n this.itemFieldUnlockAll();\n\n accudraw.setRotationMode(currRotation);\n accudraw.flags.baseRotation = currBaseRotation;\n accudraw.axes.setFrom(axes);\n\n if (RotationMode.ACS === accudraw.flags.baseRotation) {\n const acs = currentACS.clone();\n\n const rMatrix = accudraw.getRotation();\n acs.setRotation(rMatrix);\n\n AccuDraw.updateAuxCoordinateSystem(acs, vp);\n }\n\n accudraw.published.flags &= ~AccuDrawFlags.OrientACS;\n }\n\n return BentleyStatus.SUCCESS;\n }\n\n public static writeACS(_acsName: string): BentleyStatus {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return BentleyStatus.ERROR;\n\n const vp = accudraw.currentView;\n if (!vp)\n return BentleyStatus.ERROR;\n\n // const origin = accudraw.origin;\n // const rMatrix = accudraw.getRotation();\n // AuxCoordSystemPtr acsPtr = AuxCoordSystem:: CreateFrom(vp -> GetViewController().GetAuxCoordinateSystem());\n // acsPtr -> SetOrigin(origin);\n // acsPtr -> SetRotation(rMatrix);\n // acsPtr -> SetType(CompassMode.Polar == accudraw.getCompassMode() ? ACSType :: Cylindrical : ACSType:: Rectangular);\n // acsPtr -> SetCode(AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), nullptr != acsName ? acsName : \"\"));\n // acsPtr -> SetDescription(\"\");\n\n // if (acsName && '\\0' != acsName[0]) {\n // DgnDbStatus status;\n // acsPtr -> Insert(& status);\n\n // if (DgnDbStatus:: Success != status)\n // return BentleyStatus.ERROR;\n // }\n\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\n\n // accudraw.flags.baseRotation = RotationMode.ACS;\n // accudraw.SetRotationMode(RotationMode.ACS);\n\n return BentleyStatus.SUCCESS;\n }\n\n public static itemFieldUnlockAll(): void {\n const accudraw = IModelApp.accuDraw;\n if (accudraw.isEnabled)\n accudraw.unlockAllFields();\n }\n}\n\n/** @beta */\nexport class AccuDrawSessionToggleTool extends Tool {\n public static override toolId = \"AccuDraw.SessionToggle\";\n public override async run() {\n AccuDrawShortcuts.sessionToggle();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSuspendToggleTool extends Tool {\n public static override toolId = \"AccuDraw.SuspendToggle\";\n public override async run() {\n AccuDrawShortcuts.suspendToggle();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetOriginTool extends Tool {\n public static override toolId = \"AccuDraw.SetOrigin\";\n public override async run() {\n AccuDrawShortcuts.setOrigin();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockSmartTool extends Tool {\n public static override toolId = \"AccuDraw.LockSmart\";\n public override async run() {\n AccuDrawShortcuts.lockSmart();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockIndexTool extends Tool {\n public static override toolId = \"AccuDraw.LockIndex\";\n public override async run() {\n AccuDrawShortcuts.lockIndex();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockXTool extends Tool {\n public static override toolId = \"AccuDraw.LockX\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockX();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockYTool extends Tool {\n public static override toolId = \"AccuDraw.LockY\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockY();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockZTool extends Tool {\n public static override toolId = \"AccuDraw.LockZ\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockZ();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockDistanceTool extends Tool {\n public static override toolId = \"AccuDraw.LockDistance\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockDistance();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawSetLockAngleTool extends Tool {\n public static override toolId = \"AccuDraw.LockAngle\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockAngle();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawChangeModeTool extends Tool {\n public static override toolId = \"AccuDraw.ChangeMode\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.changeCompassMode();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateCycleTool extends Tool {\n public static override toolId = \"AccuDraw.RotateCycle\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotateCycle();\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateTopTool extends Tool {\n public static override toolId = \"AccuDraw.RotateTop\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.Top);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateFrontTool extends Tool {\n public static override toolId = \"AccuDraw.RotateFront\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.Front);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateSideTool extends Tool {\n public static override toolId = \"AccuDraw.RotateSide\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.Side);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateViewTool extends Tool {\n public static override toolId = \"AccuDraw.RotateView\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.View);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotate90AboutXTool extends Tool {\n public static override toolId = \"AccuDraw.Rotate90AboutX\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotate90(0);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotate90AboutYTool extends Tool {\n public static override toolId = \"AccuDraw.Rotate90AboutY\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotate90(1);\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotate90AboutZTool extends Tool {\n public static override toolId = \"AccuDraw.Rotate90AboutZ\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotate90(2);\n return true;\n }\n}\n\n/** @internal */\nclass RotateAxesImplementation extends AccuDrawShortcutImplementation {\n public constructor(private readonly _aboutCurrentZ: boolean) { super(); }\n\n protected override get allowShortcut(): boolean { return IModelApp.accuDraw.isActive; } // Require compass to already be active for this shortcut...\n\n protected override get wantAdditionalInput(): boolean {\n if (TentativeOrAccuSnap.isHot)\n return false;\n\n const accudraw = IModelApp.accuDraw;\n\n if (CompassMode.Polar === accudraw.compassMode)\n return !accudraw.getFieldLock(ItemField.ANGLE_Item);\n\n return !(accudraw.getFieldLock(ItemField.X_Item) && accudraw.getFieldLock(ItemField.Y_Item));\n }\n\n protected override onProvideToolAssistance(): void {\n CoreTools.outputPromptByKey(\"AccuDraw.RotateAxes.Prompts.FirstPoint\");\n }\n\n protected override onInitialize(): void {\n IModelApp.accuDraw.activate(); // State demoted to inactive by tool install...\n if (this._aboutCurrentZ)\n IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Establish current orientation as base for when defining compass rotation by x axis...\n }\n\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;\n if (!vp)\n return false;\n if (!AccuDrawShortcuts.rotateAxesByPoint(TentativeOrAccuSnap.isHot, this._aboutCurrentZ))\n return false;\n vp.invalidateDecorations();\n if (!isMotion) {\n AccuDrawShortcuts.itemFieldUnlockAll();\n IModelApp.tentativePoint.clear(true);\n }\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateAxesTool extends AccuDrawShortcutTool {\n public static override toolId = \"AccuDraw.RotateAxes\";\n public static override get maxArgs(): number { return 1; }\n public constructor(public aboutCurrentZ: boolean = true) { super(); }\n\n /** @internal */\n protected override createImplementation(): AccuDrawShortcutImplementation {\n return new RotateAxesImplementation(this.aboutCurrentZ);\n }\n\n public override async parseAndRun(...args: any[]): Promise<boolean> {\n for (const arg of args) {\n if (arg.toLowerCase() === \"unlockedz\")\n this.aboutCurrentZ = false;\n }\n return this.run();\n }\n}\n\n/** @internal */\nclass RotateElementImplementation extends AccuDrawShortcutImplementation {\n private _moveOrigin = !IModelApp.accuDraw.isActive || IModelApp.tentativePoint.isActive; // Preserve current origin if AccuDraw already active and not tentative snap...\n\n protected override get allowShortcut(): boolean { return IModelApp.accuDraw.isEnabled; } // Require AccuDraw to be enabled by the application for this shortcut...\n protected override get wantAdditionalInput(): boolean { return !IModelApp.tentativePoint.isSnapped; }\n\n protected override onProvideToolAssistance(): void {\n CoreTools.outputPromptByKey(\"AccuDraw.RotateElement.Prompts.FirstPoint\");\n }\n\n protected override onInitialize(): void {\n IModelApp.accuDraw.activate();\n IModelApp.accuDraw.setContext(AccuDrawFlags.FixedOrigin); // Don't move compass when updateOrientation returns false...\n }\n\n protected override onComplete(): AccuDrawFlags {\n let ignoreFlags = AccuDrawFlags.SetRMatrix | AccuDrawFlags.Disable; // If AccuDraw wasn't active when the shortcut started, let it remain active for suspended tool when shortcut completes...\n if (this._moveOrigin)\n ignoreFlags |= AccuDrawFlags.SetOrigin;\n return ignoreFlags;\n }\n\n private updateOrientation(snap: SnapDetail, viewport: ScreenViewport): boolean {\n const accudraw = IModelApp.accuDraw;\n const rMatrix = AccuDraw.getSnapRotation(snap, viewport);\n if (undefined === rMatrix)\n return false;\n\n const point = this._moveOrigin ? snap.snapPoint : accudraw.origin;\n accudraw.setContext(AccuDrawFlags.SetRMatrix | AccuDrawFlags.AlwaysSetOrigin, point, rMatrix);\n return true;\n }\n\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n const viewport = ev ? ev.viewport : IModelApp.accuDraw.currentView;\n if (!viewport)\n return false;\n\n const snap = TentativeOrAccuSnap.getCurrentSnap(false);\n if (undefined === snap || !this.updateOrientation(snap, viewport))\n return false;\n\n if (undefined === ev)\n AccuDrawShortcuts.processPendingHints(); // Would normally be processed after button down, necessary when called from post install...\n\n const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;\n if (vp)\n vp.invalidateDecorations();\n\n if (!isMotion)\n IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Hold temporary rotation for tool duration...\n return true;\n }\n}\n\n/** @beta */\nexport class AccuDrawRotateElementTool extends AccuDrawShortcutTool {\n public static override toolId = \"AccuDraw.RotateElement\";\n\n /** @internal */\n protected override createImplementation(): AccuDrawShortcutImplementation {\n return new RotateElementImplementation();\n }\n}\n\n/** @internal */\nclass DefineACSByElementImplementation extends AccuDrawShortcutImplementation {\n private _origin = Point3d.create();\n private _rMatrix = Matrix3d.createIdentity();\n private _acs?: AuxCoordSystemState;\n\n protected override onProvideToolAssistance(): void {\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByElement.Prompts.FirstPoint\");\n }\n\n private updateOrientation(snap: SnapDetail, vp: Viewport): boolean {\n const rMatrix = AccuDraw.getSnapRotation(snap, vp);\n if (undefined === rMatrix)\n return false;\n this._origin = snap.snapPoint;\n this._rMatrix = rMatrix;\n return true;\n }\n\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n const vp = ev ? ev.viewport : undefined;\n if (!vp)\n return false;\n\n const snapDetail = TentativeOrAccuSnap.getCurrentSnap(false);\n if (undefined === snapDetail || !this.updateOrientation(snapDetail, vp))\n return false;\n\n IModelApp.viewManager.invalidateDecorationsAllViews();\n if (isMotion)\n return true;\n\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n\n this._acs.setOrigin(this._origin);\n this._acs.setRotation(this._rMatrix);\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\n AccuDrawShortcuts.rotateToACS();\n return true;\n }\n\n public override doDecorate(context: DecorateContext): void {\n const vp = context.viewport;\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n this._acs.setOrigin(this._origin);\n this._acs.setRotation(this._rMatrix);\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\n }\n}\n\n/** @beta */\nexport class DefineACSByElementTool extends AccuDrawShortcutTool {\n public static override toolId = \"AccuDraw.DefineACSByElement\";\n\n /** @internal */\n protected override createImplementation(): AccuDrawShortcutImplementation {\n return new DefineACSByElementImplementation();\n }\n}\n\n/** @internal */\nclass DefineACSByPointsImplementation extends AccuDrawShortcutImplementation {\n private readonly _points: Point3d[] = [];\n private _acs?: AuxCoordSystemState;\n private _origin = IModelApp.tentativePoint.isActive ? IModelApp.tentativePoint.getPoint().clone() : undefined;\n\n protected override onProvideToolAssistance(): void {\n switch (this._points.length) {\n case 0:\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.FirstPoint\");\n break;\n\n case 1:\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.SecondPoint\");\n break;\n\n default:\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.NextPoint\");\n break;\n }\n }\n\n protected override onInitialize(): void {\n if (undefined === this._origin)\n return;\n\n IModelApp.accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.FixedOrigin, this._origin);\n this._points.push(this._origin);\n IModelApp.tentativePoint.clear(true); // Necessary when installed as an InputCollector...\n }\n\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n if (!ev || !ev.viewport)\n return false;\n\n IModelApp.viewManager.invalidateDecorationsAllViews();\n if (isMotion)\n return false;\n\n IModelApp.accuDraw.activate();\n this._points.push(ev.point.clone());\n\n const vp = ev.viewport;\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n\n if (AccuDrawShortcuts.updateACSByPoints(this._acs, vp, this._points, false)) {\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\n AccuDrawShortcuts.rotateToACS();\n return true;\n }\n\n this.onProvideToolAssistance();\n return false;\n }\n\n public override doDecorate(context: DecorateContext): void {\n const tmpPoints: Point3d[] = [];\n this._points.forEach((pt) => tmpPoints.push(pt));\n\n const ev = new BeButtonEvent();\n IModelApp.toolAdmin.fillEventFromCursorLocation(ev);\n tmpPoints.push(ev.point);\n\n const vp = context.viewport;\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n\n AccuDrawShortcuts.updateACSByPoints(this._acs, vp, tmpPoints, true);\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\n }\n}\n\n/** @beta */\nexport class DefineACSByPointsTool extends AccuDrawShortcutTool {\n public static override toolId = \"AccuDraw.DefineACSByPoints\";\n\n /** @internal */\n protected override createImplementation(): AccuDrawShortcutImplementation {\n return new DefineACSByPointsImplementation();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AccuDrawTool.js","sourceRoot":"","sources":["../../../src/tools/AccuDrawTool.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { BentleyStatus } from \"@itwin/core-bentley\";\nimport { AxisOrder, Geometry, Matrix3d, Plane3dByOriginAndUnitNormal, Point3d, Transform, Vector3d } from \"@itwin/core-geometry\";\nimport { AccuDraw, AccuDrawFlags, CompassMode, ContextMode, ItemField, KeyinStatus, LockedStates, RotationMode, ThreeAxes } from \"../AccuDraw\";\nimport { TentativeOrAccuSnap } from \"../AccuSnap\";\nimport { ACSDisplayOptions, AuxCoordSystemState } from \"../AuxCoordSys\";\nimport { SnapDetail } from \"../HitDetail\";\nimport { IModelApp } from \"../IModelApp\";\nimport { DecorateContext } from \"../ViewContext\";\nimport { ScreenViewport, Viewport } from \"../Viewport\";\nimport { BeButtonEvent, CoreTools, Tool } from \"./Tool\";\nimport { AccuDrawShortcutImplementation, AccuDrawShortcutTool } from \"./AccuDrawShortcutTool\";\nimport { GraphicType } from \"../common/render/GraphicType\";\n\n// cSpell:ignore dont unlockedz\n\nfunction normalizedDifference(point1: Point3d, point2: Point3d, out: Vector3d): number {\n return point2.vectorTo(point1).normalizeWithLength(out).mag;\n}\n\nfunction normalizedCrossProduct(vec1: Vector3d, vec2: Vector3d, out: Vector3d): number {\n return vec1.crossProduct(vec2, out).normalizeWithLength(out).mag;\n}\n\n/**\n * A shortcut may require no user input (immediate) or it may install a tool to collect the needed input. AccuDrawShortcuts are how users control AccuDraw.\n * A tool implementor should not use this class to setup AccuDraw, instead use AccuDrawHintBuilder to provide hints.\n * @beta\n */\nexport class AccuDrawShortcuts {\n /** Disable/Enable AccuDraw for the session */\n public static sessionToggle(): void {\n const accudraw = IModelApp.accuDraw;\n\n if (accudraw.isEnabled)\n accudraw.disableForSession();\n else\n accudraw.enableForSession();\n }\n\n /** Suspend/Unsuspend AccuDraw for the active tool */\n public static suspendToggle(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.isActive)\n accudraw.deactivate();\n else\n accudraw.activate();\n\n accudraw.refreshDecorationsAndDynamics();\n }\n\n public static rotateAxesByPoint(isSnapped: boolean, aboutCurrentZ: boolean): boolean {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return false;\n\n const vp = accudraw.currentView;\n if (!vp)\n return false;\n\n const point = accudraw.point;\n if (!vp.view.is3d())\n point.z = 0.0;\n\n if (aboutCurrentZ)\n accudraw.hardConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\n else\n accudraw.softConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\n\n // Snap point and compass origin coincide...\n const xVec = new Vector3d();\n if (normalizedDifference(point, accudraw.planePt, xVec) < Geometry.smallAngleRadians)\n return false;\n\n accudraw.axes.x.setFrom(xVec);\n\n if (RotationMode.Context !== accudraw.rotationMode)\n accudraw.setRotationMode(RotationMode.Context);\n\n accudraw.flags.contextRotMode = ContextMode.XAxis;\n accudraw.flags.lockedRotation = false;\n\n accudraw.updateRotation();\n\n // Always want index line to display for x-Axis...changing rotation clears this...so it flashes...\n accudraw.indexed |= LockedStates.X_BM;\n return true;\n }\n\n public static updateACSByPoints(acs: AuxCoordSystemState, vp: Viewport, points: Point3d[], isDynamics: boolean): boolean {\n const accudraw = IModelApp.accuDraw;\n let accept = false;\n const vec = [new Vector3d(), new Vector3d(), new Vector3d()];\n acs.setOrigin(points[0]);\n switch (points.length) {\n case 1:\n acs.setRotation(vp.rotation);\n if (!isDynamics && accudraw.isEnabled) {\n accudraw.published.origin.setFrom(points[0]);\n accudraw.published.flags = AccuDrawFlags.SetOrigin;\n accudraw.flags.fixedOrg = true;\n }\n break;\n\n case 2:\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001) {\n accept = true;\n break;\n }\n\n if (vp.view.is3d()) {\n if (accudraw.isEnabled && normalizedCrossProduct(accudraw.axes.y, vec[0], vec[1]) < 0.00001) {\n vec[2].set(0.0, 0.0, 1.0);\n\n if (normalizedCrossProduct(vec[2], vec[0], vec[1]) < 0.00001) {\n vec[2].set(0.0, 1.0, 0.0);\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\n }\n }\n\n normalizedCrossProduct(vec[0], vec[1], vec[2]);\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\n\n if (!isDynamics && accudraw.isEnabled) {\n accudraw.published.origin.setFrom(points[0]);\n accudraw.published.flags = AccuDrawFlags.SetOrigin | AccuDrawFlags.SetNormal;\n accudraw.published.vector.setFrom(vec[0]);\n }\n break;\n }\n\n vec[2].set(0.0, 0.0, 1.0);\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\n accept = true;\n break;\n\n case 3:\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001 ||\n normalizedDifference(points[2], points[0], vec[1]) < 0.00001 ||\n normalizedCrossProduct(vec[0], vec[1], vec[2]) < 0.00001) {\n accept = true;\n break;\n }\n\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\n accept = true;\n break;\n }\n\n return accept;\n }\n\n public static processPendingHints() {\n IModelApp.accuDraw.processHints();\n }\n\n public static requestInputFocus() {\n IModelApp.accuDraw.requestInputFocus();\n }\n\n // Helper method for GUI implementation...\n public static async itemFieldNavigate(index: ItemField, str: string, forward: boolean): Promise<void> {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.getFieldLock(index))\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\n\n if (!accudraw.isActive && KeyinStatus.Partial === accudraw.getKeyinStatus(index)) {\n await accudraw.processFieldInput(index, str, true);\n } else {\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\n accudraw.onFieldValueChange(index);\n }\n\n const vp = accudraw.currentView;\n const is3d = vp ? accudraw.is3dCompass(vp) : false;\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\n switch (index) {\n case ItemField.DIST_Item:\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.ANGLE_Item);\n break;\n\n case ItemField.ANGLE_Item:\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.DIST_Item);\n break;\n\n case ItemField.X_Item:\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.Y_Item);\n break;\n\n case ItemField.Y_Item:\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.X_Item);\n break;\n\n case ItemField.Z_Item:\n index = (forward ? (isPolar ? ItemField.DIST_Item : ItemField.X_Item) : (isPolar ? ItemField.ANGLE_Item : ItemField.Y_Item));\n break;\n }\n\n // Set focus to new item and disable automatic focus change based on cursor location in rectangular mode.\n accudraw.setFocusItem(index);\n accudraw.dontMoveFocus = true;\n }\n\n public static itemFieldNewInput(index: ItemField): void { IModelApp.accuDraw.setKeyinStatus(index, KeyinStatus.Partial); }\n public static itemFieldCompletedInput(index: ItemField): void { IModelApp.accuDraw.setKeyinStatus(index, KeyinStatus.Dynamic); }\n\n public static async itemFieldAcceptInput(index: ItemField, str: string): Promise<void> {\n const accudraw = IModelApp.accuDraw;\n await accudraw.processFieldInput(index, str, true);\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\n\n if (accudraw.getFieldLock(index))\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\n\n const vp = accudraw.currentView;\n if (accudraw.isActive) {\n if (!vp)\n return;\n\n if (CompassMode.Polar === accudraw.compassMode)\n accudraw.fixPointPolar(vp);\n else\n accudraw.fixPointRectangular(vp);\n\n accudraw.flags.dialogNeedsUpdate = true;\n return;\n }\n\n const is3d = vp ? vp.view.is3d() : false;\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\n switch (index) {\n case ItemField.DIST_Item:\n index = ItemField.ANGLE_Item;\n break;\n\n case ItemField.ANGLE_Item:\n index = (is3d ? ItemField.Z_Item : ItemField.DIST_Item);\n break;\n\n case ItemField.X_Item:\n index = ItemField.Y_Item;\n break;\n\n case ItemField.Y_Item:\n index = (is3d ? ItemField.Z_Item : ItemField.X_Item);\n break;\n\n case ItemField.Z_Item:\n index = (isPolar ? ItemField.DIST_Item : ItemField.X_Item);\n break;\n }\n accudraw.setFocusItem(index);\n }\n\n public static itemFieldLockToggle(index: ItemField): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.getFieldLock(index)) {\n switch (index) {\n case ItemField.DIST_Item:\n accudraw.distanceLock(true, false);\n break;\n\n case ItemField.ANGLE_Item:\n accudraw.angleLock();\n break;\n\n case ItemField.X_Item:\n accudraw.clearTentative();\n accudraw.locked |= LockedStates.X_BM;\n break;\n\n case ItemField.Y_Item:\n accudraw.clearTentative();\n accudraw.locked |= LockedStates.Y_BM;\n break;\n\n case ItemField.Z_Item:\n accudraw.clearTentative();\n break;\n }\n\n return;\n }\n\n switch (index) {\n case ItemField.DIST_Item:\n accudraw.locked &= ~LockedStates.DIST_BM;\n break;\n\n case ItemField.ANGLE_Item:\n accudraw.locked &= ~LockedStates.ANGLE_BM;\n break;\n\n case ItemField.X_Item:\n accudraw.locked &= ~LockedStates.X_BM;\n break;\n\n case ItemField.Y_Item:\n accudraw.locked &= ~LockedStates.Y_BM;\n break;\n\n case ItemField.Z_Item:\n break;\n }\n\n accudraw.dontMoveFocus = false;\n accudraw.clearTentative();\n }\n\n public static choosePreviousValue(index: ItemField): void {\n const accudraw = IModelApp.accuDraw;\n accudraw.getSavedValue(index, false);\n accudraw.refreshDecorationsAndDynamics();\n }\n\n public static chooseNextValue(index: ItemField): void {\n const accudraw = IModelApp.accuDraw;\n accudraw.getSavedValue(index, true);\n accudraw.refreshDecorationsAndDynamics();\n }\n\n public static clearSavedValues(): void {\n const accudraw = IModelApp.accuDraw;\n accudraw.clearSavedValues();\n }\n\n public static itemRotationModeChange(rotation: RotationMode): void {\n const accudraw = IModelApp.accuDraw;\n const vp = accudraw.currentView;\n const is3d = vp ? vp.view.is3d() : true;\n\n if (!is3d && (RotationMode.Front === rotation || RotationMode.Side === rotation))\n accudraw.setRotationMode(RotationMode.Top);\n\n accudraw.flags.baseRotation = rotation;\n accudraw.updateRotation(true);\n }\n\n // Shortcut implementations for GUI entry points...\n public static setOrigin(explicitOrigin?: Point3d): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (explicitOrigin) {\n accudraw.published.origin.setFrom(explicitOrigin);\n accudraw.flags.haveValidOrigin = true;\n } else if (accudraw.isInactive || accudraw.isDeactivated) {\n // If AccuSnap is active use adjusted snap point, otherwise use last data point...\n const snap = TentativeOrAccuSnap.getCurrentSnap(false);\n if (undefined !== snap) {\n accudraw.published.origin.setFrom(snap.isPointAdjusted ? snap.adjustedPoint : snap.getPoint());\n accudraw.flags.haveValidOrigin = true;\n } else {\n const ev = new BeButtonEvent();\n IModelApp.toolAdmin.fillEventFromLastDataButton(ev);\n\n if (ev.viewport) {\n accudraw.published.origin.setFrom(ev.point);\n accudraw.flags.haveValidOrigin = true;\n } else {\n // NOTE: If current point isn't valid setDefaultOrigin will be called...\n accudraw.published.origin.setFrom(accudraw.point);\n }\n }\n } else {\n accudraw.published.origin.setFrom(accudraw.point);\n accudraw.flags.haveValidOrigin = true;\n accudraw.setLastPoint(accudraw.published.origin);\n }\n\n accudraw.clearTentative();\n const vp = accudraw.currentView;\n\n // NOTE: _AdjustPoint should have been called to have setup currentView...\n if (vp && !vp.view.is3d())\n accudraw.published.origin.z = 0.0;\n\n accudraw.origin.setFrom(accudraw.published.origin);\n accudraw.point.setFrom(accudraw.published.origin);\n accudraw.planePt.setFrom(accudraw.published.origin);\n accudraw.published.flags |= AccuDrawFlags.SetOrigin;\n accudraw.activate();\n accudraw.refreshDecorationsAndDynamics(); // NOTE: Will already grab input focus through processHints...\n }\n\n public static changeCompassMode(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n let axisLockStatus = accudraw.locked & LockedStates.XY_BM;\n\n if (axisLockStatus) {\n if (CompassMode.Rectangular === accudraw.compassMode) {\n if (axisLockStatus & LockedStates.X_BM && accudraw.delta.x !== 0.0)\n axisLockStatus &= ~LockedStates.X_BM;\n\n if (axisLockStatus & LockedStates.Y_BM && accudraw.delta.y !== 0.0)\n axisLockStatus &= ~LockedStates.Y_BM;\n }\n }\n\n accudraw.changeCompassMode(true);\n if (axisLockStatus) {\n if (CompassMode.Rectangular === accudraw.compassMode) {\n accudraw.delta.x = accudraw.delta.y = 0.0;\n\n if (axisLockStatus & LockedStates.X_BM)\n accudraw.setFieldLock(ItemField.X_Item, true);\n else if (axisLockStatus & LockedStates.Y_BM)\n accudraw.setFieldLock(ItemField.Y_Item, true);\n } else {\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\n }\n accudraw.locked = axisLockStatus;\n }\n accudraw.flags.baseMode = accudraw.compassMode;\n this.requestInputFocus();\n }\n\n public static lockSmart(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const accuSnap = IModelApp.accuSnap;\n\n // Don't want AccuSnap to influence axis or Z...\n if (accuSnap.isHot) {\n accuSnap.clear();\n\n const vp = accudraw.currentView;\n if (vp) {\n if (CompassMode.Polar === accudraw.compassMode)\n accudraw.fixPointPolar(vp);\n else\n accudraw.fixPointRectangular(vp);\n }\n }\n\n if (CompassMode.Polar === accudraw.compassMode) {\n const isSnapped = accudraw.clearTentative();\n if (accudraw.locked & LockedStates.ANGLE_BM) { // angle locked (unlock it)\n accudraw.setFieldLock(ItemField.ANGLE_Item, false);\n accudraw.locked &= ~LockedStates.ANGLE_BM;\n } else if (accudraw.getFieldLock(ItemField.DIST_Item)) { // distance locked (unlock it)\n accudraw.setFieldLock(ItemField.DIST_Item, false);\n accudraw.locked &= ~LockedStates.DIST_BM;\n } else if (isSnapped) {\n accudraw.doLockAngle(isSnapped);\n } else if (accudraw.indexed & LockedStates.ANGLE_BM) { // angle indexed (lock it)\n accudraw.angleLock();\n } else {\n if (Math.abs(accudraw.vector.dotProduct(accudraw.axes.x)) > Math.abs(accudraw.vector.dotProduct(accudraw.axes.y)))\n accudraw.indexed |= LockedStates.Y_BM;\n else\n accudraw.indexed |= LockedStates.X_BM;\n accudraw.angleLock();\n }\n this.requestInputFocus();\n return;\n }\n\n if (accudraw.locked) { // if locked, unlock\n accudraw.clearTentative();\n accudraw.locked &= ~LockedStates.XY_BM;\n accudraw.setFieldLock(ItemField.X_Item, false);\n accudraw.setFieldLock(ItemField.Y_Item, false);\n if (accudraw.getFieldLock(ItemField.Z_Item) && accudraw.delta.z === 0.0 && !accudraw.stickyZLock)\n accudraw.setFieldLock(ItemField.Z_Item, false);\n } else { // lock to nearest axis\n if (accudraw.clearTentative()) {\n if (Math.abs(accudraw.delta.x) >= Geometry.smallAngleRadians && Math.abs(accudraw.delta.y) >= Geometry.smallAngleRadians) {\n accudraw.doLockAngle(false);\n return;\n }\n }\n\n const vp = accudraw.currentView;\n if (Math.abs(accudraw.delta.x) > Math.abs(accudraw.delta.y)) {\n accudraw.delta.y = 0.0;\n accudraw.onFieldValueChange(ItemField.Y_Item);\n accudraw.locked |= LockedStates.Y_BM;\n accudraw.locked &= ~LockedStates.X_BM;\n accudraw.setFieldLock(ItemField.X_Item, false);\n accudraw.setFieldLock(ItemField.Y_Item, true);\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\n } else {\n accudraw.delta.x = 0.0;\n accudraw.onFieldValueChange(ItemField.X_Item);\n accudraw.locked |= LockedStates.X_BM;\n accudraw.locked &= ~LockedStates.Y_BM;\n accudraw.setFieldLock(ItemField.Y_Item, false);\n accudraw.setFieldLock(ItemField.X_Item, true);\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\n }\n\n if (!accudraw.flags.lockedRotation) {\n accudraw.flags.lockedRotation = true;\n accudraw.flags.contextRotMode = ContextMode.Locked;\n accudraw.setRotationMode(RotationMode.Context);\n }\n }\n this.requestInputFocus();\n }\n\n /** Disable indexing when not currently indexed; if indexed, enable respective lock. */\n public static lockIndex(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (accudraw.flags.indexLocked) {\n if (accudraw.locked)\n this.lockSmart();\n\n accudraw.flags.indexLocked = false;\n } else {\n if (CompassMode.Polar === accudraw.compassMode) {\n if (accudraw.indexed & LockedStates.XY_BM) {\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\n accudraw.angleLock();\n }\n\n if (accudraw.indexed & LockedStates.DIST_BM)\n this.lockDistance();\n } else {\n if (accudraw.indexed & LockedStates.X_BM) {\n this.lockX();\n\n if (accudraw.indexed & LockedStates.DIST_BM)\n this.lockY();\n }\n\n if (accudraw.indexed & LockedStates.Y_BM) {\n this.lockY();\n\n if (accudraw.indexed & LockedStates.DIST_BM)\n this.lockX();\n }\n\n if (accudraw.indexed & LockedStates.DIST_BM && !(accudraw.indexed & LockedStates.XY_BM)) {\n if (accudraw.locked & LockedStates.X_BM)\n this.lockY();\n else\n this.lockX();\n }\n }\n\n accudraw.flags.indexLocked = true;\n }\n\n this.requestInputFocus();\n }\n\n public static lockX(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n accudraw.clearTentative();\n\n if (CompassMode.Rectangular !== accudraw.compassMode) {\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n accudraw.fixPointRectangular(vp);\n accudraw.changeCompassMode(true);\n }\n\n if (accudraw.getFieldLock(ItemField.X_Item)) {\n accudraw.setFieldLock(ItemField.X_Item, false);\n accudraw.locked = accudraw.locked & ~LockedStates.X_BM;\n accudraw.setKeyinStatus(ItemField.X_Item, KeyinStatus.Dynamic);\n } else {\n accudraw.saveCoordinate(ItemField.X_Item, accudraw.delta.x);\n accudraw.setFieldLock(ItemField.X_Item, true);\n accudraw.locked = accudraw.locked | LockedStates.X_BM;\n }\n this.requestInputFocus();\n }\n\n public static lockY(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n accudraw.clearTentative();\n\n if (CompassMode.Rectangular !== accudraw.compassMode) {\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n accudraw.fixPointRectangular(vp);\n accudraw.changeCompassMode(true);\n }\n\n if (accudraw.getFieldLock(ItemField.Y_Item)) {\n accudraw.setFieldLock(ItemField.Y_Item, false);\n accudraw.locked = accudraw.locked & ~LockedStates.Y_BM;\n accudraw.setKeyinStatus(ItemField.Y_Item, KeyinStatus.Dynamic);\n } else {\n accudraw.saveCoordinate(ItemField.Y_Item, accudraw.delta.y);\n accudraw.setFieldLock(ItemField.Y_Item, true);\n accudraw.locked = accudraw.locked | LockedStates.Y_BM;\n }\n this.requestInputFocus();\n }\n\n public static lockZ(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const vp = accudraw.currentView;\n if (!vp || !vp.view.is3d())\n return;\n\n const isSnapped = accudraw.clearTentative();\n\n if (accudraw.getFieldLock(ItemField.Z_Item)) {\n accudraw.setFieldLock(ItemField.Z_Item, false);\n accudraw.setKeyinStatus(ItemField.Z_Item, KeyinStatus.Dynamic);\n } else {\n // Move focus to Z field...\n if (!isSnapped && accudraw.autoFocusFields) {\n accudraw.setFocusItem(ItemField.Z_Item);\n accudraw.dontMoveFocus = true;\n }\n accudraw.setFieldLock(ItemField.Z_Item, true);\n }\n this.requestInputFocus();\n }\n\n public static lockDistance(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const isSnapped = accudraw.clearTentative();\n\n if (CompassMode.Polar !== accudraw.compassMode) {\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n accudraw.locked = 0;\n accudraw.fixPointPolar(vp);\n accudraw.changeCompassMode(true);\n }\n\n if (accudraw.getFieldLock(ItemField.DIST_Item)) {\n accudraw.setFieldLock(ItemField.DIST_Item, false);\n accudraw.locked &= ~LockedStates.DIST_BM;\n accudraw.setKeyinStatus(ItemField.DIST_Item, KeyinStatus.Dynamic);\n } else {\n // Move focus to distance field...\n if (!isSnapped && accudraw.autoFocusFields)\n accudraw.setFocusItem(ItemField.DIST_Item);\n accudraw.distanceLock(true, true);\n }\n this.requestInputFocus();\n }\n\n public static lockAngle(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n accudraw.doLockAngle(accudraw.clearTentative());\n this.requestInputFocus();\n }\n\n public static setStandardRotation(rotation: RotationMode): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n if (RotationMode.Context === rotation) {\n const axes = accudraw.baseAxes.clone();\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\n accudraw.setContextRotation(axes.toMatrix3d(), false, true);\n this.requestInputFocus();\n return;\n } else {\n accudraw.flags.baseRotation = rotation;\n accudraw.setRotationMode(rotation);\n }\n accudraw.updateRotation(true);\n this.requestInputFocus();\n }\n\n public static alignView(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const vp = accudraw.currentView;\n if (!vp)\n return;\n\n const newMatrix = accudraw.getRotation();\n if (newMatrix.isExactEqual(vp.rotation))\n return;\n\n const targetMatrix = newMatrix.multiplyMatrixMatrix(vp.rotation);\n const rotateTransform = Transform.createFixedPointAndMatrix(vp.view.getTargetPoint(), targetMatrix);\n const newFrustum = vp.getFrustum();\n newFrustum.multiply(rotateTransform);\n\n vp.view.setupFromFrustum(newFrustum);\n vp.synchWithView();\n vp.animateFrustumChange();\n\n this.requestInputFocus();\n }\n\n public static rotateToBase(): void { this.setStandardRotation(IModelApp.accuDraw.flags.baseRotation); }\n\n public static rotateToACS(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n // NOTE: Match current ACS orientation..reset auxRotationPlane to top!\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n this.setStandardRotation(RotationMode.ACS);\n }\n\n public static rotateCycle(): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const vp = accudraw.currentView;\n if (!vp || !vp.view.is3d())\n return;\n\n let rotation: RotationMode;\n switch (accudraw.rotationMode) {\n case RotationMode.View:\n case RotationMode.Side:\n rotation = RotationMode.Top;\n break;\n\n case RotationMode.Top:\n rotation = RotationMode.Front;\n break;\n\n case RotationMode.Front:\n rotation = RotationMode.Side;\n break;\n\n case RotationMode.Context:\n rotation = RotationMode.Context;\n\n if (rotation !== accudraw.flags.baseRotation) {\n accudraw.baseAxes.setFrom(accudraw.axes);\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n accudraw.flags.baseRotation = rotation;\n } else {\n const axes = accudraw.baseAxes.clone();\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\n if (!accudraw.axes.equals(axes))\n accudraw.changeBaseRotationMode(rotation);\n }\n\n switch (accudraw.flags.auxRotationPlane) {\n case RotationMode.Front:\n accudraw.flags.auxRotationPlane = RotationMode.Side;\n break;\n\n case RotationMode.Side:\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n break;\n\n case RotationMode.Top:\n accudraw.flags.auxRotationPlane = RotationMode.Front;\n break;\n }\n break;\n\n case RotationMode.ACS:\n rotation = RotationMode.ACS;\n switch (accudraw.flags.auxRotationPlane) {\n case RotationMode.Front:\n accudraw.flags.auxRotationPlane = RotationMode.Side;\n break;\n case RotationMode.Side:\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n break;\n case RotationMode.Top:\n accudraw.flags.auxRotationPlane = RotationMode.Front;\n break;\n }\n break;\n\n default:\n return;\n }\n\n this.setStandardRotation(rotation);\n }\n\n public static rotate90(axis: number): void {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return;\n\n const newRotation = new ThreeAxes();\n\n accudraw.locked = accudraw.indexed = 0;\n accudraw.unlockAllFields();\n\n switch (axis) {\n case 0:\n newRotation.x.setFrom(accudraw.axes.x);\n newRotation.z.setFrom(accudraw.axes.y);\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\n break;\n\n case 1:\n newRotation.x.setFrom(accudraw.axes.z);\n newRotation.y.setFrom(accudraw.axes.y);\n newRotation.x.crossProduct(newRotation.y, newRotation.z);\n break;\n\n case 2:\n newRotation.x.setFrom(accudraw.axes.y);\n newRotation.z.setFrom(accudraw.axes.z);\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\n break;\n }\n\n accudraw.setContextRotation(newRotation.toMatrix3d(), true, true);\n this.requestInputFocus();\n }\n\n public static async rotateAxes(aboutCurrentZ: boolean) {\n return IModelApp.tools.run(\"AccuDraw.RotateAxes\", aboutCurrentZ);\n }\n\n public static async rotateToElement() {\n return IModelApp.tools.run(\"AccuDraw.RotateElement\");\n }\n\n public static async defineACSByElement() {\n return IModelApp.tools.run(\"AccuDraw.DefineACSByElement\");\n }\n\n public static async defineACSByPoints() {\n return IModelApp.tools.run(\"AccuDraw.DefineACSByPoints\");\n }\n\n public static getACS(acsName: string | undefined, useOrigin: boolean, useRotation: boolean): BentleyStatus {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return BentleyStatus.ERROR;\n\n const vp = accudraw.currentView;\n if (!vp)\n return BentleyStatus.ERROR;\n\n let currRotation = 0, currBaseRotation = 0;\n const axes = new ThreeAxes();\n\n if (!useRotation) {\n // Save current rotation, event listener on ACS change will orient AccuDraw to ACS...\n currRotation = accudraw.rotationMode;\n currBaseRotation = accudraw.flags.baseRotation;\n axes.setFrom(accudraw.axes);\n }\n\n if (acsName && \"\" !== acsName) {\n // // See if this ACS already exists...\n // DgnCode acsCode = AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), acsName);\n // DgnElementId acsId = vp -> GetViewController().GetDgnDb().Elements().QueryElementIdByCode(acsCode);\n\n // if (!acsId.IsValid())\n // return ERROR;\n\n // AuxCoordSystemCPtr auxElm = vp -> GetViewController().GetDgnDb().Elements().Get<AuxCoordSystem>(acsId);\n\n // if (!auxElm.IsValid())\n // return ERROR;\n\n // AuxCoordSystemPtr acsPtr = auxElm -> MakeCopy<AuxCoordSystem>();\n\n // if (!acsPtr.IsValid())\n // return ERROR;\n\n // AuxCoordSystemCR oldACS = vp -> GetViewController().GetAuxCoordinateSystem();\n\n // if (!useOrigin)\n // acsPtr -> SetOrigin(oldACS.GetOrigin());\n\n // if (!useRotation)\n // acsPtr -> SetRotation(oldACS.GetRotation());\n\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\n }\n\n const currentACS = vp.view.auxiliaryCoordinateSystem;\n\n if (useOrigin) {\n accudraw.origin.setFrom(currentACS.getOrigin());\n accudraw.point.setFrom(accudraw.origin);\n accudraw.planePt.setFrom(accudraw.origin);\n }\n\n if (useRotation) {\n accudraw.flags.auxRotationPlane = RotationMode.Top;\n this.setStandardRotation(RotationMode.ACS);\n } else {\n this.itemFieldUnlockAll();\n\n accudraw.setRotationMode(currRotation);\n accudraw.flags.baseRotation = currBaseRotation;\n accudraw.axes.setFrom(axes);\n\n if (RotationMode.ACS === accudraw.flags.baseRotation) {\n const acs = currentACS.clone();\n\n const rMatrix = accudraw.getRotation();\n acs.setRotation(rMatrix);\n\n AccuDraw.updateAuxCoordinateSystem(acs, vp);\n }\n\n accudraw.published.flags &= ~AccuDrawFlags.OrientACS;\n }\n\n return BentleyStatus.SUCCESS;\n }\n\n public static writeACS(_acsName: string): BentleyStatus {\n const accudraw = IModelApp.accuDraw;\n if (!accudraw.isEnabled)\n return BentleyStatus.ERROR;\n\n const vp = accudraw.currentView;\n if (!vp)\n return BentleyStatus.ERROR;\n\n // const origin = accudraw.origin;\n // const rMatrix = accudraw.getRotation();\n // AuxCoordSystemPtr acsPtr = AuxCoordSystem:: CreateFrom(vp -> GetViewController().GetAuxCoordinateSystem());\n // acsPtr -> SetOrigin(origin);\n // acsPtr -> SetRotation(rMatrix);\n // acsPtr -> SetType(CompassMode.Polar == accudraw.getCompassMode() ? ACSType :: Cylindrical : ACSType:: Rectangular);\n // acsPtr -> SetCode(AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), nullptr != acsName ? acsName : \"\"));\n // acsPtr -> SetDescription(\"\");\n\n // if (acsName && '\\0' != acsName[0]) {\n // DgnDbStatus status;\n // acsPtr -> Insert(& status);\n\n // if (DgnDbStatus:: Success != status)\n // return BentleyStatus.ERROR;\n // }\n\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\n\n // accudraw.flags.baseRotation = RotationMode.ACS;\n // accudraw.SetRotationMode(RotationMode.ACS);\n\n return BentleyStatus.SUCCESS;\n }\n\n public static itemFieldUnlockAll(): void {\n const accudraw = IModelApp.accuDraw;\n if (accudraw.isEnabled)\n accudraw.unlockAllFields();\n }\n}\n\n/**\n * Immediate tool to toggle AccuDraw's availability for the current session.\n * @note AccuDraw is enabled by default\n * @beta\n */\nexport class AccuDrawSessionToggleTool extends Tool {\n public static override toolId = \"AccuDraw.SessionToggle\";\n public override async run() {\n AccuDrawShortcuts.sessionToggle();\n return true;\n }\n}\n\n/**\n * Immediate tool to toggle AccuDraw on/off temporarily for the current interactive tool.\n * @note Typically used to disable AccuDraw for a single data button.\n * @beta\n */\nexport class AccuDrawSuspendToggleTool extends Tool {\n public static override toolId = \"AccuDraw.SuspendToggle\";\n public override async run() {\n AccuDrawShortcuts.suspendToggle();\n return true;\n }\n}\n\n/**\n * Immediate tool to enable AccuDraw and position it at the current AccuSnap or Tentative snap location.\n * @note When not snapped, AccuDraw is activated at the last data button location when inactive, or moved to the current cursor location when active.\n * @beta\n */\nexport class AccuDrawSetOriginTool extends Tool {\n public static override toolId = \"AccuDraw.SetOrigin\";\n public override async run() {\n AccuDrawShortcuts.setOrigin();\n return true;\n }\n}\n\n/**\n * Immediate tool to lock the closer of the x or y axis based on the current cursor location.\n * @note When an axis is locked, points are projected onto the axis line.\n * @beta\n */\nexport class AccuDrawSetLockSmartTool extends Tool {\n public static override toolId = \"AccuDraw.LockSmart\";\n public override async run() {\n AccuDrawShortcuts.lockSmart();\n return true;\n }\n}\n\n/**\n * Immediate tool to toggle the locked state of an indexed axis of the AccuDraw compass.\n * @beta\n */\nexport class AccuDrawSetLockIndexTool extends Tool {\n public static override toolId = \"AccuDraw.LockIndex\";\n public override async run() {\n AccuDrawShortcuts.lockIndex();\n return true;\n }\n}\n\n/**\n * Immediate tool to toggle the locked state of the X text field.\n * @beta\n */\nexport class AccuDrawSetLockXTool extends Tool {\n public static override toolId = \"AccuDraw.LockX\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockX();\n return true;\n }\n}\n\n/**\n * Immediate tool to toggle the locked state of the Y text field.\n * @beta\n */\nexport class AccuDrawSetLockYTool extends Tool {\n public static override toolId = \"AccuDraw.LockY\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockY();\n return true;\n }\n}\n\n/**\n * Immediate tool to toggle the locked state of the Z text field.\n * @beta\n */\nexport class AccuDrawSetLockZTool extends Tool {\n public static override toolId = \"AccuDraw.LockZ\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockZ();\n return true;\n }\n}\n\n/**\n * Immediate tool to toggle the locked state of the Distance text field.\n * @beta\n */\nexport class AccuDrawSetLockDistanceTool extends Tool {\n public static override toolId = \"AccuDraw.LockDistance\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockDistance();\n return true;\n }\n}\n\n/**\n * Immediate tool to toggle the locked state of the Angle text field.\n * @beta\n */\nexport class AccuDrawSetLockAngleTool extends Tool {\n public static override toolId = \"AccuDraw.LockAngle\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.lockAngle();\n return true;\n }\n}\n\n/**\n * Immediate tool to toggle between polar and rectangular compass modes.\n * @beta\n */\nexport class AccuDrawChangeModeTool extends Tool {\n public static override toolId = \"AccuDraw.ChangeMode\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.changeCompassMode();\n return true;\n }\n}\n\n/**\n * Immediate tool to cycle between XY, XZ, and YZ planes for the current AccuDraw rotation.\n * @beta\n */\nexport class AccuDrawRotateCycleTool extends Tool {\n public static override toolId = \"AccuDraw.RotateCycle\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotateCycle();\n return true;\n }\n}\n\n/**\n * Immediate tool to set the AccuDraw rotation to a standard Top view.\n * @note When IModelApp.toolAdmin.acsContextLock is true, rotation is set relative to the view's ACS.\n * @beta\n */\nexport class AccuDrawRotateTopTool extends Tool {\n public static override toolId = \"AccuDraw.RotateTop\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.Top);\n return true;\n }\n}\n\n/**\n * Immediate tool to set the AccuDraw rotation to a standard Front view.\n * @note When IModelApp.toolAdmin.acsContextLock is true, rotation is set relative to the view's ACS.\n * @beta\n */\nexport class AccuDrawRotateFrontTool extends Tool {\n public static override toolId = \"AccuDraw.RotateFront\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.Front);\n return true;\n }\n}\n\n/**\n * Immediate tool to set the AccuDraw rotation to a standard Side view.\n * @note When IModelApp.toolAdmin.acsContextLock is true, rotation is set relative to the view's ACS.\n * @beta\n */\nexport class AccuDrawRotateSideTool extends Tool {\n public static override toolId = \"AccuDraw.RotateSide\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.Side);\n return true;\n }\n}\n\n/**\n * Immediate tool to set the AccuDraw rotation to match the rotation of the current view.\n * @beta\n */\nexport class AccuDrawRotateViewTool extends Tool {\n public static override toolId = \"AccuDraw.RotateView\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.setStandardRotation(RotationMode.View);\n return true;\n }\n}\n\n/**\n * Immediate tool to set the AccuDraw rotation to be a 90 degree rotation about the current x axis.\n * @beta\n */\nexport class AccuDrawRotate90AboutXTool extends Tool {\n public static override toolId = \"AccuDraw.Rotate90AboutX\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotate90(0);\n return true;\n }\n}\n\n/**\n * Immediate tool to set the AccuDraw rotation to be a 90 degree rotation about the current y axis.\n * @beta\n */\nexport class AccuDrawRotate90AboutYTool extends Tool {\n public static override toolId = \"AccuDraw.Rotate90AboutY\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotate90(1);\n return true;\n }\n}\n\n/**\n * Immediate tool to set the AccuDraw rotation to be a 90 degree rotation about the current z axis.\n * @beta\n */\nexport class AccuDrawRotate90AboutZTool extends Tool {\n public static override toolId = \"AccuDraw.Rotate90AboutZ\";\n public override async run(): Promise<boolean> {\n AccuDrawShortcuts.rotate90(2);\n return true;\n }\n}\n\n/** @internal */\nclass RotateAxesImplementation extends AccuDrawShortcutImplementation {\n public constructor(private readonly _aboutCurrentZ: boolean) { super(); }\n\n protected override get allowShortcut(): boolean { return IModelApp.accuDraw.isActive; } // Require compass to already be active for this shortcut...\n\n protected override get wantAdditionalInput(): boolean {\n if (TentativeOrAccuSnap.isHot)\n return false;\n\n const accudraw = IModelApp.accuDraw;\n\n if (CompassMode.Polar === accudraw.compassMode)\n return !accudraw.getFieldLock(ItemField.ANGLE_Item);\n\n return !(accudraw.getFieldLock(ItemField.X_Item) && accudraw.getFieldLock(ItemField.Y_Item));\n }\n\n protected override onProvideToolAssistance(): void {\n CoreTools.outputPromptByKey(\"AccuDraw.RotateAxes.Prompts.FirstPoint\");\n }\n\n protected override onInitialize(): void {\n IModelApp.accuDraw.activate(); // State demoted to inactive by tool install...\n if (this._aboutCurrentZ)\n IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Establish current orientation as base for when defining compass rotation by x axis...\n }\n\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;\n if (!vp)\n return false;\n if (!AccuDrawShortcuts.rotateAxesByPoint(TentativeOrAccuSnap.isHot, this._aboutCurrentZ))\n return false;\n vp.invalidateDecorations();\n if (!isMotion) {\n AccuDrawShortcuts.itemFieldUnlockAll();\n IModelApp.tentativePoint.clear(true);\n }\n return true;\n }\n}\n\n/**\n * Interactive tool to set the AccuDraw rotation by rotating about the current z axis to a point on the x axis.\n * @note When AccuSnap or Tentative snap is active, the snap point is immediately used to define the x axis and not further input is required.\n * @beta\n */\nexport class AccuDrawRotateAxesTool extends AccuDrawShortcutTool {\n public static override toolId = \"AccuDraw.RotateAxes\";\n public static override get maxArgs(): number { return 1; }\n public constructor(public aboutCurrentZ: boolean = true) { super(); }\n\n /** @internal */\n protected override createImplementation(): AccuDrawShortcutImplementation {\n return new RotateAxesImplementation(this.aboutCurrentZ);\n }\n\n public override async parseAndRun(...args: any[]): Promise<boolean> {\n for (const arg of args) {\n if (arg.toLowerCase() === \"unlockedz\")\n this.aboutCurrentZ = false;\n }\n return this.run();\n }\n}\n\n/** @internal */\nclass RotateElementImplementation extends AccuDrawShortcutImplementation {\n private _moveOrigin = !IModelApp.accuDraw.isActive || IModelApp.tentativePoint.isActive; // Preserve current origin if AccuDraw already active and not tentative snap...\n\n protected override get allowShortcut(): boolean { return IModelApp.accuDraw.isEnabled; } // Require AccuDraw to be enabled by the application for this shortcut...\n protected override get wantAdditionalInput(): boolean { return !IModelApp.tentativePoint.isSnapped; }\n\n protected override onProvideToolAssistance(): void {\n CoreTools.outputPromptByKey(\"AccuDraw.RotateElement.Prompts.FirstPoint\");\n }\n\n protected override onInitialize(): void {\n IModelApp.accuDraw.activate();\n IModelApp.accuDraw.setContext(AccuDrawFlags.FixedOrigin); // Don't move compass when updateOrientation returns false...\n }\n\n protected override onComplete(): AccuDrawFlags {\n let ignoreFlags = AccuDrawFlags.SetRMatrix | AccuDrawFlags.Disable; // If AccuDraw wasn't active when the shortcut started, let it remain active for suspended tool when shortcut completes...\n if (this._moveOrigin)\n ignoreFlags |= AccuDrawFlags.SetOrigin;\n return ignoreFlags;\n }\n\n private updateOrientation(snap: SnapDetail, viewport: ScreenViewport): boolean {\n const accudraw = IModelApp.accuDraw;\n const rMatrix = AccuDraw.getSnapRotation(snap, viewport);\n if (undefined === rMatrix)\n return false;\n\n const point = this._moveOrigin ? snap.snapPoint : accudraw.origin;\n accudraw.setContext(AccuDrawFlags.SetRMatrix | AccuDrawFlags.AlwaysSetOrigin, point, rMatrix);\n return true;\n }\n\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n const viewport = ev ? ev.viewport : IModelApp.accuDraw.currentView;\n if (!viewport)\n return false;\n\n const snap = TentativeOrAccuSnap.getCurrentSnap(false);\n if (undefined === snap || !this.updateOrientation(snap, viewport))\n return false;\n\n if (undefined === ev)\n AccuDrawShortcuts.processPendingHints(); // Would normally be processed after button down, necessary when called from post install...\n\n const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;\n if (vp)\n vp.invalidateDecorations();\n\n if (!isMotion)\n IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Hold temporary rotation for tool duration...\n return true;\n }\n}\n\n/**\n * Interactive tool to set the AccuDraw rotation using the snapped to geometry under the cursor.\n * @beta\n */\nexport class AccuDrawRotateElementTool extends AccuDrawShortcutTool {\n public static override toolId = \"AccuDraw.RotateElement\";\n\n /** @internal */\n protected override createImplementation(): AccuDrawShortcutImplementation {\n return new RotateElementImplementation();\n }\n}\n\n/** @internal */\nclass RotatePointsImplementation extends AccuDrawShortcutImplementation {\n private readonly _points: Point3d[] = [];\n private _origin = IModelApp.tentativePoint.isActive ? IModelApp.tentativePoint.getPoint().clone() : undefined;\n private _moveOrigin = !IModelApp.accuDraw.isActive || IModelApp.tentativePoint.isActive; // Preserve current origin if AccuDraw already active and not tentative snap...\n private _lastPoint?: Point3d;\n\n protected override onProvideToolAssistance(): void {\n switch (this._points.length) {\n case 0:\n CoreTools.outputPromptByKey(\"AccuDraw.RotatePoints.Prompts.FirstPoint\");\n break;\n\n case 1:\n CoreTools.outputPromptByKey(\"AccuDraw.RotatePoints.Prompts.SecondPoint\");\n break;\n\n default:\n CoreTools.outputPromptByKey(\"AccuDraw.RotatePoints.Prompts.NextPoint\");\n break;\n }\n }\n\n protected override onInitialize(): void {\n if (undefined === this._origin)\n return;\n\n this._points.push(this._origin);\n IModelApp.tentativePoint.clear(true); // Necessary when installed as an InputCollector...\n\n IModelApp.accuDraw.activate();\n IModelApp.accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.FixedOrigin, this._origin);\n IModelApp.accuDraw.refreshDecorationsAndDynamics();\n }\n\n protected override onComplete(): AccuDrawFlags {\n let ignoreFlags = AccuDrawFlags.SetRMatrix | AccuDrawFlags.Disable; // If AccuDraw wasn't active when the shortcut started, let it remain active for suspended tool when shortcut completes...\n if (this._moveOrigin)\n ignoreFlags |= AccuDrawFlags.SetOrigin;\n return ignoreFlags;\n }\n\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n if (!ev || !ev.viewport)\n return false;\n\n IModelApp.viewManager.invalidateDecorationsAllViews();\n if (isMotion) {\n this._lastPoint = ev.point.clone();\n return false;\n }\n\n const accuDraw = IModelApp.accuDraw;\n accuDraw.activate();\n\n switch (this._points.length) {\n case 0: {\n this._points.push(ev.point.clone());\n accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.FixedOrigin, this._points[0]);\n break;\n }\n\n case 1: {\n const xVec = Vector3d.createNormalizedStartEnd(this._points[0], ev.point);\n if (undefined === xVec)\n return false;\n\n if (!ev.viewport.view.is3d() || !ev.viewport.view.allow3dManipulations()) {\n accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.SetXAxis, this._points[0], xVec);\n return true; // Complete\n }\n\n this._points.push(ev.point.clone());\n accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.FixedOrigin | AccuDrawFlags.SetNormal, this._points[0], xVec);\n break;\n }\n\n case 2: {\n const xVec = Vector3d.createNormalizedStartEnd(this._points[0], this._points[1]);\n if (undefined === xVec)\n return false;\n\n const yVec = Vector3d.createNormalizedStartEnd(this._points[0], ev.point);\n if (undefined === yVec)\n return false;\n\n const matrix = Matrix3d.createRigidFromColumns(xVec, yVec, AxisOrder.XYZ);\n if (undefined === matrix)\n return false;\n\n const invMatrix = matrix.inverse();\n if (undefined === invMatrix)\n return false;\n\n accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.SetRMatrix, this._points[0], invMatrix);\n return true; // Complete\n }\n }\n\n this.onProvideToolAssistance();\n return false;\n }\n\n public override doDecorate(context: DecorateContext): void {\n if (0 === this._points.length)\n return;\n\n const currentPoint = this._lastPoint;\n if (undefined === currentPoint)\n return;\n\n if (2 === this._points.length) {\n const xVec = Vector3d.createNormalizedStartEnd(this._points[0], this._points[1]);\n if (undefined === xVec)\n return;\n\n const plane = Plane3dByOriginAndUnitNormal.create(this._points[0], xVec);\n if (undefined === plane)\n return;\n\n plane.projectPointToPlane(currentPoint, currentPoint);\n }\n\n const tmpPoints = this._points.slice(0, 1);\n tmpPoints.push(currentPoint);\n\n const vp = context.viewport;\n const color = vp.getContrastToBackgroundColor();\n const builder = context.createGraphicBuilder(GraphicType.WorldOverlay);\n\n builder.setSymbology(color, color, 2);\n builder.addLineString(tmpPoints);\n\n context.addDecorationFromBuilder(builder);\n }\n}\n\n/**\n * Interactive tool to set the AccuDraw rotation by 3 points: x axis origin, x axis direction, and y axis direction.\n * @beta\n */\nexport class AccuDrawRotatePointsTool extends AccuDrawShortcutTool {\n public static override toolId = \"AccuDraw.RotatePoints\";\n\n /** @internal */\n protected override createImplementation(): AccuDrawShortcutImplementation {\n return new RotatePointsImplementation();\n }\n}\n\n/** @internal */\nclass DefineACSByElementImplementation extends AccuDrawShortcutImplementation {\n private _origin = Point3d.create();\n private _rMatrix = Matrix3d.createIdentity();\n private _acs?: AuxCoordSystemState;\n\n protected override onProvideToolAssistance(): void {\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByElement.Prompts.FirstPoint\");\n }\n\n private updateOrientation(snap: SnapDetail, vp: Viewport): boolean {\n const rMatrix = AccuDraw.getSnapRotation(snap, vp);\n if (undefined === rMatrix)\n return false;\n this._origin = snap.snapPoint;\n this._rMatrix = rMatrix;\n return true;\n }\n\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n const vp = ev ? ev.viewport : undefined;\n if (!vp)\n return false;\n\n const snapDetail = TentativeOrAccuSnap.getCurrentSnap(false);\n if (undefined === snapDetail || !this.updateOrientation(snapDetail, vp))\n return false;\n\n IModelApp.viewManager.invalidateDecorationsAllViews();\n if (isMotion)\n return true;\n\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n\n this._acs.setOrigin(this._origin);\n this._acs.setRotation(this._rMatrix);\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\n AccuDrawShortcuts.rotateToACS();\n return true;\n }\n\n public override doDecorate(context: DecorateContext): void {\n const vp = context.viewport;\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n this._acs.setOrigin(this._origin);\n this._acs.setRotation(this._rMatrix);\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\n }\n}\n\n/**\n * Interactive tool to set the view's ACS rotation by 3 points: x axis origin, x axis direction, and y axis direction/\n * @beta\n */\nexport class DefineACSByElementTool extends AccuDrawShortcutTool {\n public static override toolId = \"AccuDraw.DefineACSByElement\";\n\n /** @internal */\n protected override createImplementation(): AccuDrawShortcutImplementation {\n return new DefineACSByElementImplementation();\n }\n}\n\n/** @internal */\nclass DefineACSByPointsImplementation extends AccuDrawShortcutImplementation {\n private readonly _points: Point3d[] = [];\n private _acs?: AuxCoordSystemState;\n private _origin = IModelApp.tentativePoint.isActive ? IModelApp.tentativePoint.getPoint().clone() : undefined;\n private _lastPoint?: Point3d;\n\n protected override onProvideToolAssistance(): void {\n switch (this._points.length) {\n case 0:\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.FirstPoint\");\n break;\n\n case 1:\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.SecondPoint\");\n break;\n\n default:\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.NextPoint\");\n break;\n }\n }\n\n protected override onInitialize(): void {\n if (undefined === this._origin)\n return;\n\n this._points.push(this._origin);\n IModelApp.tentativePoint.clear(true); // Necessary when installed as an InputCollector...\n\n IModelApp.accuDraw.activate();\n IModelApp.accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.FixedOrigin, this._origin);\n IModelApp.accuDraw.refreshDecorationsAndDynamics();\n }\n\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\n if (!ev || !ev.viewport)\n return false;\n\n IModelApp.viewManager.invalidateDecorationsAllViews();\n if (isMotion) {\n this._lastPoint = ev.point.clone();\n return false;\n }\n\n IModelApp.accuDraw.activate();\n this._points.push(ev.point.clone());\n\n const vp = ev.viewport;\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n\n if (AccuDrawShortcuts.updateACSByPoints(this._acs, vp, this._points, false)) {\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\n AccuDrawShortcuts.rotateToACS();\n return true;\n }\n\n this.onProvideToolAssistance();\n return false;\n }\n\n public override doDecorate(context: DecorateContext): void {\n if (undefined === this._lastPoint)\n return;\n\n const tmpPoints: Point3d[] = [];\n this._points.forEach((pt) => tmpPoints.push(pt));\n tmpPoints.push(this._lastPoint);\n\n const vp = context.viewport;\n if (!this._acs)\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\n\n AccuDrawShortcuts.updateACSByPoints(this._acs, vp, tmpPoints, true);\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\n }\n}\n\n/**\n * Interactive tool to set the view's ACS rotation by 3 points: x axis origin, x axis direction, and y axis direction.\n * @beta\n */\nexport class DefineACSByPointsTool extends AccuDrawShortcutTool {\n public static override toolId = \"AccuDraw.DefineACSByPoints\";\n\n /** @internal */\n protected override createImplementation(): AccuDrawShortcutImplementation {\n return new DefineACSByPointsImplementation();\n }\n}\n"]}
|
|
@@ -162,8 +162,8 @@ export declare class ViewClipByPlaneTool extends ViewClipTool {
|
|
|
162
162
|
export declare class ViewClipByShapeTool extends ViewClipTool {
|
|
163
163
|
static toolId: string;
|
|
164
164
|
static iconSpec: string;
|
|
165
|
-
/** @internal */
|
|
166
165
|
private _orientationValue;
|
|
166
|
+
private _lastMotion?;
|
|
167
167
|
/** @internal */
|
|
168
168
|
protected readonly _points: Point3d[];
|
|
169
169
|
/** @internal */
|
|
@@ -201,6 +201,7 @@ export declare class ViewClipByShapeTool extends ViewClipTool {
|
|
|
201
201
|
export declare class ViewClipByRangeTool extends ViewClipTool {
|
|
202
202
|
static toolId: string;
|
|
203
203
|
static iconSpec: string;
|
|
204
|
+
private _lastMotion?;
|
|
204
205
|
/** @internal */
|
|
205
206
|
protected _corner?: Point3d;
|
|
206
207
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipViewTool.d.ts","sourceRoot":"","sources":["../../../src/tools/ClipViewTool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ClipViewTool.d.ts","sourceRoot":"","sources":["../../../src/tools/ClipViewTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import { LocateResponse } from "../ElementLocateManager";
|
|
|
14
14
|
import { IModelApp } from "../IModelApp";
|
|
15
15
|
import { EditManipulator } from "./EditManipulator";
|
|
16
16
|
import { PrimitiveTool } from "./PrimitiveTool";
|
|
17
|
-
import {
|
|
17
|
+
import { CoordinateLockOverrides, CoreTools, EventHandled } from "./Tool";
|
|
18
18
|
import { ToolAssistance, ToolAssistanceImage, ToolAssistanceInputMethod } from "./ToolAssistance";
|
|
19
19
|
import { GraphicType } from "../common/render/GraphicType";
|
|
20
20
|
/** A tool to define a clip volume for a view
|
|
@@ -463,8 +463,8 @@ export class ViewClipByPlaneTool extends ViewClipTool {
|
|
|
463
463
|
export class ViewClipByShapeTool extends ViewClipTool {
|
|
464
464
|
static toolId = "ViewClip.ByShape";
|
|
465
465
|
static iconSpec = "icon-section-shape";
|
|
466
|
-
/** @internal */
|
|
467
466
|
_orientationValue = { value: ContextRotationId.Top };
|
|
467
|
+
_lastMotion;
|
|
468
468
|
/** @internal */
|
|
469
469
|
_points = [];
|
|
470
470
|
/** @internal */
|
|
@@ -598,9 +598,8 @@ export class ViewClipByShapeTool extends ViewClipTool {
|
|
|
598
598
|
decorate(context) {
|
|
599
599
|
if (context.viewport !== this.targetView)
|
|
600
600
|
return;
|
|
601
|
-
const ev =
|
|
602
|
-
|
|
603
|
-
if (undefined === ev.viewport)
|
|
601
|
+
const ev = this._lastMotion;
|
|
602
|
+
if (undefined === ev?.viewport)
|
|
604
603
|
return;
|
|
605
604
|
const points = this.getClipPoints(ev);
|
|
606
605
|
if (points.length < 2)
|
|
@@ -621,6 +620,7 @@ export class ViewClipByShapeTool extends ViewClipTool {
|
|
|
621
620
|
}
|
|
622
621
|
/** @internal */
|
|
623
622
|
async onMouseMotion(ev) {
|
|
623
|
+
this._lastMotion = ev;
|
|
624
624
|
if (this._points.length > 0 && undefined !== ev.viewport)
|
|
625
625
|
ev.viewport.invalidateDecorations();
|
|
626
626
|
}
|
|
@@ -670,6 +670,7 @@ export class ViewClipByShapeTool extends ViewClipTool {
|
|
|
670
670
|
export class ViewClipByRangeTool extends ViewClipTool {
|
|
671
671
|
static toolId = "ViewClip.ByRange";
|
|
672
672
|
static iconSpec = "icon-section-range";
|
|
673
|
+
_lastMotion;
|
|
673
674
|
/** @internal */
|
|
674
675
|
_corner;
|
|
675
676
|
/** @internal */
|
|
@@ -712,9 +713,8 @@ export class ViewClipByRangeTool extends ViewClipTool {
|
|
|
712
713
|
decorate(context) {
|
|
713
714
|
if (context.viewport !== this.targetView || undefined === this._corner)
|
|
714
715
|
return;
|
|
715
|
-
const ev =
|
|
716
|
-
|
|
717
|
-
if (undefined === ev.viewport)
|
|
716
|
+
const ev = this._lastMotion;
|
|
717
|
+
if (undefined === ev?.viewport)
|
|
718
718
|
return;
|
|
719
719
|
const range = Range3d.create();
|
|
720
720
|
const transform = Transform.createIdentity();
|
|
@@ -733,6 +733,7 @@ export class ViewClipByRangeTool extends ViewClipTool {
|
|
|
733
733
|
}
|
|
734
734
|
/** @internal */
|
|
735
735
|
async onMouseMotion(ev) {
|
|
736
|
+
this._lastMotion = ev;
|
|
736
737
|
if (undefined !== this._corner && undefined !== ev.viewport)
|
|
737
738
|
ev.viewport.invalidateDecorations();
|
|
738
739
|
}
|