@itwin/core-frontend
Version:
iTwin.js frontend components
75 lines • 3.45 kB
TypeScript
/** @packageDocumentation
* @module IModelConnection
*/
import { BeTimePoint, Id64Array, Id64String } from "@itwin/core-bentley";
import { IModelConnection } from "./IModelConnection";
import { TileTree, TileTreeOwner, TileTreeSupplier } from "./tile/internal";
/** Provides access to [[TileTree]]s associated with an [[IModelConnection]].
* The tile trees are accessed indirectly via their corresponding [[TileTreeOwner]]s.
* Loaded tile trees will be discarded after the iModel is closed, after a period of disuse, or when the contents of a [[GeometricModelState]] they represent
* change.
* @see [[IModelConnection.tiles]].
* @public
* @extensions
*/
export declare class Tiles implements Iterable<{
supplier: TileTreeSupplier;
id: any;
owner: TileTreeOwner;
}> {
private _iModel;
private readonly _treesBySupplier;
private _disposed;
/** @internal */
get isDisposed(): boolean;
/** @internal */
constructor(iModel: IModelConnection);
/** @internal */
[Symbol.dispose](): void;
/** Intended strictly for tests.
* @internal
*/
reset(): void;
/** @internal */
purgeTileTrees(modelIds: Id64Array | undefined): Promise<void>;
private getModelsAnimatedByScheduleScript;
/** Update the [[Tile]]s for any [[TileTree]]s that use the [RenderSchedule.Script]($common) hosted by the specified
* [RenderTimeline]($backend) or [DisplayStyle]($backend) element. This method should be invoked after
* the host element is updated in the database with a new script, so that any [[Viewport]]s displaying tiles produced
* based on the previous version of the script are updated to use the new version of the script.
* @param scriptSourceElementId The Id of the RenderTimeline or DisplayStyle element that hosts the script.
* @public
*/
updateForScheduleScript(scriptSourceElementId: Id64String): Promise<void>;
private purgeModelTrees;
private getSpatialModels;
/** Obtain the owner of a TileTree.
* The `id` is unique within all tile trees associated with `supplier`; its specific structure is an implementation detail known only to the supplier.
* A [[TileTreeReference]] uses this method to obtain the tile tree to which it refers.
*/
getTileTreeOwner(id: any, supplier: TileTreeSupplier): TileTreeOwner;
/** Remove tile tree matching the provided tile tree supplier/id
* @internal
*/
resetTileTreeOwner(id: any, supplier: TileTreeSupplier): void;
/** Disposes of all [[TileTree]]s belonging to `supplier` and removes `supplier` from the set of known tile tree suppliers. */
dropSupplier(supplier: TileTreeSupplier): void;
/** Invokes a function on each extant TileTreeOwner. */
forEachTreeOwner(func: (owner: TileTreeOwner) => void): void;
/** Iterate over all of the TileTreeOwners. */
[Symbol.iterator](): Iterator<{
supplier: TileTreeSupplier;
id: any;
owner: TileTreeOwner;
}>;
/** Obtain the TileTreeOwners supplied by the specified supplier. */
getTreeOwnersForSupplier(supplier: TileTreeSupplier): Iterable<{
id: any;
owner: TileTreeOwner;
}>;
/** Unload any tile trees which have not been drawn since at least the specified time, excluding any of the specified TileTrees.
* @internal
*/
purge(olderThan: BeTimePoint, exclude?: Set<TileTree>): void;
}
//# sourceMappingURL=Tiles.d.ts.map