@itwin/core-markup
Version:
iTwin.js markup package
146 lines • 5.67 kB
TypeScript
/** @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