UNPKG

@itwin/core-frontend

Version:
102 lines 3.85 kB
/** @packageDocumentation * @module Views */ import { BeTimePoint } from "@itwin/core-bentley"; import { Angle, Matrix3d, Point2d, Point3d, Vector3d } from "@itwin/core-geometry"; import { Camera } from "@itwin/core-common"; import { ViewState, ViewState2d, ViewState3d } from "./ViewState"; /** The "pose" for a [View]($docs/learning/frontend/views#viewstate-parameters) describing the viewed area or volume, depending upon whether * the view is 2d or 3d. * @see [[ViewState.savePose]] to extract a pose from a view and [[ViewState.applyPose]] to apply a pose to a view. * @note a ViewPose is immutable. * @public * @extensions */ export declare abstract class ViewPose { /** The time at which this pose was created, if it was saved into a [[Viewport]]'s undo stack. */ undoTime?: BeTimePoint; /** Returns true if this pose is equivalent to the pose represented by the specified [[ViewState]]. * This implies that `this.equal(view.savePose())`. */ abstract equalState(view: ViewState): boolean; /** Returns true if this pose is equivalent to the specified other pose. */ abstract equal(other: ViewPose): boolean; /** The origin of the view in [[CoordSystem.World]] coordinates. * @see [[ViewState.getOrigin]]. */ abstract origin: Point3d; /** The extents of the view in [[CoordSystem.World]] coordinates. * @see [[ViewState.getExtents]]. */ abstract extents: Vector3d; /** The 3x3 ortho-normal rotation matrix of the view. * @see [[ViewState.getRotation]]. */ abstract rotation: Matrix3d; /** True if the camera is enabled. * @see [[ViewPose3d.camera]] to access the camera. */ cameraOn: boolean; /** Computes the center of the viewed volume. */ get center(): Point3d; /** Returns the target point of the view. This is the same as [[center]] unless [[cameraOn]] is `true`. */ get target(): Point3d; /** Computes the Z vector of the [[rotation]] matrix. */ get zVec(): Vector3d; constructor(cameraOn: boolean); } /** The "pose" for a [[ViewState3d]], including information about the view's [Camera]($common) if it is enabled. * @public * @extensions */ export declare class ViewPose3d extends ViewPose { /** See [[ViewPose.origin]]. */ readonly origin: Point3d; /** See [[ViewPose.extents]]. */ readonly extents: Vector3d; /** See [[ViewPose.rotation]]. */ readonly rotation: Matrix3d; /** The camera parameters of the view. * @note This object is meaningful only if [[ViewPose.cameraOn]] is `true`. */ readonly camera: Camera; /** Construct a pose from the specified 3d view. */ constructor(view: ViewState3d); /** See [[ViewPose.target]]. */ get target(): Point3d; /** See [[ViewPose.equal]]. */ equal(other: ViewPose): boolean; /** See [[ViewPose.equalState]]. */ equalState(view: ViewState): boolean; } /** The "pose" for a [[ViewState2d]]. * @public * @extensions */ export declare class ViewPose2d extends ViewPose { /** The 2d origin of the view. * @see [[ViewState2d.origin]]. */ readonly origin2d: Point2d; /** The 2d extents of the view. * @see [[ViewState2d.delta]]. */ readonly delta: Point2d; /** The rotation of the view. * @see [[ViewState2d.angle]]. */ readonly angle: Angle; /** Construct a pose from the specified 2d view. */ constructor(view: ViewState2d); /** See [[ViewPose.equal]]. */ equal(other: ViewPose): boolean; /** See [[ViewPose.equalState]]. */ equalState(view: ViewState): boolean; /** See [[ViewPose.origin]]. */ get origin(): Point3d; /** See [[ViewPose.extents]]. */ get extents(): Vector3d; /** See [[ViewPose.rotation]]. */ get rotation(): Matrix3d; } //# sourceMappingURL=ViewPose.d.ts.map