UNPKG

@itwin/core-backend

Version:
51 lines 2.49 kB
/** @packageDocumentation * @module ElementGeometry */ import { ElementGeometry, GeometryParams, TextAnnotationFrameShape, TextFrameStyleProps } from "@itwin/core-common"; import { Loop, Path, Point3d, Range2d, Transform } from "@itwin/core-geometry"; /** * Based on the frame style, this method will construct and append [[GeometryParams]] (for line style) and a [[Loop]] (for the frame shape) to the builder. * @param builder that will be appended to in place * @param frame * @param range to enclose with the frame * @param transform that transforms the range to world coordinates * @returns `true` if any geometry was appended to the builder * @beta */ export declare function appendFrameToBuilder(builder: ElementGeometry.Builder, frame: TextFrameStyleProps, range: Range2d, transform: Transform, geomParams: GeometryParams): boolean; /** * Arguments for the [[computeFrame]] method. * @beta */ export interface ComputeFrameArgs { /** Frame shape to be calculated */ frame: Exclude<TextAnnotationFrameShape, "none">; /** Range to be enclosed */ range: Range2d; /** Transform that translates and rotates the range to world coordinates */ transform: Transform; } /** * Computes the frame geometry based on the provided frame shape and range. * @returns a [Loop]($geometry) or [Path]($geometry) (if it's just a line) that represents the frame geometry * @beta */ export declare function computeFrame(args: ComputeFrameArgs): Loop | Path; /** * Arguments for the [[computeIntervalPoints]] method. * @beta */ export interface ComputeIntervalPointsArgs extends ComputeFrameArgs { /** A factor applied to divide each straight edge. A value of 1 will place a single point on each vertex. */ lineIntervalFactor?: number; /** A factor applied to divide each straight edge. A value of 1 will place a single point on each vertex. */ arcIntervalFactor?: number; } /** * Computes points along the edges of the frame geometry based on the provided frame shape, range, and interval factors. * These can be used for snapping or attaching leaders. * @returns an array of [[Point3d]] that represent the points along the edges of the frame geometry. Returns `undefined` if the loop created by `computeFrame` is empty. * @beta */ export declare function computeIntervalPoints({ frame, range, transform, lineIntervalFactor, arcIntervalFactor }: ComputeIntervalPointsArgs): Point3d[] | undefined; //# sourceMappingURL=FrameGeometry.d.ts.map