TileTree Class

A hierarchical level-of-detail tree of 3d Tiles to be rendered in a Viewport. Tile trees originate from a variety of sources:

The same TileTree can be displayed in any number of viewports using multiple TileTreeReferences. A TileTree's lifetime is managed by a TileTreeOwner.

@note Some methods carry a warning that they should not be overridden by subclasses; typically a protected method exists that can be overridden instead to customize the behavior. For example, TileTree.selectTiles should not be overridden; instead, override theTileTree._selectTiles method that it calls.

Extended by


Name Description
constructor(params: TileTreeParams): TileTree Protected Constructor  
_selectTiles(args: TileDrawArgs): Tile[] ProtectedAbstract Implement this method to select tiles of appropriate resolution.  
collectTileGeometry(_collector: TileGeometryCollector): void Populate TileGeometryCollector.polyfaces with geometry obtained from this tile tree's tiles satisfying the collector's criteria.  
countTiles(): number Returns the number of Tiles currently in memory belonging to this tree, primarily for debugging.  
dispose(): void Dispose of this tree and any resources owned by it.  
draw(args: TileDrawArgs): void Abstract Produce graphics of appropriate resolution to be drawn in a Viewport.  
getEcefTransform(): Promise<undefined | Transform> Return the transform from the tile tree's coordinate space to ECEF (Earth Centered Earth Fixed) coordinates.  
prune(): void Abstract Discard tiles and/or tile contents, presumably based on a least-recently-used and/or least-likely-to-be-needed criterion.  
selectTiles(args: TileDrawArgs): Tile[] Selects tiles of appropriate resolution for some purpose like drawing to the screen, producing a shadow map, etc.  


Name Type Description
contentRange Readonly undefined | Range3d Optional tight bounding box around the entire contents of all of this tree's tiles.  
expirationTime Readonly BeDuration The length of time after which tiles belonging to this tree are considered elegible for disposal if they are no longer in use.  
id Readonly string Uniquely identifies this tree among all other tile trees associated with the iModel.  
iModel Readonly IModelConnection    
iModelTransform Readonly Transform Transform from this tile tree's coordinate space to the iModel's coordinate space.  
is2d Accessor ReadOnly boolean True if this tile tree contains 2d graphics.  
is3d Accessor AbstractReadOnly boolean True if this tile tree contains 3d graphics.  
isContentUnbounded Accessor ReadOnly boolean True if this tile tree has no bounds - e.g., a tile tree representing a globe is unbounded.  
isDisposed Accessor ReadOnly boolean True if TileTree.dispose has been called on this tile tree.  
lastSelectedTime Accessor ReadOnly BeTimePoint The most recent time at which tiles TileTree.selectTiles was called.  
maxDepth Accessor AbstractReadOnly undefined | number Returns the maximum depth of this tree, if any.  
modelId Readonly string A 64-bit identifier for this tile tree, unique within the context of its IModelConnection.  
parentsAndChildrenExclusive Accessor ReadOnly boolean True if a tile and its child tiles should not be drawn simultaneously.  
range Accessor ReadOnly Range3d The volume of space occupied by this tile tree.  
rootTile Accessor AbstractReadOnly Tile The lowest-resolution tile in this tree.  
viewFlagOverrides Accessor AbstractReadOnly Partial<Mutable<NonFunctionPropertiesOf<ViewFlags>>> The overrides that should be applied to the view's ViewFlags when this tile tree is drawn.  

Defined in

Last Updated: 05 April, 2024