@loaders.gl/tiles
Version:
Common components for different tiles loaders.
56 lines • 2.98 kB
TypeScript
import type { Tile3D } from "./tile-3d.js";
import { ManagedArray } from "../utils/managed-array.js";
import { FrameState } from "./helpers/frame-state.js";
export type TilesetTraverserProps = {
loadSiblings?: boolean;
skipLevelOfDetail?: boolean;
updateTransforms?: boolean;
onTraversalEnd?: (frameState: any) => any;
viewportTraversersMap?: Record<string, any>;
basePath?: string;
};
export declare const DEFAULT_PROPS: Required<TilesetTraverserProps>;
export declare class TilesetTraverser {
options: Required<TilesetTraverserProps>;
root: any;
selectedTiles: Record<string, Tile3D>;
requestedTiles: Record<string, Tile3D>;
emptyTiles: Record<string, Tile3D>;
protected lastUpdate: number;
protected readonly updateDebounceTime = 1000;
/** temporary storage to hold the traversed tiles during a traversal */
protected _traversalStack: ManagedArray;
protected _emptyTraversalStack: ManagedArray;
/** set in every traverse cycle */
protected _frameNumber: number | null;
protected traversalFinished(frameState: FrameState): boolean;
constructor(options: TilesetTraverserProps);
traverse(root: any, frameState: any, options: any): void;
reset(): void;
/**
* Execute traverse
* Depth-first traversal that traverses all visible tiles and marks tiles for selection.
* If skipLevelOfDetail is off then a tile does not refine until all children are loaded.
* This is the traditional replacement refinement approach and is called the base traversal.
* Tiles that have a greater screen space error than the base screen space error are part of the base traversal,
* all other tiles are part of the skip traversal. The skip traversal allows for skipping levels of the tree
* and rendering children and parent tiles simultaneously.
*/
executeTraversal(root: any, frameState: FrameState): void;
updateChildTiles(tile: Tile3D, frameState: FrameState): void;
updateAndPushChildren(tile: Tile3D, frameState: FrameState, stack: any, depth: any): boolean;
updateTile(tile: Tile3D, frameState: FrameState): void;
selectTile(tile: Tile3D, frameState: FrameState): void;
loadTile(tile: Tile3D, frameState: FrameState): void;
touchTile(tile: Tile3D, frameState: FrameState): void;
canTraverse(tile: Tile3D, frameState: FrameState): boolean;
shouldLoadTile(tile: Tile3D): boolean;
shouldSelectTile(tile: Tile3D): boolean;
/** Decide if tile LoD (level of detail) is not sufficient under current viewport */
shouldRefine(tile: Tile3D, frameState: FrameState, useParentMetric?: boolean): boolean;
updateTileVisibility(tile: Tile3D, frameState: FrameState): void;
compareDistanceToCamera(b: Tile3D, a: Tile3D): number;
anyChildrenVisible(tile: Tile3D, frameState: FrameState): boolean;
executeEmptyTraversal(root: Tile3D, frameState: FrameState): boolean;
}
//# sourceMappingURL=tileset-traverser.d.ts.map