@itwin/core-frontend
Version:
iTwin.js frontend components
102 lines • 3.85 kB
TypeScript
/** @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