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