@itwin/core-frontend
Version:
iTwin.js frontend components
118 lines • 5.38 kB
TypeScript
/** @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