import type { StyleManager, Source } from "./style_manager"; import type { TileProvider } from "./TileProvider"; import { IdealLevelInfo } from "./ideal_level"; import type RenderStage from "../RenderStage"; import type Globe from "../Globe"; import type Primitive from "../Primitive"; type MetaData = TileProvider.MetaData; type Flake = Globe.Flake; /** * [[Traverser]] インスタンスを管理する。 * * [[StyleManager]] インスタンスに対する [[Traverser]] インスタンスを * 列挙する。 * * このクラスは [[StyleManager]] 内部で使用する。 */ export declare class TraverserManager { readonly style_manager: StyleManager; /** * 初期化 * * @param owner - `this` を管理する [[StyleManager]] インスタンス * (未初期化でも可能) */ constructor(owner: StyleManager); /** * [[Traverser]] インスタンスを追加する。 * * `sources` の各ソースに対応する [[Traverser]] インスタンスを追加する。 * * @param sources - ソースを列挙するオブジェクト */ addTraversers(sources: Iterable): void; /** * 現在のスタイルのレンダリングに必要な [[Traverser]] インスタンス * を列挙する。 */ enumerate(): Iterable; private readonly _traversers; } /** * [[Traverser.run]] で使用するコンテキストである。 */ export declare class TraverseContext { /** * 起源となる StyleManager インスタンス */ readonly style_manager: StyleManager; /** * 最上位の地表断片 */ readonly root_flake: Flake; /** * 描画対象となるプリミティブの配列 */ readonly primitives: Primitive[]; /** * 元となる RenderStage インスタンス */ readonly stage: RenderStage; /** * この構築子は [[StyleManager.draw]] が呼び出す。 */ constructor(style_manager: StyleManager, stage: RenderStage, globe: Globe); /** * 描画するプリミティブを追加 */ addPrimitives(primitives: Primitive[]): void; /** * `flake` が可視でないなら `true`, それ以外なら `false` を返す。 */ isInvisible(flake: Flake): boolean; /** * `flake` に対する理想レベルの範囲を取得する。 */ getIdealLevelInfo(flake: Flake): IdealLevelInfo | null; /** * 下限判定関数 * * `flake` の可視範囲の 1/2 を超える面積の理想レベルが `flake.z - 1` * 以下のとき `true`, それ以外のとき `false` を返す。 */ isLevelLower(flake: Flake, info: IdealLevelInfo): boolean; /** * 上限判定関数 * * `flake` の可視範囲の 1/2 を超える面積の理想レベルが `flake.z + 1` * 以上のとき `true`, それ以外のとき `false` を返す。 */ isLevelUpper(flake: Flake, info: IdealLevelInfo): boolean; /** * see [[_clip_planes]] */ private static _createClipPlanes; /** * 視体積カリング平面と地表遮蔽カリング平面 (GOCS) */ private readonly _clip_planes; /** * @see [[getIdealLevelInfo]] */ private readonly _ideal_level_calc; } /** * ベクトルタイルのトラバース単位を表現する。 * * 1 つの [[StyleManager]] インスタンスは、0 個以上の [[Traverser]] イ * ンスタンスにより描画される。 * * 各 [[Traverser]] インスタンスが描画する [[StyleLayer]] インスタンス * 集合は互いに素になる。 */ declare class Traverser { /** * @param owner - 起源となる StyleManager インスタンス * @param source - これを持ったレイヤーがトラバース対象 * @param metadata - プロバイダから得たメタデータ * * @remarks * * この構築子は [[TraverserManager]] が呼び出す。 */ constructor(owner: TraverserManager, source: Source, metadata: MetaData); /** * このトラバーサに対応するすべてのレイヤーを横断する。 * * @remarks * * このメソッドは [[StyleManager.draw]] が呼び出す。 */ run(ctx: TraverseContext): void; /** * `flake` とその子孫を横断する。 * * @remarks * * [[run]] から呼び出されるサブルーチンである。 */ private _runRecur; /** * タイルを配置 * * `flake` に対する `StyleFlake` インスタンスから複数のプリミティ * ブを得て `ctx` に追加する。 * * `this` が担当する、すべての `StyleLayer` インスタンス (可視) に * 対するプリミティブが対象となる。 */ private _putTile; /** * トラバースの対象となるレイヤー * * `manager` 内の `source` を持つ、すべての [[StyleLayer]] インス * タンスである。 */ private readonly _layers; /** * レンダリングするタイルのレベルの最小値 */ private readonly _min_level; /** * レンダリングするタイルのレベルの最大値 */ private readonly _max_level; } export {}; //# sourceMappingURL=traverser.d.ts.map