@itwin/core-backend
Version:
iTwin.js backend components
51 lines • 2.49 kB
TypeScript
/** @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