@itwin/measure-tools-react
Version:
Frontend framework and tools for measurements
198 lines • 7.91 kB
TypeScript
import type { DecorateContext, GraphicBuilder, HitDetail, ScreenViewport } from "@itwin/core-frontend";
import { type IModelConnection } from "@itwin/core-frontend";
import type { XYProps, XYZProps } from "@itwin/core-geometry";
import { Point3d } from "@itwin/core-geometry";
import { Transform } from "@itwin/core-geometry";
import { Point2d } from "@itwin/core-geometry";
import type { DrawingMetadata } from "./Measurement.js";
export declare namespace SheetMeasurementHelper {
enum DrawingTypeEnum {
ProfileOrElevation = 5,
Section = 3,
Detail = 4,
Plan = 6
}
type DrawingType = DrawingTypeEnum | SheetMeasurementsHelper.DrawingType;
interface SheetToWorldTransformProps {
SVDOrigin?: XYZProps;
SVDExtents?: XYZProps;
SVDYaw?: number;
SVDPitch?: number;
SVDRoll?: number;
sheetScale?: number;
DVDOrigin?: XYProps;
transformParams?: CivilSheetTransformParams;
}
interface DrawingTypeData {
id: string;
type?: number;
origin: {
x: number;
y: number;
};
bBoxLow: {
x: number;
y: number;
};
bBoxHigh: {
x: number;
y: number;
};
}
/** Information needed to use the old Civil transform but will eventually be removed @deprecated */
interface CivilSheetTransformParams {
masterOrigin: Point3d;
sheetTov8Drawing: Transform;
v8DrawingToDesign: Transform;
}
/**
* Maps out the drawing types of every drawing in the imodel
* @param imodel
* @returns
*/
function getDrawingsTypes(imodel: IModelConnection): Promise<Map<string, number>>;
/**
* Position and general information for every drawing in the given sheet
* @param imodel
* @param sheetId
* @returns
*/
function getDrawingInfo(imodel: IModelConnection, sheetId: string): Promise<DrawingTypeData[]>;
function checkIfInDrawing(point: Point3d, drawingOrigin: Point2d, drawingExtents: Point2d): boolean;
/**
* Uses drawing metaData to transform a point from sheet coordinates to 3d world coordinates
* @param point In sheet coordinates
* @param transform
* @returns Point in world coordinates
*/
function getCivilTransform(sheetToWorldTransform?: SheetToWorldTransformProps): Transform;
/**
* Main transform for drawings, takes a sheet point and transforms it to world coordinates
* @param viewAttachmentOrigin
* @param sheetToWorldTransform
* @returns
*/
function getTransform(viewAttachmentOrigin?: XYProps, sheetToWorldTransformProps?: SheetToWorldTransformProps): Transform;
/**
* Gets the spatial info needed to create the transform, it will first check if it can do the generic transform but if not
* every relation needed is present in the model, it'll try to fall back to the old civil method
* @param imodel
* @param drawing
* @returns
*/
function getSpatialInfo(imodel: IModelConnection, drawing: DrawingTypeData): Promise<SheetToWorldTransformProps | undefined>;
/**
* Gives all the data needed for transforming points from 2d to 3d and what's needed to draw drawing contour
* @param imodel
* @param id
* @param mousePos
*/
function getDrawingData(imodel: IModelConnection, id: string, mousePos: Point3d): Promise<{
sheetToWorldTransform: Transform;
viewAttachmentOrigin: {
x: number;
y: number;
};
viewAttachmentExtent: {
x: number;
y: number;
};
transformProps: SheetToWorldTransformProps;
drawingId: string;
} | undefined>;
function getSheetToolTipText(hit: HitDetail, allowedDrawingTypesList: SheetMeasurementHelper.DrawingType[], defaultToolTip: (hit: HitDetail) => Promise<HTMLElement | string>): Promise<string | HTMLElement>;
function getDrawingContourGraphic(context: DecorateContext, origin: Point2d, extents: Point2d): GraphicBuilder;
/**
* Checks if the drawing pointed by the event is allowed according to the provided drawing types
* Will return true if no drawing detected
* @param ev
* @param allowedDrawingTypes
* @returns
*/
function checkIfAllowedDrawingType(viewport: ScreenViewport | undefined, point: Point3d, allowedDrawingTypes: DrawingType[]): boolean;
function getDrawingMetadata(imodel: IModelConnection, id: string, mousePos: Point3d): Promise<DrawingMetadata | undefined>;
}
/**
* @deprecated Use SheetMeasurementHelper instead
*/
export declare namespace SheetMeasurementsHelper {
/** This maps directly to the viewType field found in the schema on BisCore.viewAttachment
* @deprecated Use SheetMeasurementHelper.DrawingType instead
*/
enum DrawingType {
CrossSection = 3,
Profile = 5,
Plan = 6
}
/**
* Used as parameter for measurement transform operation which is a 3 step process
* @deprecated use SheetMeasurementHelper.SheetTransformParams instead
*/
interface SheetTransformParams {
masterOrigin: Point3d;
sheetTov8Drawing: Transform;
v8DrawingToDesign: Transform;
}
/**
* @deprecated use SheetMeasurementHelper.DrawingTypeData instead
*/
interface DrawingTypeData {
origin: Point2d;
extents: Point2d;
type: DrawingType;
}
/**
* @deprecated Use SheetMeasurementHelper's functions instead
* @param imodel
* @param id SheetViewDefinition ID
* @param mousePos position of the mouse click
* @returns Drawing metadata
*/
function getDrawingId(imodel: IModelConnection, id: string, mousePos: Point3d): Promise<DrawingMetadata | undefined>;
/**
* @deprecated use SheetMeasurementHelper.checkIfInDrawing instead
* @param point
* @param drawingOrigin
* @param drawingExtents
* @returns
*/
function checkIfInDrawing(point: Point3d, drawingOrigin: Point2d, drawingExtents: Point2d): boolean;
/**
* @deprecated use SheetMeasurementHelper.getDrawingContourGraphic instead
* @param context
* @param origin
* @param extents
* @returns
*/
function getDrawingContourGraphic(context: DecorateContext, origin: Point2d, extents: Point2d): GraphicBuilder;
/**
* Uses drawing metaData to transform a point from sheet coordinates to 3d world coordinates
* @deprecated use SheetMeasurementHelper's functions instead
* @param point In sheet coordinates
* @param transform
* @returns Point in world coordinates
*/
function measurementTransform(point: Point3d, transform: SheetTransformParams): Point3d;
/**
* @deprecated use SheetMeasurementHelper's functions instead
*/
function getSheetTypes(imodel: IModelConnection, id: string): Promise<DrawingTypeData[]>;
/**
* @deprecated use SheetMeasurementHelper.checkIfAllowedDrawingType instead
* Checks if the drawing pointed by the event is allowed according to the provided drawing types
* Will return true if no drawing detected
* @param ev
* @param allowedDrawingTypes
* @returns
*/
function checkIfAllowedDrawingType(viewport: ScreenViewport | undefined, point: Point3d, allowedDrawingTypes: DrawingType[]): boolean;
/**
* @deprecated use SheetMeasurementHelper.getSheetToolTipText instead
* @param hit
* @param allowedDrawingTypesList
* @param defaultToolTip
* @returns
*/
function getSheetToolTipText(hit: HitDetail, allowedDrawingTypesList: SheetMeasurementsHelper.DrawingType[], defaultToolTip: (hit: HitDetail) => Promise<HTMLElement | string>): Promise<string | HTMLElement>;
}
//# sourceMappingURL=SheetMeasurementHelper.d.ts.map