@itwin/core-frontend
Version:
iTwin.js frontend components
164 lines • 6.74 kB
TypeScript
/** @packageDocumentation
* @module Tiles
*/
import { BeTimePoint } from "@itwin/core-bentley";
import { ClipVector, IndexedPolyface, Point3d, Transform } from "@itwin/core-geometry";
import { ColorDef } from "@itwin/core-common";
import { GraphicBuilder } from "../render/GraphicBuilder";
import { RenderGraphic } from "../render/RenderGraphic";
import { RenderSystem } from "../render/RenderSystem";
import { ViewingSpace } from "../ViewingSpace";
import { Viewport } from "../Viewport";
import { RealityTileRegion, RealityTileTree, Tile, TileContent, TileDrawArgs, TileGeometryCollector, TileGraphicType, TileParams, TileRequest, TileRequestChannel, TileUser, TraversalDetails, TraversalSelectionContext } from "./internal";
/** @internal */
export interface RealityTileParams extends TileParams {
readonly transformToRoot?: Transform;
readonly additiveRefinement?: boolean;
readonly noContentButTerminateOnSelection?: boolean;
readonly rangeCorners?: Point3d[];
readonly region?: RealityTileRegion;
readonly geometricError?: number;
}
/** The geometry representing the contents of a reality tile. Currently only polyfaces are returned.
* @see [[RealityTile.geometry]] to access a particular tile's geometry.
* @public
*/
export interface RealityTileGeometry {
/** Polyfaces representing the tile's geometry. */
polyfaces?: IndexedPolyface[];
}
/** @internal */
export interface RealityTileContent extends TileContent {
geometry?: RealityTileGeometry;
copyright?: string;
}
/** A [[Tile]] within a [[RealityTileTree]], representing part of a reality model (e.g., a point cloud or photogrammetry mesh) or 3d terrain with map imagery.
* @public
*/
export declare class RealityTile extends Tile {
/** @internal */
readonly transformToRoot?: Transform;
/** @internal */
readonly additiveRefinement?: boolean;
/** @internal */
readonly noContentButTerminateOnSelection?: boolean;
/** @internal */
readonly rangeCorners?: Point3d[];
/** @internal */
readonly region?: RealityTileRegion;
/** @internal */
protected _geometry?: RealityTileGeometry;
private _everDisplayed;
/** @internal */
protected _reprojectionTransform?: Transform;
private _reprojectedGraphic?;
private readonly _geometricError?;
/** @internal */
protected _copyright?: string;
/** @internal */
readonly tree: RealityTileTree;
/** @internal */
get reprojectionTransform(): Transform | undefined;
/** @internal */
constructor(props: RealityTileParams, tree: RealityTileTree);
/** @internal */
setContent(content: RealityTileContent): void;
/** @internal */
freeMemory(): void;
/** @internal */
get realityChildren(): RealityTile[] | undefined;
/** @internal */
get realityParent(): RealityTile;
/** @internal */
get realityRoot(): RealityTileTree;
/** @internal */
get graphicType(): TileGraphicType | undefined;
/** @internal */
get maxDepth(): number;
/** @internal */
get isPointCloud(): boolean;
/** @internal */
get isLoaded(): boolean;
/** A representation of the tile's geometry.
* This property is only available when using [[TileGeometryCollector]].
*/
get geometry(): RealityTileGeometry | undefined;
/** @internal */
get copyright(): string | undefined;
/** @internal */
get isDisplayable(): boolean;
/** @internal */
markUsed(args: TileDrawArgs): void;
/** @internal */
markDisplayed(): void;
/** @internal */
isOccluded(_viewingSpace: ViewingSpace): boolean;
/** @internal */
get channel(): TileRequestChannel;
/** @internal */
requestContent(isCanceled: () => boolean): Promise<TileRequest.Response>;
/** @internal */
private useAdditiveRefinementStepchildren;
/** @internal */
protected _loadChildren(resolve: (children: Tile[] | undefined) => void, reject: (error: Error) => void): void;
/** @internal */
readContent(data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<TileContent>;
/** @internal */
computeLoadPriority(viewports: Iterable<Viewport>, users: Iterable<TileUser>): number;
/** @internal */
getContentClip(): ClipVector | undefined;
/** Allow tile to select additional tiles (Terrain Imagery...)
* @internal
*/
selectSecondaryTiles(_args: TileDrawArgs, _context: TraversalSelectionContext): void;
/** An upsampled tile is not loadable - will override to return loadable parent.
* @internal
*/
get loadableTile(): RealityTile;
/** @internal */
preloadRealityTilesAtDepth(depth: number, context: TraversalSelectionContext, args: TileDrawArgs): void;
/** @internal */
preloadProtectedTiles(args: TileDrawArgs, context: TraversalSelectionContext): boolean;
/** @internal */
addBoundingGraphic(builder: GraphicBuilder, color: ColorDef): void;
/** @internal */
reproject(rootReprojection: Transform): void;
/** @internal */
allChildrenIncluded(tiles: Tile[]): boolean;
/** @internal */
protected getLoadedRealityChildren(args: TileDrawArgs): boolean;
/** @internal */
protected forceSelectRealityTile(): boolean;
/** @internal */
protected minimumVisibleFactor(): number;
/** @internal */
selectRealityTiles(context: TraversalSelectionContext, args: TileDrawArgs, traversalDetails: TraversalDetails): void;
/** @internal */
protected selectRealityChildrenAsFallback(context: TraversalSelectionContext, args: TileDrawArgs, traversalDetails: TraversalDetails): void;
/** @internal */
protected selectRealityChildren(context: TraversalSelectionContext, args: TileDrawArgs, traversalDetails: TraversalDetails): void;
/** @internal */
purgeContents(olderThan: BeTimePoint, useProtectedTiles: boolean): void;
private getTilesToPurge;
private getTilesToPurgeWithoutProtection;
private removeFirstDisplayableChildrenFromSet;
/** @internal */
computeVisibilityFactor(args: TileDrawArgs): number;
/** @internal */
protected get _anyChildNotFound(): boolean;
/** @internal */
getSizeProjectionCorners(): Point3d[] | undefined;
/** @internal */
get isStepChild(): boolean;
/** @internal */
protected loadAdditiveRefinementChildren(resolve: (children: Tile[]) => void): void;
/** @internal */
produceGraphics(): RenderGraphic | undefined;
/** @internal */
get unprojectedGraphic(): RenderGraphic | undefined;
/** @internal */
disposeContents(): void;
/** @internal */
collectTileGeometry(collector: TileGeometryCollector): void;
}
//# sourceMappingURL=RealityTile.d.ts.map