@itwin/core-frontend
Version:
iTwin.js frontend components
88 lines • 3.97 kB
TypeScript
/** @packageDocumentation
* @module Tiles
*/
import { GuidString, Id64Array, Id64String } from "@itwin/core-bentley";
import { Range3d } from "@itwin/core-geometry";
import { BatchType, ContentIdProvider, EdgeOptions, IModelTileTreeId, IModelTileTreeProps, RenderSchedule, TileProps } from "@itwin/core-common";
import { IModelConnection } from "../../IModelConnection";
import { ImdlDecoder, IModelTile, LayerTileTreeHandler, MapLayerTreeSetting, Tile, TileDrawArgs, TileLoadPriority, TileTree, TileTreeParams } from "../../tile/internal";
export interface IModelTileTreeOptions {
readonly allowInstancing: boolean;
readonly edges: EdgeOptions | false;
readonly batchType: BatchType;
readonly is3d: boolean;
timeline: RenderSchedule.ModelTimeline | undefined;
}
/** Parameters used to construct an [[IModelTileTree]]
*/
export interface IModelTileTreeParams extends TileTreeParams {
rootTile: TileProps;
contentIdQualifier?: string;
geometryGuid?: GuidString;
maxInitialTilesToSkip?: number;
formatVersion?: number;
tileScreenSize: number;
options: IModelTileTreeOptions;
transformNodeRanges?: Map<number, Range3d>;
}
export declare function iModelTileTreeParamsFromJSON(props: IModelTileTreeProps, iModel: IModelConnection, modelId: Id64String, options: IModelTileTreeOptions): IModelTileTreeParams;
/** The root tile for an [[IModelTileTree]].
*/
export type RootIModelTile = Tile & {
tileScreenSize: number;
updateDynamicRange: (childTile: Tile) => void;
};
/** A TileTree whose contents are derived from geometry stored in a Model in an IModelDb.
* @internal exported strictly for display-test-app until we remove CommonJS support.
*/
export declare class IModelTileTree extends TileTree {
decoder: ImdlDecoder;
private readonly _rootTile;
private readonly _options;
private readonly _transformNodeRanges?;
readonly contentIdQualifier?: string;
readonly geometryGuid?: string;
readonly maxTilesToSkip: number;
readonly maxInitialTilesToSkip: number;
readonly contentIdProvider: ContentIdProvider;
readonly stringifiedSectionClip?: string;
readonly tileScreenSize: number;
readonly iModelTileTreeId: IModelTileTreeId;
/** Strictly for debugging/testing - forces tile selection to halt at the specified depth. */
debugMaxDepth?: number;
/** A little hacky...we must not override selectTiles(), but draw() needs to distinguish between static and dynamic tiles.
* So _selectTiles() puts the static tiles first in the Tile[] array, and records the number of static tiles selected, to be
* used by draw().
*/
private _numStaticTilesSelected;
layerImageryTrees: MapLayerTreeSetting[];
private readonly _layerHandler;
get layerHandler(): LayerTileTreeHandler;
constructor(params: IModelTileTreeParams, treeId: IModelTileTreeId);
[Symbol.dispose](): void;
get maxDepth(): number;
get rootTile(): Tile;
/** Exposed chiefly for tests. */
get staticBranch(): IModelTile;
get is3d(): boolean;
get isContentUnbounded(): boolean;
get viewFlagOverrides(): {};
get batchType(): BatchType;
get edgeOptions(): EdgeOptions | false;
get timeline(): RenderSchedule.ModelTimeline | undefined;
get loadPriority(): TileLoadPriority;
protected _selectTiles(args: TileDrawArgs): Tile[];
draw(args: TileDrawArgs): void;
prune(): void;
/** Exposed strictly for tests. */
get tileState(): "static" | "dynamic" | "interactive" | "disposed";
/** Exposed strictly for tests. */
get hiddenElements(): Id64Array;
/** Strictly for tests. */
get dynamicElements(): Id64Array;
getTransformNodeRange(nodeId: number): Range3d | undefined;
get containsTransformNodes(): boolean;
onScheduleEditingChanged(changes: RenderSchedule.EditingChanges[]): Promise<void>;
onScheduleEditingCommitted(): void;
}
//# sourceMappingURL=IModelTileTree.d.ts.map