UNPKG

@itwin/core-frontend

Version:
236 lines • 8.54 kB
/** @packageDocumentation * @module Tools */ import { BentleyStatus } from "@itwin/core-bentley"; import { Point3d } from "@itwin/core-geometry"; import { AccuDrawFlags, ItemField, RotationMode } from "../AccuDraw"; import { AuxCoordSystemState } from "../AuxCoordSys"; import { SnapDetail } from "../HitDetail"; import { DecorateContext } from "../ViewContext"; import { ScreenViewport, Viewport } from "../Viewport"; import { BeButtonEvent, EventHandled, InputCollector, Tool } from "./Tool"; /** * A shortcut may require no user input (immediate) or it may install a tool to collect the needed input. AccuDrawShortcuts are how users control AccuDraw. * A tool implementor should not use this class to setup AccuDraw, instead use AccuDrawHintBuilder to provide hints. * @beta */ export declare class AccuDrawShortcuts { /** Disable/Enable AccuDraw for the session */ static sessionToggle(): void; /** Suspend/Unsuspend AccuDraw for the active tool */ static suspendToggle(): void; static rotateAxesByPoint(isSnapped: boolean, aboutCurrentZ: boolean): boolean; static updateACSByPoints(acs: AuxCoordSystemState, vp: Viewport, points: Point3d[], isDynamics: boolean): boolean; static processPendingHints(): void; static requestInputFocus(): void; static itemFieldNavigate(index: ItemField, str: string, forward: boolean): Promise<void>; static itemFieldNewInput(index: ItemField): void; static itemFieldCompletedInput(index: ItemField): void; static itemFieldAcceptInput(index: ItemField, str: string): Promise<void>; static itemFieldLockToggle(index: ItemField): void; static choosePreviousValue(index: ItemField): void; static chooseNextValue(index: ItemField): void; static clearSavedValues(): void; static itemRotationModeChange(rotation: RotationMode): void; static setOrigin(explicitOrigin?: Point3d): void; static changeCompassMode(): void; static lockSmart(): void; /** Disable indexing when not currently indexed; if indexed, enable respective lock. */ static lockIndex(): void; static lockX(): void; static lockY(): void; static lockZ(): void; static lockDistance(): void; static lockAngle(): void; static setStandardRotation(rotation: RotationMode): void; static alignView(): void; static rotateToBase(): void; static rotateToACS(): void; static rotateCycle(): void; static rotate90(axis: number): void; static rotateAxes(aboutCurrentZ: boolean): Promise<boolean>; static rotateToElement(): Promise<boolean>; static defineACSByElement(): Promise<boolean>; static defineACSByPoints(): Promise<boolean>; static getACS(acsName: string | undefined, useOrigin: boolean, useRotation: boolean): BentleyStatus; static writeACS(_acsName: string): BentleyStatus; static itemFieldUnlockAll(): void; } /** @beta */ export declare class AccuDrawSessionToggleTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawSuspendToggleTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawSetOriginTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawSetLockSmartTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawSetLockIndexTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawSetLockXTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawSetLockYTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawSetLockZTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawSetLockDistanceTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawSetLockAngleTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawChangeModeTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawRotateCycleTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawRotateTopTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawRotateFrontTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawRotateSideTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawRotateViewTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawRotate90AboutXTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawRotate90AboutYTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @beta */ export declare class AccuDrawRotate90AboutZTool extends Tool { static toolId: string; run(): Promise<boolean>; } /** @internal */ declare abstract class AccuDrawShortcutsTool extends InputCollector { private _complete; protected get allowShortcut(): boolean; protected get wantActivateOnStart(): boolean; protected get wantClearSnapOnStart(): boolean; protected get wantManipulationImmediate(): boolean; protected get wantExitOnDataButtonUp(): boolean; onInstall(): Promise<boolean>; onPostInstall(): Promise<void>; onCleanup(): Promise<void>; exitTool(): Promise<void>; onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled>; onDataButtonUp(_ev: BeButtonEvent): Promise<EventHandled>; onMouseMotion(ev: BeButtonEvent): Promise<void>; protected onManipulationStart(): void; protected onManipulationComplete(): AccuDrawFlags; protected abstract doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean; } /** @beta */ export declare class AccuDrawRotateAxesTool extends AccuDrawShortcutsTool { aboutCurrentZ: boolean; static toolId: string; static get maxArgs(): number; constructor(aboutCurrentZ?: boolean); /** @internal */ protected get allowShortcut(): boolean; /** @internal */ protected get wantActivateOnStart(): boolean; /** @internal */ protected get wantManipulationImmediate(): boolean; /** @internal */ protected onManipulationStart(): void; /** @internal */ protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean; parseAndRun(...args: any[]): Promise<boolean>; } /** @beta */ export declare class AccuDrawRotateElementTool extends AccuDrawShortcutsTool { static toolId: string; private _moveOrigin; /** @internal */ protected get wantActivateOnStart(): boolean; /** @internal */ protected get wantManipulationImmediate(): boolean; /** @internal */ protected onManipulationStart(): void; /** @internal */ protected onManipulationComplete(): AccuDrawFlags; /** @internal */ protected updateOrientation(snap: SnapDetail, viewport: ScreenViewport, _isMotion: boolean): boolean; /** @internal */ protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean; } /** @beta */ export declare class DefineACSByElementTool extends AccuDrawShortcutsTool { static toolId: string; private _origin; private _rMatrix; private _acs?; /** @internal */ protected onManipulationStart(): void; /** @internal */ protected updateOrientation(snap: SnapDetail, vp: Viewport): boolean; /** @internal */ protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean; /** @internal */ decorate(context: DecorateContext): void; } /** @beta */ export declare class DefineACSByPointsTool extends AccuDrawShortcutsTool { static toolId: string; private readonly _points; private _acs?; /** @internal */ protected onManipulationStart(): void; /** @internal */ protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean; /** @internal */ decorate(context: DecorateContext): void; } export {}; //# sourceMappingURL=AccuDrawTool.d.ts.map