UNPKG

@itwin/core-frontend

Version:
118 lines 5.38 kB
/** @packageDocumentation * @module SelectionSet */ import { Id64Arg } from "@itwin/core-bentley"; import { Point3d } from "@itwin/core-geometry"; import { DialogItem, DialogPropertySyncItem } from "@itwin/appui-abstract"; import { LocateFilterStatus, LocateResponse } from "../ElementLocateManager"; import { HitDetail } from "../HitDetail"; import { DecorateContext } from "../ViewContext"; import { PrimitiveTool } from "./PrimitiveTool"; import { BeButtonEvent, BeModifierKeys, BeTouchEvent, EventHandled } from "./Tool"; /** The method for choosing elements with the [[SelectionTool]] * @public * @extensions */ export declare enum SelectionMethod { /** Identify element(s) by picking for drag selection (inside/overlap for drag box selection determined by point direction and shift key) */ Pick = 0, /** Identify elements by overlap with crossing line */ Line = 1, /** Identify elements by box selection (inside/overlap for box selection determined by point direction and shift key) */ Box = 2 } /** The mode for choosing elements with the [[SelectionTool]] * @public * @extensions */ export declare enum SelectionMode { /** Identified elements replace the current selection set (use control key to add or remove) */ Replace = 0, /** Identified elements are added to the current selection set */ Add = 1, /** Identified elements are removed from the current selection set */ Remove = 2 } /** The processing method to use to update the current selection. * @public * @extensions */ export declare enum SelectionProcessing { /** Add element to selection. */ AddElementToSelection = 0, /** Remove element from selection. */ RemoveElementFromSelection = 1, /** If element is in selection remove it, else add it. */ InvertElementInSelection = 2, /** Replace current selection with element. */ ReplaceSelectionWithElement = 3 } /** Tool for picking a set of elements of interest, selected by the user. * @public */ export declare class SelectionTool extends PrimitiveTool { static hidden: boolean; static toolId: string; static iconSpec: string; protected _isSelectByPoints: boolean; protected _isSuspended: boolean; protected readonly _points: Point3d[]; private _selectionMethodValue; private _selectionModeValue; requireWriteableTarget(): boolean; autoLockTarget(): void; protected wantSelectionClearOnMiss(_ev: BeButtonEvent): boolean; protected wantEditManipulators(): boolean; protected wantPickableDecorations(): boolean; protected wantToolSettings(): boolean; get selectionMethod(): SelectionMethod; set selectionMethod(method: SelectionMethod); get selectionMode(): SelectionMode; set selectionMode(mode: SelectionMode); private static methodsMessage; private static _methodsName; private static _getMethodsDescription; private static modesMessage; private static _modesName; private static _getModesDescription; protected showPrompt(mode: SelectionMode, method: SelectionMethod): void; protected initSelectTool(): void; protected processMiss(_ev: BeButtonEvent): boolean; updateSelection(elementId: Id64Arg, process: SelectionProcessing): boolean; processSelection(elementId: Id64Arg, process: SelectionProcessing): Promise<boolean>; protected useOverlapSelection(ev: BeButtonEvent): boolean; private selectByPointsDecorate; protected selectByPointsProcess(origin: Point3d, corner: Point3d, ev: BeButtonEvent, method: SelectionMethod, overlap: boolean): Promise<boolean>; protected selectByPointsStart(ev: BeButtonEvent): boolean; protected selectByPointsEnd(ev: BeButtonEvent): Promise<boolean>; onMouseMotion(ev: BeButtonEvent): Promise<void>; selectDecoration(ev: BeButtonEvent, currHit?: HitDetail): Promise<EventHandled>; processHit(ev: BeButtonEvent, hit: HitDetail): Promise<EventHandled>; onMouseStartDrag(ev: BeButtonEvent): Promise<EventHandled>; onMouseEndDrag(ev: BeButtonEvent): Promise<EventHandled>; onDataButtonUp(ev: BeButtonEvent): Promise<EventHandled>; onResetButtonUp(ev: BeButtonEvent): Promise<EventHandled>; onSuspend(): Promise<void>; onUnsuspend(): Promise<void>; onTouchMoveStart(ev: BeTouchEvent, startEv: BeTouchEvent): Promise<EventHandled>; onTouchMove(ev: BeTouchEvent): Promise<void>; onTouchComplete(ev: BeTouchEvent): Promise<void>; onTouchCancel(ev: BeTouchEvent): Promise<void>; decorate(context: DecorateContext): void; onModifierKeyTransition(_wentDown: boolean, modifier: BeModifierKeys, _event: KeyboardEvent): Promise<EventHandled>; filterHit(hit: HitDetail, out?: LocateResponse): Promise<LocateFilterStatus>; onRestartTool(): Promise<void>; onCleanup(): Promise<void>; onPostInstall(): Promise<void>; static startTool(): Promise<boolean>; private syncSelectionMode; /** Used to supply DefaultToolSettingProvider with a list of properties to use to generate ToolSettings. If undefined then no ToolSettings will be displayed * @beta */ supplyToolSettingsProperties(): DialogItem[] | undefined; /** Used to send changes from UI back to Tool * @beta */ applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean>; } //# sourceMappingURL=SelectTool.d.ts.map