UNPKG

@itwin/core-common

Version:

iTwin.js components common to frontend and backend

89 lines 4.08 kB
/** @packageDocumentation * @module Tile */ import type { ObjectReference } from "@itwin/object-storage-core/lib/common"; import { GuidString } from "@itwin/core-bentley"; import { Range3dProps, TransformProps } from "@itwin/core-geometry"; /** @beta */ export interface TileContentIdentifier { treeId: string; contentId: string; guid: string | undefined; } /** Wire format describing an [IModelTile]($frontend) * @internal */ export interface TileProps { /** The unique identifier of the tile's content */ contentId: string; /** The volume of space represented by this tile. */ range: Range3dProps; /** Optional volume within the tile's range which more tightly encloses the tile geometry */ contentRange?: Range3dProps; /** The maximum size in pixels at which the tile should be drawn on the screen. Excludes the optional sizeMultiplier which is applied separately. 0.0 indicates this tile is not displayable. */ maximumSize: number; /** Optional scaling factor applied to this tile's maximum size. Defaults to 1.0 if undefined. */ sizeMultiplier?: number; /** Optional boolean indicating this tile has no children. Defaults to false if undefined. */ isLeaf?: boolean; } /** Wire format describing a [TileTree]($frontend) * @internal */ export interface TileTreeProps { /** The unique identifier of this TileTree within the iModel */ id: string; /** Metadata describing the tree's root Tile. */ rootTile: TileProps; /** Transform tile coordinates to iModel world coordinates. */ location: TransformProps; /** If defined, limits the number of child tiles which can be skipped in selecting tiles of appropriate LOD */ maxTilesToSkip?: number; /** Optional volume within which content of all tiles' contents are guaranteed to be contained - never larger than `rootTile.range` and sometimes much smaller. */ contentRange?: Range3dProps; } /** Wire format describing an [IModelTileTree]($frontend). * @internal */ export interface IModelTileTreeProps extends TileTreeProps { /** Optional namespace applied to tile content Ids for tiles belonging to this tree. */ contentIdQualifier?: string; /** The geometry guid used as a baseline for tile content. May not match the model's current geometry guid during a [GraphicalEditingScope]($frontend). */ geometryGuid?: GuidString; /** If defined, specifies the number of levels of the tile tree that can be skipped when selecting tiles. */ maxInitialTilesToSkip?: number; /** Optionally specifies the maximum tile format version supported. */ formatVersion?: number; /** Size of each tile in pixels. Defaults to 512. Will be 2048 if TileAdmin.useLargerTiles is true. */ tileScreenSize?: number; /** For a tile tree produced for a [[RenderTimeline.Script]], the bounding ranges for each transform node in the script. */ transformNodeRanges?: Array<Range3dProps & { id: number; }>; } /** Metadata describing the version/format of the tiles supplied by the backend. * @see [[TileAdmin.queryVersionInfo]]. * @public * @extensions */ export interface TileVersionInfo { /** The exact version of the "iMdl" tile format used by the backend when generating tile content. * Newer versions of the tile format remain backwards-compatible, but may fix bugs from previous versions and add new features. * A frontend can request tiles of an earlier version than this, but should not of newer versions. * @note The version is represented as a 32-bit integer combining the 16-bit major and minor version numbers. * @see [[CurrentImdlVersion]] to obtain the current version used by the frontend or backend. */ formatVersion: number; } /** * @internal */ export declare enum TileContentSource { Backend = 0, ExternalCache = 1 } /** * @internal */ export declare function getTileObjectReference(iModelId: string, changesetId: string, treeId: string, contentId: string, guid?: string): ObjectReference; //# sourceMappingURL=TileProps.d.ts.map