UNPKG

@itwin/core-markup

Version:
146 lines • 5.67 kB
/** @packageDocumentation * @module MarkupTools */ import { Point3d } from "@itwin/core-geometry"; import { BeButtonEvent, EventHandled } from "@itwin/core-frontend"; import { G, Marker, Element as MarkupElement } from "@svgdotjs/svg.js"; import { MarkupTool } from "./MarkupTool"; /** Base class for tools that place new Markup elements * @public */ export declare abstract class RedlineTool extends MarkupTool { protected _minPoints: number; protected _nRequiredPoints: number; protected readonly _points: Point3d[]; protected onAdded(el: MarkupElement): void; protected isComplete(_ev: BeButtonEvent): boolean; protected setupAndPromptForNextAction(): void; protected createMarkup(_svgMarkup: G, _ev: BeButtonEvent, _isDynamics: boolean): void; protected clearDynamicsMarkup(_isDynamics: boolean): void; onRestartTool(): Promise<void>; onCleanup(): Promise<void>; onReinitialize(): Promise<void>; onUndoPreviousStep(): Promise<boolean>; onMouseMotion(ev: BeButtonEvent): Promise<void>; onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled>; onResetButtonUp(_ev: BeButtonEvent): Promise<EventHandled>; protected provideToolAssistance(mainInstrKey: string, singlePoint?: boolean): void; } /** Tool for placing Markup Lines * @public */ export declare class LineTool extends RedlineTool { static toolId: string; static iconSpec: string; protected showPrompt(): void; protected createMarkup(svgMarkup: G, ev: BeButtonEvent, isDynamics: boolean): void; } /** Tool for placing Markup Rectangles * @public */ export declare class RectangleTool extends RedlineTool { protected _cornerRadius?: number | undefined; static toolId: string; static iconSpec: string; constructor(_cornerRadius?: number | undefined); protected showPrompt(): void; protected createMarkup(svgMarkup: G, ev: BeButtonEvent, isDynamics: boolean): void; } /** Tool for placing Markup Polygons * @public */ export declare class PolygonTool extends RedlineTool { protected _numSides?: number | undefined; static toolId: string; static iconSpec: string; constructor(_numSides?: number | undefined); protected showPrompt(): void; protected getPoints(points: number[], center: Point3d, edge: Point3d, numSides: number, inscribe: boolean): boolean; protected createMarkup(svgMarkup: G, ev: BeButtonEvent, isDynamics: boolean): void; } /** Tool for placing Markup Clouds * @public */ export declare class CloudTool extends RedlineTool { static toolId: string; static iconSpec: string; protected _cloud?: MarkupElement; protected showPrompt(): void; protected createMarkup(svgMarkup: G, ev: BeButtonEvent, isDynamics: boolean): void; protected clearDynamicsMarkup(isDynamics: boolean): void; } /** Tool for placing Markup Circles * @public */ export declare class CircleTool extends RedlineTool { static toolId: string; static iconSpec: string; protected showPrompt(): void; protected createMarkup(svgMarkup: G, ev: BeButtonEvent, isDynamics: boolean): void; } /** Tool for placing Markup Ellipses * @public */ export declare class EllipseTool extends RedlineTool { static toolId: string; static iconSpec: string; protected showPrompt(): void; protected createMarkup(svgMarkup: G, ev: BeButtonEvent, isDynamics: boolean): void; } /** Tool for placing Markup Arrows * @public */ export declare class ArrowTool extends RedlineTool { protected _arrowPos?: string | undefined; static toolId: string; static iconSpec: string; /** ctor for ArrowTool * @param _arrowPos "start", "end", or "both". If undefined = "end". */ constructor(_arrowPos?: string | undefined); protected showPrompt(): void; protected getOrCreateArrowMarker(color: string): Marker; protected createMarkup(svgMarkup: G, ev: BeButtonEvent, isDynamics: boolean): void; } /** Tool for measuring distances and placing Markups of them * @public */ export declare class DistanceTool extends ArrowTool { static toolId: string; static iconSpec: string; protected readonly _startPointWorld: Point3d; protected showPrompt(): void; protected setupAndPromptForNextAction(): void; protected getFormattedDistance(distance: number): string | undefined; protected createMarkup(svgMarkup: G, ev: BeButtonEvent, isDynamics: boolean): void; onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled>; } /** Tool for placing Markup freehand sketches * @public */ export declare class SketchTool extends RedlineTool { static toolId: string; static iconSpec: string; protected _minDistSquared: number; protected showPrompt(): void; protected createMarkup(svgMarkup: G, ev: BeButtonEvent, isDynamics: boolean): void; onMouseMotion(ev: BeButtonEvent): Promise<void>; } /** Tool for placing SVG symbols on a Markup * @public */ export declare class SymbolTool extends RedlineTool { protected _symbolData?: string | undefined; protected _applyCurrentStyle?: boolean | undefined; static toolId: string; static iconSpec: string; protected _symbol?: MarkupElement; constructor(_symbolData?: string | undefined, _applyCurrentStyle?: boolean | undefined); onInstall(): Promise<boolean>; protected showPrompt(): void; protected createMarkup(svgMarkup: G, ev: BeButtonEvent, isDynamics: boolean): void; onDataButtonUp(ev: BeButtonEvent): Promise<EventHandled>; onResetButtonUp(_ev: BeButtonEvent): Promise<EventHandled>; protected clearDynamicsMarkup(isDynamics: boolean): void; } //# sourceMappingURL=RedlineTool.d.ts.map