@itwin/core-frontend
Version:
iTwin.js frontend components
56 lines • 3.09 kB
TypeScript
/** @packageDocumentation
* @module Views
*/
import { Ellipsoid, Matrix3d, Plane3dByOriginAndUnitNormal, Point3d, Range1d, Range3d, Ray3d, Transform, XYAndZ } from "@itwin/core-geometry";
import { Cartographic, Frustum, GlobeMode } from "@itwin/core-common";
import { IModelConnection } from "./IModelConnection";
import { GraphicBuilder } from "./render/GraphicBuilder";
/** @internal */
export declare function getFrustumPlaneIntersectionDepthRange(frustum: Frustum, plane: Plane3dByOriginAndUnitNormal): Range1d;
/** Geometry of background map - either an ellipsoid or a plane as defined by GlobeMode.
* @internal
*/
export declare class BackgroundMapGeometry {
private _bimElevationBias;
private _iModel;
readonly globeMode: GlobeMode;
readonly geometry: Plane3dByOriginAndUnitNormal | Ellipsoid;
readonly globeOrigin: Point3d;
readonly globeMatrix: Matrix3d;
readonly cartesianRange: Range3d;
readonly cartesianTransitionRange: Range3d;
readonly cartesianPlane: Plane3dByOriginAndUnitNormal;
readonly cartesianDiagonal: number;
readonly cartesianChordHeight: number;
readonly maxGeometryChordHeight: number;
private _mercatorFractionToDb;
private _mercatorTilingScheme;
private _ecefToDb;
static maxCartesianDistance: number;
private static _transitionDistanceMultiplier;
private static _scratchRayFractions;
private static _scratchRayAngles;
private static _scratchPoint;
constructor(_bimElevationBias: number, globeMode: GlobeMode, _iModel: IModelConnection);
static getCartesianRange(iModel: IModelConnection, result?: Range3d): Range3d;
static getCartesianTransitionDistance(iModel: IModelConnection): number;
dbToCartographicFromGcs(db: XYAndZ[]): Promise<Cartographic[]>;
dbToWGS84CartographicFromGcs(db: XYAndZ[]): Promise<Cartographic[]>;
dbToCartographic(db: XYAndZ, result?: Cartographic): Cartographic;
cartographicToDbFromGcs(cartographic: Cartographic[]): Promise<Point3d[]>;
cartographicToDbFromWgs84Gcs(cartographic: Cartographic[]): Promise<Point3d[]>;
cartographicToDb(cartographic: Cartographic, result?: Point3d): Point3d;
getEarthEllipsoid(radiusOffset?: number): Ellipsoid;
getPlane(offset?: number): Plane3dByOriginAndUnitNormal;
getRayIntersection(ray: Ray3d, positiveOnly: boolean): Ray3d | undefined;
getPointHeight(point: Point3d): number | undefined;
/** @internal */
getFrustumIntersectionDepthRange(frustum: Frustum, bimRange: Range3d, heightRange?: Range1d, gridPlane?: Plane3dByOriginAndUnitNormal, doGlobalScope?: boolean): Range1d;
addFrustumDecorations(builder: GraphicBuilder, frustum: Frustum): void;
}
/** Calculate the ECEF to database (IModel) coordinate transform at a provided location, using the GCS of the iModel.
* The transform will exactly represent the GCS at the provided location.
* @public
*/
export declare function calculateEcefToDbTransformAtLocation(originIn: Point3d, iModel: IModelConnection): Promise<Transform | undefined>;
//# sourceMappingURL=BackgroundMapGeometry.d.ts.map