UNPKG

@itwin/core-common

Version:

iTwin.js components common to frontend and backend

99 lines 4.36 kB
/** @packageDocumentation * @module Geometry */ import { Angle, Matrix3d, Point2d, Point3d, Range2d, Range3d, Range3dProps, Transform, YawPitchRollAngles } from "@itwin/core-geometry"; import { Placement2dProps, Placement3dProps } from "../ElementProps"; import { Frustum } from "../Frustum"; /** A Range3d that is aligned with the axes of spatial coordinates. * @public * @extensions */ export type AxisAlignedBox3d = Range3d; /** The properties of a Range3d. * @public * @extensions */ export type AxisAlignedBox3dProps = Range3dProps; /** A bounding box aligned to the orientation of a 3d Element * @public * @extensions */ export type ElementAlignedBox3d = Range3d; /** A bounding box aligned to the orientation of a 2d Element * @public * @extensions */ export type ElementAlignedBox2d = Range2d; /** A bounding box aligned to a local coordinate system * @public * @extensions */ export type LocalAlignedBox3d = Range3d; /** Either a Placement2d or Placement3d * @public * @extensions */ export type Placement = Placement2d | Placement3d; /** The placement of a GeometricElement3d. This includes the origin, orientation, and size (bounding box) of the element. * All geometry of a GeometricElement are relative to its placement. * @public */ export declare class Placement3d implements Placement3dProps { origin: Point3d; angles: YawPitchRollAngles; bbox: ElementAlignedBox3d; constructor(origin: Point3d, angles: YawPitchRollAngles, bbox: ElementAlignedBox3d); /** Get the rotation from local coordinates of this placement to world coordinates. */ get rotation(): Matrix3d; /** Get the transform from local coordinates of this placement to world coordinates. */ get transform(): Transform; /** determine if this is 3d placement */ get is3d(): boolean; /** Create a new Placement3d from a Placement3dProps. */ static fromJSON(json?: Placement3dProps): Placement3d; /** Get the 8 corners, in world coordinates, of this placement. */ getWorldCorners(out?: Frustum): Frustum; /** Set the contents of this Placement3d from another Placement3d */ setFrom(other: Placement3d): void; /** Determine whether this Placement3d is valid. */ get isValid(): boolean; /** Calculate the axis-aligned bounding box for this placement. */ calculateRange(): AxisAlignedBox3d; /** Multiply the Transform of this Placement3d by the specified *other* Transform. * * Specifically `this.angles` is set to the rotation specified by `other.matrix * this.transform.matrix` * and `this.origin` is set to the origin of `other * this.transform`. * * Since the placement transform is local-to-world, this means `other` is a world-to-world transform. * @throws [[IModelError]] if the Transform is invalid for a GeometricElement3d. */ multiplyTransform(other: Transform): void; } /** The placement of a GeometricElement2d. This includes the origin, rotation, and size (bounding box) of the element. * @public */ export declare class Placement2d implements Placement2dProps { origin: Point2d; angle: Angle; bbox: ElementAlignedBox2d; constructor(origin: Point2d, angle: Angle, bbox: ElementAlignedBox2d); /** Get the rotation from local coordinates of this placement to world coordinates. */ get rotation(): Matrix3d; /** Get the transform from local coordinates of this placement to world coordinates. */ get transform(): Transform; /** Create a new Placement2d from a Placement2dProps. */ static fromJSON(json?: Placement2dProps): Placement2d; /** determine if this is 3d placement */ get is3d(): boolean; /** Get the 8 corners, in world coordinates, of this placement. */ getWorldCorners(out?: Frustum): Frustum; /** Determine whether this Placement2d is valid. */ get isValid(): boolean; /** Set the contents of this Placement2d from another Placement2d */ setFrom(other: Placement2d): void; /** Calculate the axis-aligned bounding box for this placement. */ calculateRange(): AxisAlignedBox3d; /** Multiply the Transform of this Placement2d by the specified *other* Transform. * @throws [[IModelError]] if the Transform is invalid for a GeometricElement2d. */ multiplyTransform(other: Transform): void; } //# sourceMappingURL=Placement.d.ts.map