@itwin/core-frontend
Version:
iTwin.js frontend components
130 lines • 7 kB
TypeScript
/** @packageDocumentation
* @module Tiles
*/
import { Cartographic, MapLayerSettings, RenderTexture, ViewFlagOverrides } from "@itwin/core-common";
import { IModelConnection } from "../../IModelConnection";
import { RenderMemory } from "../../render/RenderMemory";
import { RenderSystem } from "../../render/RenderSystem";
import { ScreenViewport } from "../../Viewport";
import { MapCartoRectangle, MapFeatureInfoOptions, MapLayerFeatureInfo, MapLayerImageryProvider, MapLayerTileTreeReference, MapTile, MapTileTreeScaleRangeVisibility, MapTilingScheme, QuadId, RealityTile, RealityTileLoader, RealityTileTree, RealityTileTreeParams, Tile, TileContent, TileDrawArgs, TileLoadPriority, TileParams, TileRequest, TileTreeLoadStatus, TileTreeOwner } from "../internal";
import { HitDetail } from "../../HitDetail";
/** @internal */
export interface ImageryTileContent extends TileContent {
imageryTexture?: RenderTexture;
}
/** @internal */
export declare class ImageryMapTile extends RealityTile {
imageryTree: ImageryMapTileTree;
quadId: QuadId;
rectangle: MapCartoRectangle;
private _texture?;
private _mapTileUsageCount;
private readonly _outOfLodRange;
constructor(params: TileParams, imageryTree: ImageryMapTileTree, quadId: QuadId, rectangle: MapCartoRectangle);
get texture(): RenderTexture | undefined;
get tilingScheme(): MapTilingScheme;
get isDisplayable(): boolean;
get isOutOfLodRange(): boolean;
setContent(content: ImageryTileContent): void;
selectCartoDrapeTiles(drapeTiles: ImageryMapTile[], highResolutionReplacementTiles: ImageryMapTile[], rectangleToDrape: MapCartoRectangle, drapePixelSize: number, args: TileDrawArgs): TileTreeLoadStatus;
markMapTileUsage(): void;
releaseMapTileUsage(): void;
/** @internal */
setLeaf(): void;
protected _loadChildren(resolve: (children: Tile[] | undefined) => void, _reject: (error: Error) => void): void;
protected _collectStatistics(stats: RenderMemory.Statistics): void;
freeMemory(): void;
disposeContents(): void;
private disposeTexture;
[Symbol.dispose](): void;
}
/** Object that holds various state values for an ImageryTileTree
* @internal */
export declare class ImageryTileTreeState {
private _scaleRangeVis;
constructor();
/** Get the scale range visibility of the imagery tile tree.
* @returns the scale range visibility of the imagery tile tree.
*/
getScaleRangeVisibility(): MapTileTreeScaleRangeVisibility;
/** Makes a deep copy of the current object.
*/
clone(): ImageryTileTreeState;
/** Reset the scale range visibility of imagery tile tree (i.e. unknown)
*/
reset(): void;
/** Sets the scale range visibility of the current imagery tile tree.
* The state will be derived based on the previous visibility values:
* Initial state: 'Unknown'
* The first call will set the state to either: 'Visible' or 'Hidden'.
* If subsequent visibility values are not consistent with the first visibility state, the state become 'Partial',
* meaning the imagery tree currently contains a mixed of tiles being in range and out of range.
*/
setScaleRangeVisibility(visible: boolean): void;
}
/** @internal */
export declare class ImageryMapTileTree extends RealityTileTree {
private _imageryLoader;
constructor(params: RealityTileTreeParams, _imageryLoader: ImageryTileLoader);
get tilingScheme(): MapTilingScheme;
/** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
addLogoCards(cards: HTMLTableElement, vp: ScreenViewport): void;
addAttributions(cards: HTMLTableElement, vp: ScreenViewport): Promise<void>;
getTileRectangle(quadId: QuadId): MapCartoRectangle;
get imageryLoader(): ImageryTileLoader;
get is3d(): boolean;
get viewFlagOverrides(): ViewFlagOverrides;
get isContentUnbounded(): boolean;
protected _selectTiles(_args: TileDrawArgs): Tile[];
draw(_args: TileDrawArgs): void;
private static _scratchDrapeRectangle;
private static _drapeIntersectionScale;
selectCartoDrapeTiles(drapeTiles: ImageryMapTile[], highResolutionReplacementTiles: ImageryMapTile[], tileToDrape: MapTile, args: TileDrawArgs): TileTreeLoadStatus;
cartoRectangleFromQuadId(quadId: QuadId): MapCartoRectangle;
}
declare class ImageryTileLoader extends RealityTileLoader {
private _imageryProvider;
private _iModel;
constructor(_imageryProvider: MapLayerImageryProvider, _iModel: IModelConnection);
computeTilePriority(tile: Tile): number;
get maxDepth(): number;
get minDepth(): number;
get priority(): TileLoadPriority;
/** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
addLogoCards(cards: HTMLTableElement, vp: ScreenViewport): void;
addAttributions(cards: HTMLTableElement, vp: ScreenViewport): Promise<void>;
get maximumScreenSize(): number;
get imageryProvider(): MapLayerImageryProvider;
getToolTip(strings: string[], quadId: QuadId, carto: Cartographic, tree: ImageryMapTileTree): Promise<void>;
getMapFeatureInfo(featureInfos: MapLayerFeatureInfo[], quadId: QuadId, carto: Cartographic, tree: ImageryMapTileTree, hit: HitDetail, options?: MapFeatureInfoOptions): Promise<void>;
generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void): void;
/** Load this tile's children, possibly asynchronously. Pass them to `resolve`, or an error to `reject`. */
loadChildren(_tile: RealityTile): Promise<Tile[] | undefined>;
requestTileContent(tile: Tile, _isCanceled: () => boolean): Promise<TileRequest.Response>;
getRequestChannel(_tile: Tile): import("../TileRequestChannel").TileRequestChannel;
loadTileContent(tile: Tile, data: TileRequest.ResponseData, system: RenderSystem): Promise<ImageryTileContent>;
private loadTextureImage;
}
/** A reference to one of our tile trees. The specific TileTree drawn may change when the desired imagery type or target iModel changes.
* @beta
*/
export declare class ImageryMapLayerTreeReference extends MapLayerTileTreeReference {
/**
* Constructor for an ImageryMapLayerTreeReference.
* @param layerSettings Map layer settings that are applied to the ImageryMapLayerTreeReference.
* @param layerIndex The index of the associated map layer. Usually passed in through [[createMapLayerTreeReference]] in [[MapTileTree]]'s constructor.
* @param iModel The iModel containing the ImageryMapLayerTreeReference.
*/
constructor(args: {
layerSettings: MapLayerSettings;
layerIndex: number;
iModel: IModelConnection;
});
get castsShadows(): boolean;
/** Return the owner of the TileTree to draw. */
get treeOwner(): TileTreeOwner;
resetTreeOwner(): void;
get imageryProvider(): MapLayerImageryProvider | undefined;
}
export {};
//# sourceMappingURL=ImageryTileTree.d.ts.map