@itwin/editor-frontend 5.1.2 → 5.1.3-experimental.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # Change Log - @itwin/editor-frontend
2
2
 
3
- This log was last generated on Thu, 14 Aug 2025 19:38:08 GMT and should not be manually modified.
3
+ This log was last generated on Wed, 20 Aug 2025 13:57:10 GMT and should not be manually modified.
4
+
5
+ ## 5.1.3
6
+ Wed, 20 Aug 2025 13:57:10 GMT
7
+
8
+ _Version update only_
4
9
 
5
10
  ## 5.1.2
6
11
  Thu, 14 Aug 2025 19:38:08 GMT
@@ -1 +1 @@
1
- {"version":3,"file":"CreateElementTool.js","sourceRoot":"","sources":["../../src/CreateElementTool.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\n/** @packageDocumentation\n * @module Editing\n */\n\nimport { Id64, Id64String, IModelStatus } from \"@itwin/core-bentley\";\nimport { Constant, Point3d, Range3d, Transform, Vector3d } from \"@itwin/core-geometry\";\nimport { DynamicGraphicsRequest2dProps, DynamicGraphicsRequest3dProps, FlatBufferGeometryStream, GeometricElementProps, IModelError, isPlacement3dProps, JsonGeometryStream, PlacementProps } from \"@itwin/core-common\";\nimport { BeButtonEvent, CoordSystem, CoreTools, DynamicsContext, EventHandled, GraphicBranch, IModelApp, IModelConnection, PrimitiveTool, readElementGraphics, RenderGraphicOwner, ToolAssistance, ToolAssistanceImage, ToolAssistanceInputMethod, ToolAssistanceInstruction, ToolAssistanceSection, Viewport } from \"@itwin/core-frontend\";\n\nfunction computeChordToleranceFromPointAndRadius(vp: Viewport, center: Point3d, radius: number): number {\n if (vp.view.is3d() && vp.view.isCameraOn) {\n const nearFrontCenter = vp.getFrustum(CoordSystem.World).frontCenter;\n const toFront = Vector3d.createStartEnd(center, nearFrontCenter);\n const viewZ = vp.rotation.rowZ();\n\n // If the sphere overlaps the near front plane just use near front point. This also handles behind eye conditions.\n if (viewZ.dotProduct(toFront) < radius) {\n center = nearFrontCenter;\n } else {\n // Find point on sphere closest to eye.\n const toEye = center.unitVectorTo(vp.view.camera.eye);\n\n // Only if not already behind the eye.\n if (toEye) {\n toEye.scaleInPlace(radius);\n center.addInPlace(toEye);\n }\n }\n }\n\n const viewPt = vp.worldToViewMap.transform0.multiplyPoint3dQuietNormalize(center);\n const viewPt2 = new Point3d(viewPt.x + 1.0, viewPt.y, viewPt.z);\n const pixelSize = vp.worldToViewMap.transform1.multiplyPoint3dQuietNormalize(viewPt).distance(vp.worldToViewMap.transform1.multiplyPoint3dQuietNormalize(viewPt2));\n\n // Return size of a physical pixel in meters.\n return (0.0 !== pixelSize ? vp.target.adjustPixelSizeForLOD(pixelSize) : 0.001);\n}\n\n/** Calculate a view based chord tolerance for facetting curved geometry given a world coordinate and optional radius.\n * @beta\n */\nexport function computeChordToleranceFromPoint(vp: Viewport, pt: Point3d, radius?: number): number {\n return computeChordToleranceFromPointAndRadius(vp, pt, radius ? radius : Constant.oneCentimeter);\n}\n\n/** Calculate a view based chord tolerance for facetting curved geometry given a world coordinate range box.\n * @beta\n */\nexport function computeChordToleranceFromRange(vp: Viewport, range: Range3d): number {\n return computeChordToleranceFromPointAndRadius(vp, range.center, 0.5 * range.low.distance(range.high));\n}\n\n/** A class for creating and managing a RenderGraphic for the purpose of interactive tool dynamics.\n * @beta\n */\nexport class DynamicGraphicsProvider {\n public readonly iModel: IModelConnection;\n public readonly prefix: string;\n public graphic?: RenderGraphicOwner;\n /** Current request for graphic */\n private _graphicPromise?: Promise<boolean>;\n /** Optional element id generated graphics will be associated to */\n public elementId?: Id64String;\n /** Optional model id generated graphics will be associated to */\n public modelId?: Id64String;\n /** Chord tolerance to use to stroke the element's geometry in meters */\n public chordTolerance = 0.001;\n\n constructor(iModel: IModelConnection, prefix: string) {\n this.iModel = iModel;\n this.prefix = prefix;\n }\n\n private getRequestId(id: Id64String): string { return `${this.prefix}-${id}`; }\n private getToleranceLog10(): number { return Math.floor(Math.log10(this.chordTolerance)); }\n\n private async createRequest(categoryId: Id64String, placement: PlacementProps, geometry: JsonGeometryStream | FlatBufferGeometryStream): Promise<RenderGraphicOwner | undefined> {\n let graphicData;\n let is3d;\n\n if (is3d = isPlacement3dProps(placement)) {\n const requestProps: DynamicGraphicsRequest3dProps = {\n id: this.getRequestId(this.elementId ? this.elementId : Id64.invalid),\n elementId: this.elementId,\n modelId: this.modelId,\n toleranceLog10: this.getToleranceLog10(),\n type: \"3d\",\n placement,\n categoryId,\n geometry,\n };\n graphicData = await IModelApp.tileAdmin.requestElementGraphics(this.iModel, requestProps);\n is3d = true;\n } else {\n const requestProps: DynamicGraphicsRequest2dProps = {\n id: this.getRequestId(this.elementId ? this.elementId : Id64.invalid),\n elementId: this.elementId,\n modelId: this.modelId,\n toleranceLog10: this.getToleranceLog10(),\n type: \"2d\",\n placement,\n categoryId,\n geometry,\n };\n graphicData = await IModelApp.tileAdmin.requestElementGraphics(this.iModel, requestProps);\n }\n\n if (undefined === graphicData)\n return;\n\n const graphic = await readElementGraphics(graphicData, this.iModel, this.modelId ? this.modelId : Id64.invalid, is3d, { noFlash: true, noHilite: true });\n if (undefined === graphic)\n return;\n\n return IModelApp.renderSystem.createGraphicOwner(graphic);\n }\n\n /** Call to request a RenderGraphic for the supplied geometry and placement.\n * @see [[cleanupGraphic]] Must be called when the tool exits.\n */\n public async createGraphic(categoryId: Id64String, placement: PlacementProps, geometry: JsonGeometryStream | FlatBufferGeometryStream): Promise<boolean> {\n try {\n const graphic = await this.createRequest(categoryId, placement, geometry);\n this.cleanupGraphic();\n return (undefined !== (this.graphic = graphic));\n } catch {\n return false;\n }\n }\n\n /** Call to request a RenderGraphic for the supplied geometry and trigger a dynamic update upon fulfillment.\n * @note May be useful to update a dynamic preview outside of normal button and motion events, ex. modifier key change.\n * @see [[cleanupGraphic]] Must be called when the tool exits.\n */\n public createGraphicAndUpdateDynamics(ev: BeButtonEvent, categoryId: Id64String, placement: PlacementProps, geometry: JsonGeometryStream | FlatBufferGeometryStream): void {\n const promise = this._graphicPromise = this.createGraphic(categoryId, placement, geometry);\n\n promise.then(() => {\n if (promise !== this._graphicPromise)\n return; // abandoned this request...\n\n IModelApp.toolAdmin.updateDynamics(ev);\n }).catch((_) => { });\n }\n\n /** Call to dispose of [[RenderGraphic]] held by [[RenderGraphicOwner]].\n * @note Must be called when the tool exits to avoid leaks of graphics memory or other webgl resources.\n */\n public cleanupGraphic(): void {\n if (undefined === this.graphic)\n return;\n this.graphic.disposeGraphic();\n this.graphic = undefined;\n }\n\n public addGraphic(context: DynamicsContext, transform?: Transform): void {\n if (undefined === this.graphic) {\n return;\n }\n\n let isOverlay = false;\n const modelId = this.modelId;\n const view = context.viewport.view;\n if (undefined !== modelId && view.is3d() && Id64.isValidId64(modelId)) {\n const planProjectionSettings = view.displayStyle.settings.getPlanProjectionSettings(modelId);\n if (planProjectionSettings?.overlay) {\n isOverlay = true;\n }\n }\n\n if (undefined === transform) {\n context.add(this.graphic, isOverlay);\n return;\n }\n\n const branch = new GraphicBranch(false);\n branch.add(this.graphic);\n\n const branchGraphic = context.createBranch(branch, transform);\n context.add(branchGraphic, isOverlay);\n }\n}\n\n/** Placement tool base class for creating new elements.\n * @beta\n */\nexport abstract class CreateElementTool extends PrimitiveTool {\n public get targetCategory(): Id64String {\n const category = this.briefcase?.editorToolSettings.category;\n if (undefined === category)\n throw new IModelError(IModelStatus.InvalidCategory, \"\");\n\n return category;\n }\n\n public override get targetModelId(): Id64String {\n const model = this.briefcase?.editorToolSettings.model;\n if (undefined === model)\n throw new IModelError(IModelStatus.BadModel, \"\");\n\n return model;\n }\n\n public override isCompatibleViewport(vp: Viewport | undefined, isSelectedViewChange: boolean): boolean {\n if (!vp?.iModel.isBriefcaseConnection())\n return false;\n\n return undefined !== vp.iModel.editorToolSettings.model && super.isCompatibleViewport(vp, isSelectedViewChange);\n }\n\n /** Whether [[setupAndPromptForNextAction]] should call [[AccuSnap.enableSnap]] for current tool phase.\n * @return true to enable snapping to elements.\n */\n protected get wantAccuSnap(): boolean { return false; }\n\n /** Whether to automatically start element dynamics on button event.\n * @return true if tool will implement [[InteractiveTool.onDynamicFrame]] to show element dynamics.\n */\n protected get wantDynamics(): boolean { return false; }\n\n /** Whether tool is ready to insert the new element.\n * @return true to call [[createElement]].\n */\n protected isComplete(_ev: BeButtonEvent): boolean { return false; }\n\n /** Insert new element and call [[saveChanges]] */\n protected abstract createElement(): Promise<void>;\n\n /** Orchestrates advancing the internal state of the tool on a data button event.\n * - Gather input: Initiates element dynamics and accepts additional points as required.\n * - Complete operation: Create new element, restart or exit tool.\n * @returns EventHandled.Yes if onReinitialize was called to restart or exit tool.\n */\n protected async processDataButton(ev: BeButtonEvent): Promise<EventHandled> {\n if (this.isComplete(ev)) {\n await this.createElement();\n await this.onReinitialize();\n\n return EventHandled.Yes;\n }\n\n this.setupAndPromptForNextAction();\n\n if (!this.isDynamicsStarted && this.wantDynamics)\n this.beginDynamics();\n\n return EventHandled.No;\n }\n\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\n return this.processDataButton(ev);\n }\n\n public override async onResetButtonUp(_ev: BeButtonEvent): Promise<EventHandled> {\n await this.onReinitialize();\n return EventHandled.No;\n }\n\n /** Setup initial tool state, prompts, etc. */\n public override async onPostInstall() {\n await super.onPostInstall();\n this.setupAndPromptForNextAction();\n }\n\n /** Restore tool assistance after no longer being suspended by either a [[ViewTool]] or [[InputCollector]]. */\n public override async onUnsuspend() {\n this.provideToolAssistance();\n }\n\n /** Setup auto-locate, AccuSnap, AccuDraw, and supply tool assistance. */\n protected setupAndPromptForNextAction(): void {\n IModelApp.accuSnap.enableSnap(this.wantAccuSnap);\n this.provideToolAssistance();\n }\n\n /** Sub-classes should override to provide tool specific instructions. */\n protected provideToolAssistance(mainInstrText?: string, additionalInstr?: ToolAssistanceInstruction[]): void {\n const mainMsg = \"ElementSet.Prompts.IdentifyPoint\";\n const leftMsg = \"ElementSet.Inputs.AcceptPoint\";\n const rightMsg = \"ElementSet.Inputs.Cancel\";\n\n const mouseInstructions: ToolAssistanceInstruction[] = [];\n const touchInstructions: ToolAssistanceInstruction[] = [];\n\n if (!ToolAssistance.createTouchCursorInstructions(touchInstructions))\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchTap, CoreTools.translate(leftMsg), false, ToolAssistanceInputMethod.Touch));\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate(leftMsg), false, ToolAssistanceInputMethod.Mouse));\n\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.TwoTouchTap, CoreTools.translate(rightMsg), false, ToolAssistanceInputMethod.Touch));\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClick, CoreTools.translate(rightMsg), false, ToolAssistanceInputMethod.Mouse));\n\n if (undefined !== additionalInstr) {\n for (const instr of additionalInstr) {\n if (ToolAssistanceInputMethod.Touch === instr.inputMethod)\n touchInstructions.push(instr);\n else\n mouseInstructions.push(instr);\n }\n }\n\n const sections: ToolAssistanceSection[] = [];\n sections.push(ToolAssistance.createSection(mouseInstructions, ToolAssistance.inputsLabel));\n sections.push(ToolAssistance.createSection(touchInstructions, ToolAssistance.inputsLabel));\n\n const mainInstruction = ToolAssistance.createInstruction(this.iconSpec, undefined !== mainInstrText ? mainInstrText : CoreTools.translate(mainMsg));\n const instructions = ToolAssistance.createInstructions(mainInstruction, sections);\n IModelApp.notifications.setToolAssistance(instructions);\n }\n}\n\n/** Placement tool base class for creating new elements that use dynamics to show intermediate results.\n * @beta\n * @usage Subclasses should override the following methods in addition to the\n * abstract methods. See the method descriptions for more details:\n * - Override: [[isComplete]], [[updateElementData]], [[doCreateElement]], [[setupAccuDraw]], [[cancelPoint]]\n * - As necessary: [[wantAccuSnap]], [[wantDynamics]]\n * - Ensure the parent's implementation is called: [[setupAndPromptForNextAction]], [[onPostInstall]]\n *\n * This class expects subclasses to call [[setupAndPromptForNextAction]] as moving between the subclass's internal state.\n * @note To trigger an element to be inserted on [[onDataButtonDown]], ensure [[isComplete]] returns `true`\n * @caution Subclasses typically do not override the following methods. Instead, overwrite the methods they call as described here:\n * - [[onMouseMotion]]: See [[updateElementData]].\n * - [[onDataButtonDown]]:\n * - - See [[updateElementData]] for accepting data points.\n * - - See [[isComplete]] & [[doCreateElement` for creating the finalized element.\n * - - (With caution) See [[acceptPoint]] for preventing the mouse click event from propagating to the base tools.\n * - [[onResetButtonUp]]: See [[cancelPoint]].\n */\nexport abstract class CreateElementWithDynamicsTool extends CreateElementTool {\n protected _graphicsProvider?: DynamicGraphicsProvider;\n\n protected override get wantAccuSnap(): boolean { return true; }\n protected override get wantDynamics(): boolean { return true; }\n\n protected clearGraphics(): void {\n if (undefined === this._graphicsProvider)\n return;\n this._graphicsProvider.cleanupGraphic();\n this._graphicsProvider = undefined;\n }\n\n /**\n * This method is intended to update the dynamic graphics displayed by the tool.\n *\n * It expects [[updateDynamicData]] to return `true`. If it returns `false`, no graphics are created.\n *\n * It expects [[getPlacementProps]] and [[getGeometryProps]] to be defined as it uses these functions to create the dynamic graphic.\n */\n protected async createGraphics(ev: BeButtonEvent): Promise<void> {\n if (!await this.updateDynamicData(ev))\n return;\n\n const placement = this.getPlacementProps();\n if (undefined === placement)\n return;\n\n const geometry = this.getGeometryProps(placement);\n if (undefined === geometry)\n return;\n\n if (undefined === this._graphicsProvider)\n this._graphicsProvider = new DynamicGraphicsProvider(this.iModel, this.toolId);\n\n // Set chord tolerance for curved surfaces...\n if (ev.viewport)\n this._graphicsProvider.chordTolerance = computeChordToleranceFromPoint(ev.viewport, ev.point);\n\n this._graphicsProvider.modelId = this.targetModelId;\n await this._graphicsProvider.createGraphic(this.targetCategory, placement, geometry);\n }\n\n public override onDynamicFrame(_ev: BeButtonEvent, context: DynamicsContext): void {\n if (undefined !== this._graphicsProvider)\n this._graphicsProvider.addGraphic(context);\n }\n\n /** Invoked when the cursor is moving\n * Propagates event to [[updateElementData]].\n * @caution Subclasses typically don't override this.\n */\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\n return this.createGraphics(ev);\n }\n\n protected abstract getPlacementProps(): PlacementProps | undefined;\n protected abstract getGeometryProps(placement: PlacementProps): JsonGeometryStream | FlatBufferGeometryStream | undefined;\n protected abstract getElementProps(placement: PlacementProps): GeometricElementProps | undefined;\n\n /**\n * Creates a new element in the iModel by interfacing with the core/editor backend.\n *\n * This method is called by [[onDataButtonDown]] only if `isComplete` is true.\n *\n * @param _props Argument passed in is based on the return value from the [[getElementProps]] method.\n */\n protected async doCreateElement(_props: GeometricElementProps): Promise<void> {}\n\n /** This method is intended to update information related to the element. This method is called in 2 scenarios:\n * 1. [[onMouseMotion]] as a dynamics\n * 2. [[onDataButtonDown]] when accepting the next point of the tool\n * @param ev - The mouse event triggering this call.\n * @param isDynamics it is `true` in scenario [1] and `false` in scenario [2].\n */\n protected async updateElementData(_ev: BeButtonEvent, _isDynamics: boolean): Promise<void> {}\n\n /**\n * This function does not handle updating data itself, instead, it directly calls [[updateElementData]] to handle that.\n * @returns `true` if dynamics are active, `false` otherwise.\n * @caution Subclasses typically don't override this.\n */\n protected async updateDynamicData(ev: BeButtonEvent): Promise<boolean> {\n if (!IModelApp.viewManager.inDynamicsMode)\n return false; // Don't need to create graphic if dynamics aren't yet active...\n\n await this.updateElementData(ev, true);\n return true;\n }\n\n protected async createElement(): Promise<void> {\n const placement = this.getPlacementProps();\n if (undefined === placement)\n return;\n\n const geometry = this.getGeometryProps(placement);\n if (undefined === geometry)\n return;\n\n const elemProps = this.getElementProps(placement);\n if (undefined === elemProps)\n return;\n\n if (\"flatbuffer\" === geometry.format) {\n delete elemProps.geom; // Leave unchanged until replaced by flatbuffer geometry...\n elemProps.elementGeometryBuilderParams = { entryArray: geometry.data };\n } else {\n elemProps.geom = geometry.data;\n }\n\n return this.doCreateElement(elemProps);\n }\n\n /** Intended to be used to setupAccuSnap. Is called by [[setupAndPromptForNextAction]].\n * @note Has not checked for [[wantAccuSnap]] at this point. Directly, *after* this method is called in [[setupAndPromptForNextAction]], AccuSnap will be enabled/disabled based on [[wantAccuSnap]].\n */\n protected setupAccuDraw(): void { }\n\n protected override setupAndPromptForNextAction(): void {\n this.setupAccuDraw();\n super.setupAndPromptForNextAction();\n }\n\n /** Called by [[onDataButtonDown]].\n * @returns return `false` if the event has been handled.\n * @caution Subclasses typically don't override this.\n */\n protected async acceptPoint(ev: BeButtonEvent): Promise<boolean> {\n await this.updateElementData(ev, false);\n return true;\n }\n\n /** Invoked when the data button is pressed.\n * Propagates event to [[updateElementData]] by way of [[acceptPoint]].\n * @caution Subclasses typically don't override this.\n */\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\n if (!await this.acceptPoint(ev))\n return EventHandled.Yes;\n return super.onDataButtonDown(ev);\n }\n\n /** Called by [[onResetButtonUp]].\n * @returns return `false` if the event has been handled.\n */\n protected async cancelPoint(_ev: BeButtonEvent): Promise<boolean> { return true; }\n\n /** Invoked when the reset button is released.\n * Propagates event to [[cancelPoint]].\n * @caution Subclasses typically don't override this.\n */\n public override async onResetButtonUp(ev: BeButtonEvent): Promise<EventHandled> {\n if (!await this.cancelPoint(ev))\n return EventHandled.Yes;\n return super.onResetButtonUp(ev);\n }\n\n public override async onCleanup() {\n this.clearGraphics();\n return super.onCleanup();\n }\n}\n"]}
1
+ {"version":3,"file":"CreateElementTool.js","sourceRoot":"","sources":["../../src/CreateElementTool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditTool.js","sourceRoot":"","sources":["../../src/EditTool.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAAiD;AACjD,wDAA0E;AAC1E,wDAAwD;AAExD,gDAAgD;AAChD,8EAA8E;AAC9E,2EAA2E;AAgB3E;;;GAGG;AACH,MAAa,SAAS;IACb,MAAM,CAAU,SAAS,GAAG,QAAQ,CAAC;IACrC,MAAM,CAAU,KAAK,GAAG,eAAe,CAAC;IACxC,MAAM,CAAC,SAAS,CAAuB;IACtC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;IAE7B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAI,QAA6B,EAAE,GAAG,OAAc;QAClF,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,OAAO,MAAO,sBAAM,CAAC,+BAAe,CAAC,CAAC,gCAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,GAAG,OAAO,CAAgB,CAAC;YACrJ,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,CAAC,IAAI,KAAK,gCAAgB,CAAC,WAAW;oBACzC,MAAM,CAAC,CAAC,CAAC,wBAAwB;gBACnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;gBACnE,MAAM,yBAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,SAAS,CAAC,MAAc;QACpC,OAAO,yBAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU;QAC5B,IAAI,IAAI,CAAC,YAAY;YACnB,OAAO;QAET,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,oCAAoC;QACpC,yBAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9D,kFAAkF;QAClF,yBAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAEhD,MAAM,gBAAgB,GAAG,yBAAS,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAElF,MAAM,KAAK,GAAG,yBAAS,CAAC,KAAK,CAAC;QAC9B,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,4BAA4B;QACxC,IAAI,CAAC,IAAI,CAAC,YAAY;YACpB,OAAO;QACT,MAAM,KAAK,GAAG,yBAAS,CAAC,KAAK,CAAC;QAC9B,KAAK,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,KAAK,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,KAAK,CAAC,aAAa;QAC/B,OAAO,IAAI,CAAC,YAAY,CAAS,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAEO,MAAM,CAAC,QAAQ;QACrB,yBAAS,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;;AAxEH,8BAyEC","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 Editing\n */\n\nimport { BeDuration } from \"@itwin/core-bentley\";\nimport { _callIpcChannel, IModelApp, IpcApp } from \"@itwin/core-frontend\";\nimport { editorIpcStrings } from \"@itwin/editor-common\";\n\nimport * as UndoRedoTools from \"./UndoRedoTool\";\nimport * as ProjectLocation from \"./ProjectLocation/ProjectExtentsDecoration\";\nimport * as ProjectGeoLocation from \"./ProjectLocation/ProjectGeolocation\";\n\n/** @beta */\nexport namespace EditTools {\n export interface StartArgs {\n commandId: string;\n iModelKey: string;\n }\n /** handler for retries when an EditTool attempts to start but a backend command is busy and can't finish its work.\n * @param attempt the number of times this handler was previously called for this EditTool\n * @param msg the message about what's happening from the currently busy EditCommand.\n * @returns the delay (in milliseconds) before attempting again. If `undefined` use default (usually 1 second)\n */\n export type BusyRetry = (attempt: number, msg: string) => Promise<number | undefined>;\n}\n\n/**\n * Supports PrimitiveTool and InputCollector sub-classes.\n * @beta\n */\nexport class EditTools {\n public static readonly namespace = \"Editor\";\n public static readonly tools = \"Editor:tools.\";\n public static busyRetry?: EditTools.BusyRetry;\n private static _initialized = false;\n\n public static async startCommand<T>(startArg: EditTools.StartArgs, ...cmdArgs: any[]): Promise<T> {\n let attempt = 0;\n while (true) {\n try {\n return await (IpcApp[_callIpcChannel](editorIpcStrings.channel, \"startCommand\", startArg.commandId, startArg.iModelKey, ...cmdArgs) as Promise<T>);\n } catch (e: any) {\n if (e.name !== editorIpcStrings.commandBusy)\n throw e; // unknown backend error\n const delay = await this.busyRetry?.(attempt++, e.message) ?? 1000;\n await BeDuration.fromMilliseconds(delay).wait();\n }\n }\n }\n\n /** @internal */\n public static translate(prompt: string) {\n return IModelApp.localization.getLocalizedString(this.tools + prompt);\n }\n\n /** Call this before using the package (e.g., before attempting to use any of its tools.)\n * To initialize when starting up your app:\n * ```ts\n * IModelApp.startup();\n * await EditorTools.initialize();\n * ```\n * @note This registers tools for element undo and redo.\n */\n public static async initialize(): Promise<void> {\n if (this._initialized)\n return;\n\n this._initialized = true;\n\n // clean up if we're being shut down\n IModelApp.onBeforeShutdown.addListener(() => this.shutdown());\n\n // Make sure current edit command finishes before starting a new primitive tool...\n IModelApp.toolAdmin.setEditCommandHandler(this);\n\n const namespacePromise = IModelApp.localization.registerNamespace(this.namespace);\n\n const tools = IModelApp.tools;\n tools.registerModule(UndoRedoTools, this.namespace);\n\n return namespacePromise;\n }\n\n /** Can be called after initialize to register tools for changing project extents and geolocation.\n * @note Requires backend to register BasicManipulationCommand with EditCommandAdmin.\n */\n public static registerProjectLocationTools(): void {\n if (!this._initialized)\n return;\n const tools = IModelApp.tools;\n tools.registerModule(ProjectLocation, this.namespace);\n tools.registerModule(ProjectGeoLocation, this.namespace);\n }\n\n /** @internal */\n public static async finishCommand(): Promise<string> {\n return this.startCommand<string>({ commandId: \"\", iModelKey: \"\" });\n }\n\n private static shutdown() {\n IModelApp.toolAdmin.setEditCommandHandler();\n this._initialized = false;\n }\n}\n"]}
1
+ {"version":3,"file":"EditTool.js","sourceRoot":"","sources":["../../src/EditTool.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAAiD;AACjD,wDAA0E;AAC1E,wDAAwD;AAExD,gDAAgD;AAChD,8EAA8E;AAC9E,2EAA2E;AAgB3E;;;GAGG;AACH,MAAa,SAAS;IACb,MAAM,CAAU,SAAS,GAAG,QAAQ,CAAC;IACrC,MAAM,CAAU,KAAK,GAAG,eAAe,CAAC;IACxC,MAAM,CAAC,SAAS,CAAuB;IACtC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;IAE7B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAI,QAA6B,EAAE,GAAG,OAAc;QAClF,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,OAAO,MAAO,sBAAM,CAAC,+BAAe,CAAC,CAAC,gCAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,GAAG,OAAO,CAAgB,CAAC;YACrJ,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,CAAC,IAAI,KAAK,gCAAgB,CAAC,WAAW;oBACzC,MAAM,CAAC,CAAC,CAAC,wBAAwB;gBACnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;gBACnE,MAAM,yBAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,SAAS,CAAC,MAAc;QACpC,OAAO,yBAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU;QAC5B,IAAI,IAAI,CAAC,YAAY;YACnB,OAAO;QAET,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,oCAAoC;QACpC,yBAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9D,kFAAkF;QAClF,yBAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAEhD,MAAM,gBAAgB,GAAG,yBAAS,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAElF,MAAM,KAAK,GAAG,yBAAS,CAAC,KAAK,CAAC;QAC9B,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,4BAA4B;QACxC,IAAI,CAAC,IAAI,CAAC,YAAY;YACpB,OAAO;QACT,MAAM,KAAK,GAAG,yBAAS,CAAC,KAAK,CAAC;QAC9B,KAAK,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,KAAK,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,KAAK,CAAC,aAAa;QAC/B,OAAO,IAAI,CAAC,YAAY,CAAS,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAEO,MAAM,CAAC,QAAQ;QACrB,yBAAS,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;;AAxEH,8BAyEC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditToolIpc.js","sourceRoot":"","sources":["../../src/EditToolIpc.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAUH,0CAEC;AATD,wDAA8C;AAC9C,wDAAqG;AAErG;;;GAGG;AACH,SAAgB,eAAe;IAC7B,OAAO,sBAAM,CAAC,oBAAoB,CAAI,gCAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAChF,CAAC;AAED;;GAEG;AACU,QAAA,oBAAoB,GAAG,eAAe,EAA+B,CAAC","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 Editing\n */\n\nimport { PickAsyncMethods } from \"@itwin/core-bentley\";\nimport { IpcApp } from \"@itwin/core-frontend\";\nimport { BasicManipulationCommandIpc, EditCommandIpc, editorIpcStrings } from \"@itwin/editor-common\";\n\n/**\n * Create a type safe Proxy object to make IPC calls from [[EditTools]] to methods of an `EditCommandIpc` interface of the current `EditCommand`.\n * @beta\n */\nexport function makeEditToolIpc<K extends EditCommandIpc>(): PickAsyncMethods<K> {\n return IpcApp.makeIpcFunctionProxy<K>(editorIpcStrings.channel, \"callMethod\");\n}\n\n/** Proxy for calling methods in `BasicManipulationCommandIpc`\n * @internal\n */\nexport const basicManipulationIpc = makeEditToolIpc<BasicManipulationCommandIpc>();\n\n"]}
1
+ {"version":3,"file":"EditToolIpc.js","sourceRoot":"","sources":["../../src/EditToolIpc.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAUH,0CAEC;AATD,wDAA8C;AAC9C,wDAAqG;AAErG;;;GAGG;AACH,SAAgB,eAAe;IAC7B,OAAO,sBAAM,CAAC,oBAAoB,CAAI,gCAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAChF,CAAC;AAED;;GAEG;AACU,QAAA,oBAAoB,GAAG,eAAe,EAA+B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModifyElementTool.js","sourceRoot":"","sources":["../../src/ModifyElementTool.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\n/** @packageDocumentation\n * @module Editing\n */\n\nimport { Id64, Id64Arg, Id64Array, Id64String } from \"@itwin/core-bentley\";\nimport { FeatureAppearance, FlatBufferGeometryStream, GeometricElementProps, JsonGeometryStream } from \"@itwin/core-common\";\nimport { BeButtonEvent, DynamicsContext, ElementSetTool, FeatureOverrideProvider, FeatureSymbology, HitDetail, IModelApp, LocateResponse, SelectionMethod, SelectionSet, Viewport } from \"@itwin/core-frontend\";\nimport { Point3d } from \"@itwin/core-geometry\";\nimport { computeChordToleranceFromPoint, DynamicGraphicsProvider } from \"./CreateElementTool\";\n\n/** Edit tool base class for updating existing elements.\n * @beta\n */\nexport abstract class ModifyElementTool extends ElementSetTool {\n protected readonly _checkedIds = new Map<Id64String, boolean>();\n\n protected allowView(_vp: Viewport) { return true; }\n public override isCompatibleViewport(vp: Viewport | undefined, isSelectedViewChange: boolean): boolean { return (super.isCompatibleViewport(vp, isSelectedViewChange) && undefined !== vp && this.allowView(vp)); }\n\n protected onGeometryFilterChanged(): void { this._checkedIds.clear(); }\n\n protected async doAcceptElementForOperation(_id: Id64String): Promise<boolean> { return false; }\n\n protected async acceptElementForOperation(id: Id64String): Promise<boolean> {\n if (Id64.isInvalid(id) || Id64.isTransient(id))\n return false;\n\n let accept = this._checkedIds.get(id);\n\n if (undefined === accept) {\n if (this.agenda.isEmpty && this._checkedIds.size > 1000)\n this._checkedIds.clear(); // Limit auto-locate cache size to something reasonable...\n\n accept = await this.doAcceptElementForOperation(id);\n this._checkedIds.set(id, accept);\n }\n\n return accept;\n }\n\n protected override async isElementValidForOperation(hit: HitDetail, out?: LocateResponse): Promise<boolean> {\n if (!await super.isElementValidForOperation(hit, out))\n return false;\n\n return this.acceptElementForOperation(hit.sourceId);\n }\n\n protected async postFilterIds(arg: Id64Arg): Promise<Id64Arg> {\n const ids: Id64Array = [];\n\n for (const id of Id64.iterable(arg)) {\n if (await this.acceptElementForOperation(id))\n ids.push(id);\n }\n\n return ids;\n }\n\n protected override async getGroupIds(id: Id64String): Promise<Id64Arg> {\n return this.postFilterIds(await super.getGroupIds(id));\n }\n\n protected override async getSelectionSetCandidates(ss: SelectionSet): Promise<Id64Arg> {\n return this.postFilterIds(await super.getSelectionSetCandidates(ss));\n }\n\n protected override async getDragSelectCandidates(vp: Viewport, origin: Point3d, corner: Point3d, method: SelectionMethod, overlap: boolean): Promise<Id64Arg> {\n return this.postFilterIds(await super.getDragSelectCandidates(vp, origin, corner, method, overlap));\n }\n\n protected setupAccuDraw(): void { }\n\n protected override setupAndPromptForNextAction(): void {\n this.setupAccuDraw();\n super.setupAndPromptForNextAction();\n }\n\n protected abstract getGeometryProps(ev: BeButtonEvent, isAccept: boolean): JsonGeometryStream | FlatBufferGeometryStream | undefined;\n protected abstract getElementProps(ev: BeButtonEvent): GeometricElementProps | undefined;\n\n protected async doUpdateElement(_props: GeometricElementProps): Promise<boolean> { return false; }\n\n protected async applyAgendaOperation(ev: BeButtonEvent): Promise<boolean> {\n const geometry = this.getGeometryProps(ev, true);\n if (undefined === geometry)\n return false;\n\n const elemProps = this.getElementProps(ev);\n if (undefined === elemProps)\n return false;\n\n if (\"flatbuffer\" === geometry.format)\n elemProps.elementGeometryBuilderParams = { entryArray: geometry.data };\n else\n elemProps.geom = geometry.data;\n\n return this.doUpdateElement(elemProps);\n }\n\n public override async processAgenda(ev: BeButtonEvent): Promise<void> {\n if (await this.applyAgendaOperation(ev))\n return this.saveChanges();\n }\n}\n\n/** Edit tool base class for updating existing elements that use dynamics to show intermediate results.\n * @beta\n */\nexport abstract class ModifyElementWithDynamicsTool extends ModifyElementTool implements FeatureOverrideProvider {\n protected _graphicsProvider?: DynamicGraphicsProvider;\n protected _firstResult = true;\n protected _agendaAppearanceDefault?: FeatureAppearance;\n protected _agendaAppearanceDynamic?: FeatureAppearance;\n\n protected override get wantAccuSnap(): boolean { return true; }\n protected override get wantDynamics(): boolean { return true; }\n\n protected agendaAppearance(isDynamics: boolean): FeatureAppearance {\n if (isDynamics) {\n if (undefined === this._agendaAppearanceDynamic)\n this._agendaAppearanceDynamic = FeatureAppearance.fromTransparency(0.0);\n\n return this._agendaAppearanceDynamic;\n }\n\n if (undefined === this._agendaAppearanceDefault)\n this._agendaAppearanceDefault = FeatureAppearance.fromTransparency(0.9);\n\n return this._agendaAppearanceDefault;\n }\n\n protected get wantAgendaAppearanceOverride(): boolean { return false; }\n\n public addFeatureOverrides(overrides: FeatureSymbology.Overrides, _vp: Viewport): void {\n if (this.agenda.isEmpty)\n return;\n\n const appearance = this.agendaAppearance(false);\n this.agenda.elements.forEach((elementId) => overrides.override({ elementId, appearance }));\n }\n\n protected updateAgendaAppearanceProvider(drop?: true): void {\n if (!this.wantAgendaAppearanceOverride)\n return;\n\n for (const vp of IModelApp.viewManager) {\n if (!this.allowView(vp))\n continue;\n\n if (drop || this.agenda.isEmpty)\n vp.dropFeatureOverrideProvider(this);\n else if (!vp.addFeatureOverrideProvider(this))\n vp.setFeatureOverrideProviderChanged();\n }\n }\n\n protected clearGraphics(): void {\n if (undefined === this._graphicsProvider)\n return;\n this._graphicsProvider.cleanupGraphic();\n this._graphicsProvider = undefined;\n }\n\n protected async createGraphics(ev: BeButtonEvent): Promise<void> {\n if (!IModelApp.viewManager.inDynamicsMode)\n return; // Don't need to create graphic if dynamics aren't yet active...\n\n const geometry = this.getGeometryProps(ev, false);\n if (undefined === geometry) {\n this.clearGraphics();\n return;\n }\n\n const elemProps = this.getElementProps(ev);\n if (undefined === elemProps?.placement) {\n this.clearGraphics();\n return;\n }\n\n if (undefined === this._graphicsProvider) {\n if (this._firstResult) {\n this.updateAgendaAppearanceProvider();\n this._firstResult = false;\n }\n this._graphicsProvider = new DynamicGraphicsProvider(this.iModel, this.toolId);\n }\n\n // Set chord tolerance for non-linear/non-planar geometry...\n if (ev.viewport)\n this._graphicsProvider.chordTolerance = computeChordToleranceFromPoint(ev.viewport, ev.point);\n\n this._graphicsProvider.modelId = elemProps.model;\n await this._graphicsProvider.createGraphic(elemProps.category, elemProps.placement, geometry);\n }\n\n protected override async onAgendaModified(): Promise<void> {\n if (!this._firstResult)\n this.updateAgendaAppearanceProvider(); // When Reset cycles between elements, recompute feature overrides...\n return super.onAgendaModified();\n }\n\n public override onDynamicFrame(_ev: BeButtonEvent, context: DynamicsContext): void {\n if (undefined !== this._graphicsProvider)\n this._graphicsProvider.addGraphic(context);\n }\n\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\n return this.createGraphics(ev);\n }\n\n public override async onUnsuspend(): Promise<void> {\n if (!this._firstResult)\n this.updateAgendaAppearanceProvider();\n return super.onUnsuspend();\n }\n\n public override async onSuspend(): Promise<void> {\n if (!this._firstResult)\n this.updateAgendaAppearanceProvider(true);\n return super.onSuspend();\n }\n\n public override async onPostInstall(): Promise<void> {\n await super.onPostInstall();\n if (this.wantAgendaAppearanceOverride)\n this.agenda.manageHiliteState = false;\n }\n\n public override async onCleanup(): Promise<void> {\n this.clearGraphics();\n this.updateAgendaAppearanceProvider(true);\n return super.onCleanup();\n }\n}\n"]}
1
+ {"version":3,"file":"ModifyElementTool.js","sourceRoot":"","sources":["../../src/ModifyElementTool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectExtentsDecoration.js","sourceRoot":"","sources":["../../../src/ProjectLocation/ProjectExtentsDecoration.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 Editing\n */\n\nimport { BeDuration, BeEvent, BentleyError } from \"@itwin/core-bentley\";\nimport { Cartographic, ColorDef, EcefLocation, EcefLocationProps } from \"@itwin/core-common\";\nimport {\n BeButton, BeButtonEvent, BriefcaseConnection, CoreTools, DecorateContext, EditManipulator, EventHandled, GraphicType, HitDetail, IModelApp,\n IModelConnection, MessageBoxIconType, MessageBoxType, MessageBoxValue, NotifyMessageDetails, OutputMessagePriority, QuantityType, ScreenViewport,\n Tool, ViewClipControlArrow, ViewClipDecorationProvider, ViewClipShapeModifyTool, ViewClipTool, Viewport,\n} from \"@itwin/core-frontend\";\nimport {\n Angle, Arc3d, AxisIndex, AxisOrder, ClipShape, ClipVector, Constant, Matrix3d, Point3d, PolygonOps, Range1d, Range3d, Range3dProps, Ray3d,\n Transform, Vector3d,\n} from \"@itwin/core-geometry\";\nimport { editorBuiltInCmdIds } from \"@itwin/editor-common\";\nimport { EditTools } from \"../EditTool\";\nimport { basicManipulationIpc } from \"../EditToolIpc\";\nimport { ProjectGeolocationNorthTool, ProjectGeolocationPointTool } from \"./ProjectGeolocation\";\n\nfunction translateMessage(key: string) {\n return EditTools.translate(`ProjectLocation:Message.${key}`);\n}\nfunction translateMessageBold(key: string) {\n return `<b>${translateMessage(key)}:</b> `;\n}\nfunction translateCoreMeasureBold(key: string) {\n return `<b>${CoreTools.translate(`Measure.Labels.${key}`)}:</b> `;\n}\n\nfunction clearViewClip(vp: ScreenViewport): boolean {\n if (!ViewClipTool.doClipClear(vp))\n return false;\n ViewClipDecorationProvider.create().onClearClip(vp); // Send clear event...\n ViewClipDecorationProvider.clear();\n return true;\n}\n\nfunction clipToProjectExtents(vp: ScreenViewport): boolean {\n clearViewClip(vp); // Clear any existing view clip and send clear event...\n ViewClipTool.enableClipVolume(vp);\n return ViewClipTool.doClipToRange(vp, vp.iModel.projectExtents, Transform.createIdentity());\n}\n\nfunction enableBackgroundMap(viewport: Viewport, onOff: boolean): boolean {\n if (onOff === viewport.viewFlags.backgroundMap)\n return false;\n\n viewport.viewFlags = viewport.viewFlags.with(\"backgroundMap\", onOff);\n return true;\n}\n\nfunction updateMapDisplay(vp: ScreenViewport, turnOnMap: boolean): void {\n if (!turnOnMap || !enableBackgroundMap(vp, true))\n vp.invalidateRenderPlan();\n}\n\nclass ProjectExtentsControlArrow extends ViewClipControlArrow {\n public extentValid = true;\n}\n\n/** Values for [[ProjectExtentsClipDecoration.onChanged] event.\n * @beta\n */\nexport enum ProjectLocationChanged {\n /** Extents has been modified (unsaved changes) */\n Extents,\n /** Geolocation has been modified (unsaved changes) */\n Geolocation,\n /** Abandon unsaved changes to extents */\n ResetExtents,\n /** Abandon unsaved changes to geolocation */\n ResetGeolocation,\n /** Decoration hidden (unsaved changes preserved) */\n Hide,\n /** Decoration shown (unsaved changes restored) */\n Show,\n /** Save changes to extents and geolocation */\n Save,\n}\n\n/** Controls to modify project extents shown using view clip\n * @beta\n */\nexport class ProjectExtentsClipDecoration extends EditManipulator.HandleProvider {\n private static _decorator?: ProjectExtentsClipDecoration;\n protected _clip?: ClipVector;\n protected _clipId?: string;\n protected _clipShape?: ClipShape;\n protected _clipShapeExtents?: Range1d;\n protected _clipRange?: Range3d;\n protected _extentsLengthValid = true;\n protected _extentsWidthValid = true;\n protected _extentsHeightValid = true;\n protected _ecefLocation?: EcefLocation;\n protected _allowEcefLocationChange = false;\n protected _controlIds: string[] = [];\n protected _controls: ProjectExtentsControlArrow[] = [];\n protected _monumentPoint?: Point3d;\n protected _northDirection?: Ray3d;\n protected _monumentId?: string;\n protected _northId?: string;\n protected _suspendDecorator = false;\n protected _removeViewCloseListener?: () => void;\n public suspendGeolocationDecorations = false;\n\n /** Called when project extents or geolocation is modified */\n public readonly onChanged = new BeEvent<(iModel: IModelConnection, ev: ProjectLocationChanged) => void>();\n\n public constructor(public viewport: ScreenViewport) {\n super(viewport.iModel);\n\n if (!this.init())\n return;\n\n this._monumentId = this.iModel.transientIds.getNext();\n this._northId = this.iModel.transientIds.getNext();\n this._clipId = this.iModel.transientIds.getNext();\n\n this.start();\n }\n\n protected start(): void {\n if (!this._clipId) throw new Error(\"Can not start decorator again after it has been stopped\")\n this.updateDecorationListener(true);\n this._removeViewCloseListener = IModelApp.viewManager.onViewClose.addListener((vp) => this.onViewClose(vp));\n this.iModel.selectionSet.replace(this._clipId); // Always select decoration on create...\n }\n\n protected override stop(): void {\n const selectedId = (undefined !== this._clipId && this.iModel.selectionSet.elements.has(this._clipId)) ? this._clipId : undefined;\n this._clipId = undefined; // Invalidate id so that decorator will be dropped...\n super.stop();\n if (undefined !== selectedId)\n this.iModel.selectionSet.remove(selectedId); // Don't leave decorator id in selection set...\n if (undefined !== this._removeViewCloseListener) {\n this._removeViewCloseListener();\n this._removeViewCloseListener = undefined;\n }\n }\n\n protected init(): boolean {\n if (!this.getClipData())\n return false;\n\n this._ecefLocation = this.iModel.ecefLocation;\n this._monumentPoint = this.getMonumentPoint();\n this._northDirection = this.getNorthDirection();\n\n return true;\n }\n\n public onViewClose(vp: ScreenViewport): void {\n if (this.viewport === vp)\n ProjectExtentsClipDecoration.clear();\n }\n\n private getClipData(): boolean {\n this._clip = this._clipShape = this._clipShapeExtents = this._clipRange = undefined;\n const clip = this.viewport.view.getViewClip();\n if (undefined === clip)\n return false;\n\n const clipShape = ViewClipTool.isSingleClipShape(clip);\n if (undefined === clipShape)\n return false;\n\n if (5 !== clipShape.polygon.length || undefined === clipShape.zLow || undefined === clipShape.zHigh)\n return false; // Not a box, can't be project extents clip...\n\n if (undefined !== clipShape.transformFromClip && !clipShape.transformFromClip.isIdentity)\n return false; // Not axis aligned, can't be project extents clip...\n\n this._clipShapeExtents = Range1d.createXX(clipShape.zLow, clipShape.zHigh);\n this._clipShape = clipShape;\n this._clip = clip;\n\n this._clipRange = Range3d.create();\n const shapePtsLo = ViewClipTool.getClipShapePoints(this._clipShape, this._clipShapeExtents.low);\n const shapePtsHi = ViewClipTool.getClipShapePoints(this._clipShape, this._clipShapeExtents.high);\n\n this._clipRange.extendArray(shapePtsLo);\n this._clipRange.extendArray(shapePtsHi);\n\n return true;\n }\n\n private ensureNumControls(numReqControls: number): void {\n const numCurrent = this._controlIds.length;\n if (numCurrent < numReqControls) {\n const transientIds = this.iModel.transientIds;\n for (let i: number = numCurrent; i < numReqControls; i++)\n this._controlIds[i] = transientIds.getNext();\n } else if (numCurrent > numReqControls) {\n this._controlIds.length = numReqControls;\n }\n }\n\n private createClipShapeControls(): boolean {\n if (undefined === this._clipShape || undefined === this._clipShapeExtents)\n return false;\n\n const shapePtsLo = ViewClipTool.getClipShapePoints(this._clipShape, this._clipShapeExtents.low);\n const shapePtsHi = ViewClipTool.getClipShapePoints(this._clipShape, this._clipShapeExtents.high);\n const shapeArea = PolygonOps.centroidAreaNormal(shapePtsLo);\n if (undefined === shapeArea)\n return false;\n\n const numControls = shapePtsLo.length + 1; // Number of edge midpoints plus zLow and zHigh...\n this.ensureNumControls(numControls);\n\n for (let i: number = 0; i < numControls - 2; i++) {\n const midPtLo = shapePtsLo[i].interpolate(0.5, shapePtsLo[i + 1]);\n const midPtHi = shapePtsHi[i].interpolate(0.5, shapePtsHi[i + 1]);\n const faceCenter = midPtLo.interpolate(0.5, midPtHi);\n const edgeTangent = Vector3d.createStartEnd(shapePtsLo[i], shapePtsLo[i + 1]);\n const faceNormal = edgeTangent.crossProduct(shapeArea.direction);\n faceNormal.normalizeInPlace();\n this._controls[i] = new ProjectExtentsControlArrow(faceCenter, faceNormal, 0.75);\n this._controls[i].extentValid = (faceNormal.isParallelTo(Vector3d.unitX(), true) ? this._extentsLengthValid : this._extentsWidthValid);\n }\n\n const zFillColor = ColorDef.from(150, 150, 250);\n this._controls[numControls - 2] = new ProjectExtentsControlArrow(shapeArea.origin, Vector3d.unitZ(-1.0), 0.75, zFillColor, undefined, \"zLow\");\n this._controls[numControls - 1] = new ProjectExtentsControlArrow(shapeArea.origin.plusScaled(Vector3d.unitZ(), shapePtsLo[0].distance(shapePtsHi[0])), Vector3d.unitZ(), 0.75, zFillColor, undefined, \"zHigh\");\n this._controls[numControls - 2].extentValid = this._extentsHeightValid;\n this._controls[numControls - 1].extentValid = this._extentsHeightValid;\n\n return true;\n }\n\n /** Allow project extents for map projections to be larger since curvature of the earth is accounted for. */\n protected get maxExtentLength(): number { return ((this._allowEcefLocationChange ? 20 : 350) * Constant.oneKilometer); }\n\n /** Impose some reasonable height limit for project extents. */\n protected get maxExtentHeight(): number { return (2 * Constant.oneKilometer); }\n\n protected hasValidGCS(): boolean {\n if (!this.iModel.isGeoLocated || this.iModel.noGcsDefined)\n return false;\n\n const gcs = this.iModel.geographicCoordinateSystem;\n if (undefined === gcs || undefined === gcs.horizontalCRS)\n return false; // A valid GCS ought to have horizontalCR defined...\n\n // Check for approximate GCS (such as from MicroStation's \"From Placemark\" tool) and allow it to be replaced...\n const hasValidId = (undefined !== gcs.horizontalCRS.id && 0 !== gcs.horizontalCRS.id.length);\n const hasValidDescr = (undefined !== gcs.horizontalCRS.description && 0 !== gcs.horizontalCRS.description.length);\n const hasValidProjection = (undefined !== gcs.horizontalCRS.projection && \"AzimuthalEqualArea\" !== gcs.horizontalCRS.projection.method);\n\n return hasValidId || hasValidDescr || hasValidProjection;\n }\n\n protected async createControls(): Promise<boolean> {\n // Always update to current view clip to handle post-modify, etc.\n if (undefined === this._clipId || !this.getClipData())\n return false;\n\n this._allowEcefLocationChange = !this.hasValidGCS();\n\n if (undefined !== this._clipRange) {\n this._extentsLengthValid = (this._clipRange.xLength() < this.maxExtentLength);\n this._extentsWidthValid = (this._clipRange.yLength() < this.maxExtentLength);\n this._extentsHeightValid = (this._clipRange.zLength() < this.maxExtentHeight);\n }\n\n // Show controls if only range box and it's controls are selected, selection set doesn't include any other elements...\n let showControls = false;\n if (this.iModel.selectionSet.size <= this._controlIds.length + 1 && this.iModel.selectionSet.elements.has(this._clipId)) {\n showControls = true;\n if (this.iModel.selectionSet.size > 1) {\n this.iModel.selectionSet.elements.forEach((val) => {\n if (this._clipId !== val && !this._controlIds.includes(val))\n showControls = false;\n });\n }\n }\n\n if (!showControls)\n return false; // Don't clear decoration on de-select...\n\n return this.createClipShapeControls();\n }\n\n protected override clearControls(): void {\n this.iModel.selectionSet.remove(this._controlIds); // Remove any selected controls as they won't continue to be displayed...\n super.clearControls();\n }\n\n protected async modifyControls(hit: HitDetail, _ev: BeButtonEvent): Promise<boolean> {\n if (undefined === this._clip || hit.sourceId === this._clipId)\n return false;\n\n const saveQualifiers = IModelApp.toolAdmin.currentInputState.qualifiers;\n if (undefined !== this._clipShape) {\n const clipShapeModifyTool = new ViewClipShapeModifyTool(this, this._clip, this.viewport, hit.sourceId, this._controlIds, this._controls);\n this._suspendDecorator = await clipShapeModifyTool.run();\n }\n\n if (this._suspendDecorator)\n IModelApp.toolAdmin.currentInputState.qualifiers = saveQualifiers; // onInstallTool cleared qualifiers, preserve for \"modify all\" behavior when shift was held and drag started...\n\n return this._suspendDecorator;\n }\n\n protected override async onRightClick(_hit: HitDetail, _ev: BeButtonEvent): Promise<EventHandled> { return EventHandled.No; }\n\n protected override async onTouchTap(hit: HitDetail, ev: BeButtonEvent): Promise<EventHandled> { return (hit.sourceId === this._clipId ? EventHandled.No : super.onTouchTap(hit, ev)); }\n\n public override async onDecorationButtonEvent(hit: HitDetail, ev: BeButtonEvent): Promise<EventHandled> {\n if (hit.sourceId === this._monumentId) {\n if (BeButton.Data === ev.button && !ev.isDown && !ev.isDragging)\n await ProjectGeolocationPointTool.startTool();\n return EventHandled.Yes; // Only pickable for tooltip, don't allow selection...\n }\n\n if (hit.sourceId === this._northId) {\n if (BeButton.Data === ev.button && !ev.isDown && !ev.isDragging)\n await ProjectGeolocationNorthTool.startTool();\n return EventHandled.Yes; // Only pickable for tooltip, don't allow selection...\n }\n\n return super.onDecorationButtonEvent(hit, ev);\n }\n\n public override onManipulatorEvent(eventType: EditManipulator.EventType): void {\n if (EditManipulator.EventType.Accept === eventType)\n this.onChanged.raiseEvent(this.iModel, ProjectLocationChanged.Extents);\n this._suspendDecorator = false;\n super.onManipulatorEvent(eventType);\n }\n\n public async getDecorationToolTip(hit: HitDetail): Promise<HTMLElement | string> {\n const quantityFormatter = IModelApp.quantityFormatter;\n const toolTip = document.createElement(\"div\");\n let toolTipHtml = \"\";\n\n if (hit.sourceId === this._monumentId) {\n toolTipHtml += `${translateMessage(\"ModifyGeolocation\")}<br>`;\n if (!this._monumentPoint)\n this._monumentPoint = this.getMonumentPoint()\n\n const coordFormatterSpec = quantityFormatter.findFormatterSpecByQuantityType(QuantityType.Coordinate);\n if (undefined !== coordFormatterSpec) {\n const pointAdjusted = this._monumentPoint.minus(this.iModel.globalOrigin);\n const formattedPointX = quantityFormatter.formatQuantity(pointAdjusted.x, coordFormatterSpec);\n const formattedPointY = quantityFormatter.formatQuantity(pointAdjusted.y, coordFormatterSpec);\n const formattedPointZ = quantityFormatter.formatQuantity(pointAdjusted.z, coordFormatterSpec);\n toolTipHtml += `${translateCoreMeasureBold(\"Coordinate\") + formattedPointX}, ${formattedPointY}, ${formattedPointZ}<br>`;\n }\n\n const latLongFormatterSpec = quantityFormatter.findFormatterSpecByQuantityType(QuantityType.LatLong);\n if (undefined !== latLongFormatterSpec && undefined !== coordFormatterSpec && this.iModel.isGeoLocated) {\n const cartographic = this.iModel.spatialToCartographicFromEcef(this._monumentPoint);\n const formattedLat = quantityFormatter.formatQuantity(Math.abs(cartographic.latitude), latLongFormatterSpec);\n const formattedLong = quantityFormatter.formatQuantity(Math.abs(cartographic.longitude), latLongFormatterSpec);\n const formattedHeight = quantityFormatter.formatQuantity(cartographic.height, coordFormatterSpec);\n const latDir = CoreTools.translate(cartographic.latitude < 0 ? \"Measure.Labels.S\" : \"Measure.Labels.N\");\n const longDir = CoreTools.translate(cartographic.longitude < 0 ? \"Measure.Labels.W\" : \"Measure.Labels.E\");\n toolTipHtml += `${translateCoreMeasureBold(\"LatLong\") + formattedLat + latDir}, ${formattedLong}${longDir}<br>`;\n toolTipHtml += `${translateCoreMeasureBold(\"Altitude\") + formattedHeight}<br>`;\n }\n\n } else if (hit.sourceId === this._northId) {\n toolTipHtml += `${translateMessage(\"ModifyNorthDirection\")}<br>`;\n\n const angleFormatterSpec = quantityFormatter.findFormatterSpecByQuantityType(QuantityType.Angle);\n if (undefined !== angleFormatterSpec) {\n const formattedAngle = quantityFormatter.formatQuantity(this.getClockwiseAngleToNorth().radians, angleFormatterSpec);\n toolTipHtml += `${translateMessageBold(\"Angle\") + formattedAngle}<br>`;\n }\n\n } else if (hit.sourceId === this._clipId) {\n const extentsValid = (this._extentsLengthValid && this._extentsWidthValid && this._extentsHeightValid);\n toolTipHtml += `${translateMessage(extentsValid ? \"ProjectExtents\" : \"LargeProjectExtents\")}<br>`;\n\n const distanceFormatterSpec = quantityFormatter.findFormatterSpecByQuantityType(QuantityType.Length);\n if (undefined !== distanceFormatterSpec && undefined !== this._clipRange) {\n const formattedLength = quantityFormatter.formatQuantity(this._clipRange.xLength(), distanceFormatterSpec);\n const formattedWidth = quantityFormatter.formatQuantity(this._clipRange.yLength(), distanceFormatterSpec);\n const formattedHeight = quantityFormatter.formatQuantity(this._clipRange.zLength(), distanceFormatterSpec);\n toolTipHtml += `${translateMessageBold(\"Length\") + formattedLength}<br>`;\n toolTipHtml += `${translateMessageBold(\"Width\") + formattedWidth}<br>`;\n toolTipHtml += `${translateMessageBold(\"Height\") + formattedHeight}<br>`;\n }\n\n } else {\n const arrowIndex = this._controlIds.indexOf(hit.sourceId);\n if (-1 !== arrowIndex) {\n toolTipHtml += `${translateMessage(\"ModifyProjectExtents\")}<br>`;\n\n const distanceFormatterSpec = quantityFormatter.findFormatterSpecByQuantityType(QuantityType.Length);\n if (undefined !== distanceFormatterSpec && undefined !== this._clipRange) {\n const arrowControl = this._controls[arrowIndex];\n\n let arrowLabel = \"\";\n let arrowLength = 0.0;\n let arrowLengthMax = 0.0;\n\n if (arrowControl.direction.isParallelTo(Vector3d.unitX(), true)) {\n arrowLabel = \"Length\";\n arrowLength = this._clipRange.xLength();\n if (!this._extentsLengthValid)\n arrowLengthMax = this.maxExtentLength;\n } else if (arrowControl.direction.isParallelTo(Vector3d.unitY(), true)) {\n arrowLabel = \"Width\";\n arrowLength = this._clipRange.yLength();\n if (!this._extentsWidthValid)\n arrowLengthMax = this.maxExtentLength;\n } else {\n arrowLabel = \"Height\";\n arrowLength = this._clipRange.zLength();\n if (!this._extentsHeightValid)\n arrowLengthMax = this.maxExtentHeight;\n\n const coordFormatterSpec = (this.iModel.isGeoLocated ? quantityFormatter.findFormatterSpecByQuantityType(QuantityType.Coordinate) : undefined);\n if (undefined !== coordFormatterSpec) {\n const heightPt = (\"zLow\" === arrowControl.name ? this._clipRange.low : this._clipRange.high);\n const cartographic = this.iModel.spatialToCartographicFromEcef(heightPt);\n const formattedAltitude = quantityFormatter.formatQuantity(cartographic.height, coordFormatterSpec);\n toolTipHtml += `${translateCoreMeasureBold(\"Altitude\") + formattedAltitude}<br>`;\n }\n }\n\n const formattedLength = quantityFormatter.formatQuantity(arrowLength, distanceFormatterSpec);\n toolTipHtml += `${translateMessageBold(arrowLabel) + formattedLength}<br>`;\n\n if (0.0 !== arrowLengthMax) {\n const formattedMaxLength = quantityFormatter.formatQuantity(arrowLengthMax, distanceFormatterSpec);\n toolTipHtml += `${translateMessageBold(\"MaxExtent\") + formattedMaxLength}<br>`;\n }\n }\n }\n }\n\n toolTip.innerHTML = toolTipHtml;\n return toolTip;\n }\n\n public testDecorationHit(id: string): boolean { return (id === this._monumentId || id === this._northId || id === this._clipId || this._controlIds.includes(id)); }\n protected override updateDecorationListener(_add: boolean): void { super.updateDecorationListener(undefined !== this._clipId); } // Decorator isn't just for resize controls...\n\n public getMonumentPoint(): Point3d {\n const origin = Point3d.createZero();\n if (this.iModel.ecefLocation && this.iModel.ecefLocation.cartographicOrigin)\n return this.iModel.cartographicToSpatialFromEcef(this.iModel.ecefLocation.cartographicOrigin, origin);\n origin.setFrom(this.iModel.projectExtents.low);\n if (0.0 > this.iModel.projectExtents.low.z && 0.0 < this.iModel.projectExtents.high.z)\n origin.z = 0.0;\n return origin;\n }\n\n public getClockwiseAngleToNorth(): Angle {\n const angle = this.getNorthAngle();\n angle.setRadians(Angle.adjustRadians0To2Pi(angle.radians));\n return angle;\n }\n\n public getNorthAngle(): Angle {\n const northDirection = (undefined !== this._northDirection ? this._northDirection : this.getNorthDirection());\n return northDirection.direction.angleToXY(Vector3d.unitY());\n }\n\n public getNorthDirection(refOrigin?: Point3d): Ray3d {\n const origin = (undefined !== refOrigin ? refOrigin : this.iModel.projectExtents.center);\n\n if (!this.iModel.isGeoLocated)\n return Ray3d.create(origin, Vector3d.unitY());\n\n const cartographic = this.iModel.spatialToCartographicFromEcef(origin);\n cartographic.latitude += Angle.createDegrees(0.01).radians;\n const pt2 = this.iModel.cartographicToSpatialFromEcef(cartographic);\n const northVec = Vector3d.createStartEnd(origin, pt2);\n northVec.z = 0.0;\n northVec.normalizeInPlace();\n\n return Ray3d.create(origin, northVec);\n }\n\n public drawNorthArrow(context: DecorateContext, northDir: Ray3d, id?: string): void {\n const vp = context.viewport;\n const pixelSize = vp.pixelsFromInches(0.55);\n const scale = vp.viewingSpace.getPixelSizeAtPoint(northDir.origin) * pixelSize;\n const matrix = Matrix3d.createRigidFromColumns(northDir.direction, Vector3d.unitZ(), AxisOrder.YZX);\n\n if (undefined === matrix)\n return;\n\n matrix.scaleColumnsInPlace(scale, scale, scale);\n const arrowTrans = Transform.createRefs(northDir.origin, matrix);\n\n const northArrowBuilder = context.createGraphicBuilder(GraphicType.WorldOverlay, arrowTrans, id);\n const color = ColorDef.white;\n\n const arrowOutline: Point3d[] = [];\n arrowOutline[0] = Point3d.create(0.0, 0.65);\n arrowOutline[1] = Point3d.create(-0.45, -0.5);\n arrowOutline[2] = Point3d.create(0.0, -0.2);\n arrowOutline[3] = Point3d.create(0.45, -0.5);\n arrowOutline[4] = arrowOutline[0].clone();\n\n const arrowLeftFill: Point3d[] = [];\n arrowLeftFill[0] = arrowOutline[0].clone();\n arrowLeftFill[1] = arrowOutline[1].clone();\n arrowLeftFill[2] = arrowOutline[2].clone();\n arrowLeftFill[3] = arrowLeftFill[0].clone();\n\n const arrowRightFill: Point3d[] = [];\n arrowRightFill[0] = arrowOutline[0].clone();\n arrowRightFill[1] = arrowOutline[3].clone();\n arrowRightFill[2] = arrowOutline[2].clone();\n arrowRightFill[3] = arrowRightFill[0].clone();\n\n northArrowBuilder.setSymbology(color, ColorDef.from(0, 0, 0, 200), 1);\n northArrowBuilder.addArc(Arc3d.createXY(Point3d.createZero(), 0.6), true, true);\n northArrowBuilder.addArc(Arc3d.createXY(Point3d.create(0.0, 0.85), 0.2), true, true);\n\n northArrowBuilder.setSymbology(color, color, 2);\n northArrowBuilder.addArc(Arc3d.createXY(Point3d.createZero(), 0.5), false, false);\n northArrowBuilder.addLineString([Point3d.create(0.6, 0.0), Point3d.create(-0.6, 0.0)]);\n northArrowBuilder.addLineString([Point3d.create(0.0, 0.6), Point3d.create(0.0, -0.6)]);\n\n northArrowBuilder.setSymbology(color, ColorDef.from(150, 150, 150), 1);\n northArrowBuilder.addShape(arrowLeftFill);\n\n northArrowBuilder.setSymbology(color, ColorDef.black, 1);\n northArrowBuilder.addShape(arrowRightFill);\n\n northArrowBuilder.setSymbology(color, color, 1);\n northArrowBuilder.addLineString(arrowOutline);\n northArrowBuilder.setSymbology(color, color, 3);\n northArrowBuilder.addLineString([Point3d.create(-0.1, 0.75), Point3d.create(-0.1, 0.95), Point3d.create(0.1, 0.75), Point3d.create(0.1, 0.95)]);\n\n context.addDecorationFromBuilder(northArrowBuilder);\n }\n\n public drawMonumentPoint(context: DecorateContext, point: Point3d, scaleFactor: number, id?: string): void {\n const vp = context.viewport;\n const pixelSize = vp.pixelsFromInches(0.25) * scaleFactor;\n const scale = vp.viewingSpace.getPixelSizeAtPoint(point) * pixelSize;\n const matrix = Matrix3d.createRotationAroundAxisIndex(AxisIndex.Z, Angle.createDegrees(45.0));\n\n matrix.scaleColumnsInPlace(scale, scale, scale);\n const monumentTrans = Transform.createRefs(point, matrix);\n\n const monumentPointBuilder = context.createGraphicBuilder(GraphicType.WorldOverlay, monumentTrans, id);\n const color = ColorDef.white;\n\n monumentPointBuilder.setSymbology(color, ColorDef.from(0, 0, 0, 150), 1);\n monumentPointBuilder.addArc(Arc3d.createXY(Point3d.createZero(), 0.7), true, true);\n\n monumentPointBuilder.setSymbology(color, color, 2);\n monumentPointBuilder.addArc(Arc3d.createXY(Point3d.createZero(), 0.5), false, false);\n monumentPointBuilder.addLineString([Point3d.create(0.5, 0.0), Point3d.create(-0.5, 0.0)]);\n monumentPointBuilder.addLineString([Point3d.create(0.0, 0.5), Point3d.create(0.0, -0.5)]);\n\n context.addDecorationFromBuilder(monumentPointBuilder);\n }\n\n protected drawAreaTooLargeIndicator(context: DecorateContext): void {\n if ((this._extentsLengthValid && this._extentsWidthValid) || undefined === this._clipRange)\n return;\n\n const corners = this._clipRange.corners();\n const indices = Range3d.faceCornerIndices(5);\n const points: Point3d[] = [];\n\n for (const index of indices)\n points.push(corners[index]);\n\n const areaWarnColor = ColorDef.red.withAlpha(50);\n const areaWarnBuilder = context.createGraphicBuilder(GraphicType.WorldDecoration);\n\n areaWarnBuilder.setSymbology(areaWarnColor, areaWarnColor, 1);\n areaWarnBuilder.addShape(points);\n context.addDecorationFromBuilder(areaWarnBuilder);\n }\n\n protected drawExtentTooLargeIndicator(context: DecorateContext, worldPoint: Point3d, sizePixels: number): void {\n const position = context.viewport.worldToView(worldPoint);\n position.x = Math.floor(position.x) + 0.5;\n position.y = Math.floor(position.y) + 0.5;\n const drawDecoration = (ctx: CanvasRenderingContext2D) => {\n ctx.lineWidth = 4;\n ctx.lineCap = \"round\";\n ctx.strokeStyle = \"rgba(255,0,0,.75)\";\n ctx.fillStyle = \"rgba(255,255,255,.75)\";\n ctx.shadowColor = \"black\";\n ctx.shadowBlur = 5;\n\n ctx.beginPath();\n ctx.moveTo(0, -sizePixels);\n ctx.lineTo(-sizePixels, sizePixels);\n ctx.lineTo(sizePixels, sizePixels);\n ctx.lineTo(0, -sizePixels);\n ctx.fill();\n\n ctx.shadowBlur = 0;\n\n ctx.beginPath();\n ctx.moveTo(0, -sizePixels);\n ctx.lineTo(-sizePixels, sizePixels);\n ctx.lineTo(sizePixels, sizePixels);\n ctx.lineTo(0, -sizePixels);\n ctx.stroke();\n\n ctx.strokeStyle = \"black\";\n ctx.lineWidth = 3;\n\n ctx.beginPath();\n ctx.moveTo(0, -sizePixels * 0.2);\n ctx.lineTo(0, sizePixels * 0.3);\n ctx.moveTo(0, (sizePixels * 0.3) + 4);\n ctx.lineTo(0, (sizePixels * 0.3) + 4.5);\n ctx.stroke();\n\n };\n context.addCanvasDecoration({ position, drawDecoration });\n }\n\n public override decorate(context: DecorateContext): void {\n if (this._suspendDecorator)\n return;\n\n if (undefined === this._clipId || undefined === this._clipShape || undefined === this._clipRange || undefined === this._clipShapeExtents)\n return;\n\n const vp = context.viewport;\n if (this.viewport !== vp)\n return;\n\n if (!this.suspendGeolocationDecorations && undefined !== this._northDirection && this.iModel.isGeoLocated)\n this.drawNorthArrow(context, this._northDirection, this._allowEcefLocationChange ? this._northId : undefined); // Show north, but don't make pickable if it shouldn't be modified...\n\n const maxSizeInches = ((this._clipRange.maxLength() / vp.viewingSpace.getPixelSizeAtPoint(this._clipRange.center)) / vp.pixelsPerInch) * 0.5; // Display size limit when zooming out...\n if (maxSizeInches < 0.5)\n return;\n\n if (!this.suspendGeolocationDecorations && undefined !== this._monumentPoint && this._allowEcefLocationChange)\n this.drawMonumentPoint(context, this._monumentPoint, 1.0, this._monumentId);\n\n ViewClipTool.drawClipShape(context, this._clipShape, this._clipShapeExtents, ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor), 3, this._clipId);\n this.drawAreaTooLargeIndicator(context);\n\n if (!this._isActive)\n return;\n\n const outlineColor = ColorDef.from(0, 0, 0, 50).adjustedForContrast(vp.view.backgroundColor);\n const fillVisColor = ColorDef.from(150, 250, 200, 225).adjustedForContrast(vp.view.backgroundColor);\n const fillHidColor = fillVisColor.withAlpha(200);\n const fillSelColor = fillVisColor.inverse().withAlpha(75);\n const shapePts = EditManipulator.HandleUtils.getArrowShape(0.0, 0.15, 0.55, 1.0, 0.3, 0.5, 0.1);\n\n for (let iFace = 0; iFace < this._controlIds.length; iFace++) {\n const sizeInches = Math.min(this._controls[iFace].sizeInches, maxSizeInches);\n if (0.0 === sizeInches)\n continue;\n\n const anchorRay = ViewClipTool.getClipRayTransformed(this._controls[iFace].origin, this._controls[iFace].direction, undefined !== this._clipShape ? this._clipShape.transformFromClip : undefined);\n const transform = EditManipulator.HandleUtils.getArrowTransform(vp, anchorRay.origin, anchorRay.direction, sizeInches);\n if (undefined === transform)\n continue;\n\n // deep copies because we're using a builder transform w/addLineString...\n const visPts = shapePts.map((pt) => pt.clone());\n const hidPts = shapePts.map((pt) => pt.clone());\n\n const arrowVisBuilder = context.createGraphicBuilder(GraphicType.WorldOverlay, transform, this._controlIds[iFace]);\n const arrowHidBuilder = context.createGraphicBuilder(GraphicType.WorldDecoration, transform);\n const isSelected = this.iModel.selectionSet.elements.has(this._controlIds[iFace]);\n\n let outlineColorOvr = this._controls[iFace].outline;\n if (undefined !== outlineColorOvr) {\n outlineColorOvr = outlineColorOvr.adjustedForContrast(vp.view.backgroundColor);\n outlineColorOvr = outlineColorOvr.withAlpha(outlineColor.getAlpha());\n } else {\n outlineColorOvr = outlineColor;\n }\n\n let fillVisColorOvr = this._controls[iFace].fill;\n let fillHidColorOvr = fillHidColor;\n let fillSelColorOvr = fillSelColor;\n if (undefined !== fillVisColorOvr) {\n fillVisColorOvr = fillVisColorOvr.adjustedForContrast(vp.view.backgroundColor);\n fillVisColorOvr = fillVisColorOvr.withAlpha(fillVisColor.getAlpha());\n fillHidColorOvr = fillVisColorOvr.withAlpha(fillHidColor.getAlpha());\n fillSelColorOvr = fillVisColorOvr.inverse().withAlpha(fillSelColor.getAlpha());\n } else {\n fillVisColorOvr = fillVisColor;\n }\n\n arrowVisBuilder.setSymbology(outlineColorOvr, outlineColorOvr, isSelected ? 4 : 2);\n arrowVisBuilder.addLineString(visPts);\n arrowVisBuilder.setBlankingFill(isSelected ? fillSelColorOvr : fillVisColorOvr);\n arrowVisBuilder.addShape(visPts);\n context.addDecorationFromBuilder(arrowVisBuilder);\n\n arrowHidBuilder.setSymbology(fillHidColorOvr, fillHidColorOvr, 1);\n arrowHidBuilder.addShape(hidPts);\n context.addDecorationFromBuilder(arrowHidBuilder);\n\n if (this._controls[iFace].extentValid)\n continue;\n\n const warnPixels = 15.0;\n const warnOffset = vp.viewingSpace.getPixelSizeAtPoint(anchorRay.origin) * warnPixels * 1.5;\n const warnOrigin = anchorRay.origin.plusScaled(anchorRay.direction, -warnOffset);\n this.drawExtentTooLargeIndicator(context, warnOrigin, warnPixels);\n }\n }\n\n public resetViewClip(): boolean {\n if (!clearViewClip(this.viewport))\n return false;\n\n if (undefined !== this.getModifiedExtents())\n this.onChanged.raiseEvent(this.iModel, ProjectLocationChanged.ResetExtents);\n\n return true;\n }\n\n public resetGeolocation(): boolean {\n if (!this._allowEcefLocationChange)\n return false;\n\n if (undefined === this.getModifiedEcefLocation())\n return false; // Wasn't changed...\n\n this.iModel.disableGCS(false);\n this.iModel.ecefLocation = this._ecefLocation;\n\n this._monumentPoint = this.getMonumentPoint();\n this._northDirection = this.getNorthDirection();\n\n updateMapDisplay(this.viewport, false);\n this.onChanged.raiseEvent(this.iModel, ProjectLocationChanged.ResetGeolocation);\n return true;\n }\n\n public updateEcefLocation(origin: Cartographic, point?: Point3d, angle?: Angle): boolean {\n if (!this._allowEcefLocationChange)\n return false;\n\n const newEcefLocation = EcefLocation.createFromCartographicOrigin(origin, point, (undefined !== angle ? angle : this.getNorthAngle())); // Preserve modified north direction...\n const ecefLocation = this.iModel.ecefLocation;\n if (undefined !== ecefLocation && ecefLocation.isAlmostEqual(newEcefLocation))\n return false;\n\n this.iModel.disableGCS(true); // Map display will ignore change to ecef location when GCS is present...\n this.iModel.setEcefLocation(newEcefLocation);\n\n this._monumentPoint = this.getMonumentPoint();\n this._northDirection = this.getNorthDirection(undefined !== this._northDirection ? this._northDirection.origin : undefined); // Preserve modified north reference point...\n\n updateMapDisplay(this.viewport, true);\n this.onChanged.raiseEvent(this.iModel, ProjectLocationChanged.Geolocation);\n return true;\n }\n\n public updateNorthDirection(northDir: Ray3d): boolean {\n if (!this._allowEcefLocationChange || !this.iModel.isGeoLocated)\n return false;\n\n const point = (undefined !== this._monumentPoint ? this._monumentPoint : this.getMonumentPoint()); // Preserve modified monument point...\n const origin = this.iModel.spatialToCartographicFromEcef(point);\n\n const saveDirection = this._northDirection;\n this._northDirection = northDir; // Change reference point to input location...\n const angle = this.getNorthAngle();\n\n if (!this.updateEcefLocation(origin, point, angle)) {\n this._northDirection = saveDirection;\n return false;\n }\n\n return true;\n }\n\n public getModifiedEcefLocation(): EcefLocation | undefined {\n const ecefLocation = this.iModel.ecefLocation;\n if (undefined === ecefLocation)\n return undefined; // geolocation wasn't added...\n\n if (undefined === this._ecefLocation)\n return ecefLocation; // geolocation didn't exist previously...\n\n if (this._ecefLocation.isAlmostEqual(ecefLocation))\n return undefined;\n\n return ecefLocation;\n }\n\n public getModifiedExtents(): Range3d | undefined {\n if (undefined === this._clipRange)\n return undefined;\n\n return this._clipRange.isAlmostEqual(this.iModel.projectExtents) ? undefined : this._clipRange;\n }\n\n public static allowEcefLocationChange(requireExisting: boolean, outputError: boolean = true): boolean {\n if (undefined === ProjectExtentsClipDecoration._decorator) {\n if (outputError)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, translateMessage(\"NotActive\")));\n return false;\n } else if (!ProjectExtentsClipDecoration._decorator._allowEcefLocationChange) {\n if (outputError)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, translateMessage(\"NotAllowed\")));\n return false;\n } else if (requireExisting && !ProjectExtentsClipDecoration._decorator.iModel.isGeoLocated) {\n if (outputError)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, translateMessage(\"NotGeolocated\")));\n return false;\n }\n return true;\n }\n\n public fitExtents(): void {\n if (undefined === this._clipRange)\n return undefined;\n\n const options = { animateFrustumChange: true, animationTime: BeDuration.fromSeconds(2).milliseconds };\n const aspect = this.viewport.viewRect.aspect;\n this.viewport.view.lookAtVolume(this._clipRange, aspect);\n this.viewport.synchWithView(options);\n this.viewport.viewCmdTargetCenter = undefined;\n }\n\n public static get(): ProjectExtentsClipDecoration | undefined {\n if (undefined === ProjectExtentsClipDecoration._decorator)\n return undefined;\n return ProjectExtentsClipDecoration._decorator;\n }\n\n public static show(vp: ScreenViewport, fitExtents: boolean = true): boolean {\n if (!vp.view.isSpatialView())\n return false;\n\n if (undefined !== ProjectExtentsClipDecoration._decorator) {\n const deco = ProjectExtentsClipDecoration._decorator;\n if (vp === deco.viewport && undefined !== deco._clipId && undefined !== deco._clip) {\n if (deco._clip !== vp.view.getViewClip()) {\n clearViewClip(vp);\n ViewClipTool.enableClipVolume(vp);\n ViewClipTool.setViewClip(vp, deco._clip);\n }\n if (undefined === deco._removeManipulatorToolListener) {\n deco._removeManipulatorToolListener = IModelApp.toolAdmin.manipulatorToolEvent.addListener((tool, event) => deco.onManipulatorToolEvent(tool, event));\n deco.start();\n deco.onChanged.raiseEvent(deco.iModel, ProjectLocationChanged.Show);\n }\n return true;\n }\n ProjectExtentsClipDecoration.clear();\n }\n\n if (!clipToProjectExtents(vp))\n return false;\n\n ProjectExtentsClipDecoration._decorator = new ProjectExtentsClipDecoration(vp);\n if (fitExtents)\n ProjectExtentsClipDecoration._decorator.fitExtents();\n vp.onChangeView.addOnce(() => this.clear(false, true));\n return (undefined !== ProjectExtentsClipDecoration._decorator._clipId);\n }\n\n public static hide(): void {\n if (undefined === ProjectExtentsClipDecoration._decorator)\n return;\n const saveClipId = ProjectExtentsClipDecoration._decorator._clipId; // cleared by stop to trigger decorator removal...\n ProjectExtentsClipDecoration._decorator.stop();\n ProjectExtentsClipDecoration._decorator._clipId = saveClipId;\n ProjectExtentsClipDecoration._decorator.onChanged.raiseEvent(ProjectExtentsClipDecoration._decorator.iModel, ProjectLocationChanged.Hide);\n }\n\n public static clear(clearClip: boolean = true, resetGeolocation: boolean = true): void {\n if (undefined === ProjectExtentsClipDecoration._decorator)\n return;\n if (clearClip)\n ProjectExtentsClipDecoration._decorator.resetViewClip(); // Clear project extents view clip...\n if (resetGeolocation)\n ProjectExtentsClipDecoration._decorator.resetGeolocation(); // Restore modified geolocation back to create state...\n ProjectExtentsClipDecoration._decorator.stop();\n ProjectExtentsClipDecoration._decorator = undefined;\n }\n\n public static async update(): Promise<void> {\n const deco = ProjectExtentsClipDecoration._decorator;\n if (undefined === deco)\n return;\n\n clipToProjectExtents(deco.viewport);\n deco.init();\n\n return deco.updateControls();\n }\n}\n\n/** Show project location decoration. Project extents represented by view clip.\n * @beta\n */\nexport class ProjectLocationShowTool extends Tool {\n public static override toolId = \"ProjectLocation.Show\";\n\n public override async run(): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp || !ProjectExtentsClipDecoration.show(vp))\n return false;\n await IModelApp.toolAdmin.startDefaultTool();\n return true;\n }\n}\n\n/** Hide project location decoration. Preserves changes to project extents view clip and geolocation.\n * @beta\n */\nexport class ProjectLocationHideTool extends Tool {\n public static override toolId = \"ProjectLocation.Hide\";\n\n public override async run(): Promise<boolean> {\n ProjectExtentsClipDecoration.hide();\n await IModelApp.toolAdmin.startDefaultTool();\n return true;\n }\n}\n\n/** Clear project location decoration. Restore modified geolocation and remove view clip.\n * @beta\n */\nexport class ProjectLocationCancelTool extends Tool {\n public static override toolId = \"ProjectLocation.Cancel\";\n\n public override async run(): Promise<boolean> {\n ProjectExtentsClipDecoration.clear();\n await IModelApp.toolAdmin.startDefaultTool();\n return true;\n }\n}\n\n/** Save modified project extents and geolocation. Updates decoration to reflect saved state.\n * @note Allowing this change to be undone is both problematic and undesirable.\n * Warns the user if called with previous changes to cancel restarting the TxnManager session.\n * @beta\n */\nexport class ProjectLocationSaveTool extends Tool {\n public static override toolId = \"ProjectLocation.Save\";\n\n protected async allowRestartTxnSession(iModel: BriefcaseConnection): Promise<boolean> {\n if (!await iModel.txns.isUndoPossible())\n return true;\n\n // NOTE: Default if openMessageBox isn't implemented is MessageBoxValue.Ok, so we'll check No instead of Yes...\n if (MessageBoxValue.No === await IModelApp.notifications.openMessageBox(MessageBoxType.YesNo, translateMessage(\"RestartTxn\"), MessageBoxIconType.Question))\n return false;\n\n return true;\n }\n\n protected async saveChanges(deco: ProjectExtentsClipDecoration, extents?: Range3dProps, ecefLocation?: EcefLocationProps): Promise<void> {\n if (!deco.iModel.isBriefcaseConnection())\n return;\n\n if (!await this.allowRestartTxnSession(deco.iModel))\n return;\n\n try {\n await EditTools.startCommand<string>({ commandId: editorBuiltInCmdIds.cmdBasicManipulation, iModelKey: deco.iModel.key });\n\n if (undefined !== extents)\n await basicManipulationIpc.updateProjectExtents(extents);\n\n if (undefined !== ecefLocation)\n await basicManipulationIpc.updateEcefLocation(ecefLocation);\n\n await deco.iModel.saveChanges(this.toolId);\n await deco.iModel.txns.restartTxnSession();\n } catch (err) {\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, BentleyError.getErrorMessage(err) || \"An unknown error occurred.\"));\n }\n\n deco.onChanged.raiseEvent(deco.iModel, ProjectLocationChanged.Save);\n await ProjectExtentsClipDecoration.update();\n return IModelApp.toolAdmin.startDefaultTool();\n }\n\n public override async run(): Promise<boolean> {\n const deco = ProjectExtentsClipDecoration.get();\n if (undefined === deco) {\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, translateMessage(\"NotActive\")));\n return false;\n }\n\n if (deco.iModel.isReadonly) {\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, translateMessage(\"Readonly\")));\n return true;\n }\n\n const extents = deco.getModifiedExtents();\n const ecefLocation = deco.getModifiedEcefLocation();\n\n if (undefined === extents && undefined === ecefLocation) {\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, translateMessage(\"NoChanges\")));\n return true;\n }\n\n await this.saveChanges(deco, extents, ecefLocation);\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"ProjectExtentsDecoration.js","sourceRoot":"","sources":["../../../src/ProjectLocation/ProjectExtentsDecoration.ts"],"names":[],"mappings":"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"}